码迷,mamicode.com
首页 > 编程语言 > 详细

python之递归

时间:2020-03-17 08:49:32      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:家庭   str   北京   int   二层   输入   return   put   直接   

meum = {
     北京:{
        丰台:{
            六里桥:{
                莲怡园:{},
                莲香园:{}
            },
            莲花池:{
                蓝靛厂:{},
                火器营:{}
            }
        },
        海淀: {
            五道口: {
                青鸟: {},
                清华: {}
            },
            四季青: {
                田村: {},
                张庄: {}
            }
        },
        大兴: {
            西红门: {
                星光影视园: {},
                包商银行: {}
            },
            旧宫: {
                张镇: {},
                王镇: {}
            }
        },
    },
    上海:{
        虹桥:{
            虹桥机场:{
                莲怡园:{},
                莲香园:{}
            },
            虹桥火车站:{
                候车室:{},
                站台:{}
            }
        },
        外滩: {
            城隍庙: {
                大城隍庙: {},
                小城隍庙: {}
            },
            黄浦江: {
                东口岸: {},
                西口岸: {}
            }
        },
        浦东: {
            浦东机场: {
                航站楼: {},
                停机坪: {}
            },
            浦发银行: {
                浦发张村支行: {},
                浦发总行: {}
            }
        },
    },
    辽宁:{
        鞍山:{
            台安县:{
                桓洞:{},
                西佛:{}
            },
            岫岩县:{
                岫岩乡:{},
                曲阜乡:{}
            }
        },
        盘锦: {
            盘山: {
                大洼: {},
                达牛: {}
            },
            双台子区: {
                台子营: {},
                张家镇: {}
            }
        },
        沈阳: {
            铁西: {
                兴隆大家庭: {},
                沈阳银行: {}
            },
            皇姑: {
                白塔: {},
                小学: {}
            }
        },
    }
}
def PrintMeum(dict):
    while True:
        for  k  in dict:print(k)
        key = input("请输入城市:").strip()
        if key == b or key == q:return key
        # 这里如果第一次直接入b或q则直接退出程序
        # 如果已经进入第一层,则开始递归,调用自己并传入字典第二层
        # 如果在字典第二层输入b则退出当前递归返回上一层
        # 在任何层时输入q则退出程序

        elif key in dict.keys() and dict[key]:
            # 如果输入的字典key在字典中并切输入的字典不是空字典这开始递归调用
            ret = PrintMeum(dict[key])
            # 如果输入q则退出程序并返回key
            if ret == q:
                return key
        # elif (not dict.get(key)) or (not dict[key]):
        #  如果key不存在在字典中或者字典为空时则返回第一层
        #  这部分可有可无,因为只要匹配不到任何key或者q程序会不断循环
        #     continue

PrintMeum(meum)

 

python之递归

标签:家庭   str   北京   int   二层   输入   return   put   直接   

原文地址:https://www.cnblogs.com/pydevops/p/12508140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!