跳出多层循环for、while

news/2024/7/5 12:15:03

for跳出多层循环

break_flag = False
for i in range(10):
    print("爷爷层",i)
    for j in range(10):
        print("=爸爸层",j)
        if j == 3:
            break_flag = True
            break
        for k in range(10):
            print("===>孙子层",k )
            if k == 2:
                break_flag = True
                break
        if break_flag:
            break
    if break_flag: #if break_falg == True:
        print("我儿子死了,我也不活了..")
        break
print("keep going....")

while跳出多层循环

 

break_flag = False
count = 0
while break_flag == False  :
    print("爷爷层。。。")
    while  break_flag == False:
        print("爸爸层...")
        while  break_flag == False:
            count +=1
            if count >10:
                break_flag = True
            print("炎龙层...")
print("keep going....")

 跳出多级菜单

map={
    "华南":{
        "广东":["广州市","佛山市","深圳市","东莞市"],
        "广西":["南宁市","柳州市","桂林市","北海市"],
        "海南":["海口市","三亚市","三沙市","儋州市"]
             },
    "华东":{
        "上海":["黄浦区","卢湾区","徐汇区","长宁区"],
        "安徽":["合肥市","芜湖市","淮南市","马鞍山市"],
        "江苏":["南京市","无锡市","徐州市","常州市"]
            }
}
flag = False
while flag == False:
    print("中国有如下地区:")
    for i in map.keys():
        print(i)
    area = input("请选择一个地区、b或者q:").strip()
    if area == "b":
        break
    if area == "q":
        flag = True
    if len(area) == 0:
        continue
    if area in map.keys():
        while flag == False:
            print("该地区有如下省:")
            for j in (map[area]).keys():
                print(j)
            province = input("请选择一个省、b或者q:").strip()
            if province == "b":
                break
            if province == "q":
                flag = True
            if len(province) == 0:
                continue
            if province in  (map[area]).keys():
                while flag == False:
                    print("该省有如下城市:")
                    for j in map[area][province]:
                        print(j)
                    city = input("请选择b或者q:")
                    if city == "b":
                        break
                    if city == "q":
                        flag = True
                    if len(city) == 0:
                        continue

 跳出多层循环简化版

 

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}
last_layers =  [  menu  ]  #上一层
current_layer = menu  #当前层
while True:
    for key in current_layer:
        print(key)
    choice = input(">>:").strip()
    if len(choice)==0:continue
    if choice in current_layer: #进入下一层
        last_layers.append(current_layer) #当前层添加到列表
        current_layer = current_layer[choice] #北京
    if choice == "b":
        if last_layers:
            current_layer = last_layers[-1] #取到上一层,赋值给current_layer
            last_layers.pop()
    if choice == 'q':
        break

 

转载于:https://www.cnblogs.com/domestique/p/6748703.html


http://www.niftyadmin.cn/n/4049301.html

相关文章

清华北大毕业生都去了哪里?

国家养了这帮不孝子女,长大了弃母!回头再来帮着老外来跟国企竞争,来挖国家的墙角!最可悲的是,周围的人用羡慕的眼光看着他们,他们好像真的衣锦还乡了。   2000年北京大学本科毕业生有2154人&#xff0c…

线性代数进阶

向量( vector):一个向量是一列数。这些数是有序排列的。通过次序中的索引,我们可以确定每个单独的数。 张量( tensor):在某些情况下,我们会讨论坐标超过两维的数组。一般地&#xff…

乱舞的思绪

飘絮如丝, 飘入我心, 梦想起飞, 飞向天堂。 归心似剑, 心驰神往, 梦动的那一刻, 我以被征服, 成为了一个思想的囚徒! 书于20050720晚9时12分。

窗体动态效果的实现

pb触摸屏的程序,功能:窗口显示关闭的时候有点动态效果。 -------------------------------------------------------------------------------------// 实现关闭窗体时的动态效果// ---------------------------------------------------------// 函数名…

Finalize什么时候被调用

Finalize方法在垃圾回收结束时被调用,有五种一下情况会导致开始垃圾回收。 第0代已满 第0代满时,垃圾回收会自动开始。改时间是目前导致Finalize方法被调用的最常见的一种方式,因为随着应用程序代码运行并分配新对象,这个时间会自…

Appium元素定位方式

1.由于Appium继承了Selenium,所以Selenium胡定位方式都可以使用。通过sdk->\tools 下的uiautomatorviewer工具获取id、name、classname等 2.uiautomator:driver.find_elements_by_android_uiautomator("uiautomator定位串"),实际上是调用ui…

ORACLE客户端连服务器的注意事项

ORACLE客户端连服务器的注意事项:(转载) 1. 通过SQL*NET协议,ORACLE客户端连服务器时一般需要配置sqlnet.ora和tnsnames.ora。 它们默认的目录在$ORACLE_HOME/network/admin 目录下 也可以设置环境变量TNS_ADMIN指向你想用的sqlnet.ora和t…

poj3417(LCA+DP)

题目连接&#xff1a;http://poj.org/problem?id3417 tarjan树DP 来自&#xff1a;http://www.cnblogs.com/scau20110726/archive/2013/05/31/3110666.html 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #include<cmath>5 using nam…