1:双色球选购
# 1 双色球(假设一共八个球,6个红球,球号1-32、2个蓝球,球号1-16)
# 2 确保用户不能重复选择,不能超出范围
# 3 用户输入有误时有相应的错误提示
# 4 最后展示用户选择的双色球的号码
select_red_ball = []
while True:
    n = int(input('请输入你要选择的红色球(1-32):'))
    if 0 < n < 33:
        if n not in select_red_ball:
            select_red_ball.append(n)
        else:
            print('number %d is already exist in red ball list' % n)
    else:
        print('only can select n between 1-32')
    if len(select_red_ball) == 6:
        break
select_red_ball.sort()
select_blue_ball = []
while True:
    n = int(input('请输入你要选择的蓝色球(1-32):'))
    if 0 < n < 17:
        if n not in select_blue_ball:
            select_blue_ball.append(n)
        else:
            print('number %d is already exist in blue ball list' % n)
    else:
        print('only can select n between 1-16')
    if len(select_blue_ball) == 2:
        break
select_blue_ball.sort()
print('red ball %d' % select_red_ball)
print('blue ball %d' % select_blue_ball)
 
 

2 :三级菜单

  • 数据结构:
    menu = {
    '北京':{
    '海淀':{
    '五道口':{
    'soho':{},
    '网易':{},
    'google':{}
    },
    '中关村':{
    '爱奇艺':{},
    '汽车之家':{},
    'youku':{},
    },
    '上地':{
    '百度':{},
    },
    },
    '昌平':{
    '沙河':{
    '老男孩':{},
    '北航':{},
    },
    '天通苑':{},
    '回龙观':{},
    },
    '朝阳':{},
    '东城':{},
    },
    '上海':{
    '闵行':{
    "人民广场":{
    '炸鸡店':{}
    }
    },
    '闸北':{
    '火车站':{
    '携程':{}
    }
    },
    '浦东':{},
    },
    '山东':{},
    } 需求:
    可依次选择进入各子菜单
    可从任意一层往回退到上一层
    可从任意一层退出程序
    所需新知识点:列表、字典

代码一:

exit_flag = False
while not exit_flag:
    for i in menu:
        print(i)
    choice1 = input("选择进入1>>:")
    if choice1 in menu:
        while not exit_flag:
            for i2 in menu[choice1]:
                print("\t", i2)
            choice2 = input("选择进入2>>:")
            if choice2 in menu[choice1]:
                while not exit_flag:
                    for i3 in menu[choice1][choice2]:
                        print("\t\t", i3)
                    choice3 = input("选择进入3>>:")
                    if choice3 in menu[choice1][choice2]:
                        for i4 in menu[choice1][choice2][choice3]:
                            print("\t\t", i4)
                        choice4 = input("最后一层,按b返回>>:")
                        if choice4 == "b":
                            pass
                        elif choice4 == "q":
                            exit_flag = True
                    if choice3 == "b":
                        break
                    elif choice3 == "q":
                        exit_flag = True
            if choice2 == "b":
                break
            elif choice2 == "q":
                exit_flag = True

代码二:(优化版本,代码缩减为15行)

current_layer = menu
parent_layer = []  # 将父级key值放入到列表中
flags = False  # 设置标志位
while not flags:
    for key in current_layer:
        print(key)
    choose = input("请选择,输入b返回上一级菜单,输入q退出菜单:").strip()  # 去除空格
    if choose in current_layer:
        parent_layer.append(current_layer)  # 将当前的状态放入列表中
        current_layer = current_layer[choose]
    elif choose == 'b':
        if parent_layer:
            current_layer = parent_layer.pop()
    elif choose == 'q':
        flags = True
    else:
        print('输入有误,请重新输入')

 

Python之双色球选购和三级菜单问题的更多相关文章

  1. 老男孩python学习之作业二---三级菜单

    因为之前花力气完成了购物小程序的作业 现在做这个三级菜单简直是so easy!! 1.显示省级菜单 2.交互,提示用户输入要查看的省份(退出e) 2.1.用户正确输入列表中的省份 3.显示市级菜单 3 ...

  2. day17 python递归案例(二分查找,三级菜单)

    递归函数与三级菜单 menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {} ...

  3. (Python基础)最Low三级菜单

    #-*-coding:utf-8-*- #_author_: Keep #三级菜单 menu = { '中国':{ '广东省':{ '广州市':{ '海珠区':{}, '荔湾区':{}, '越秀区': ...

  4. Python初学者第十三天 三级菜单程序小作业

    13day 作业题目: 三级菜单 作业需求: 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村' ...

  5. Python学习第二天-编写三级菜单

    编写三级菜单:1. 运行程序输出第一级菜单2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单3. 菜单数据保存在文件中4. 让用户选择是否要退出5. 有返回上一级菜单的功能 # Author: z ...

  6. python小程序--Three(三级菜单)

    #!/usr/bin/env python # _*_ coding:utf8 _*_ data = { "山东省":{ "滨州市":{"惠民县&qu ...

  7. Python小代码_4_省市区三级菜单

    menu = { "北京": { "朝阳区": { "三环到四环之间": {}, "四环到五环之间": {}, &quo ...

  8. python练习1 登录和三级菜单

    ,: username1 = input("请输入您的用户名:")# password1 = getpass.getpass("请输入您的密码:") passw ...

  9. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

随机推荐

  1. 关于warning

    IT男正吸着雪茄,吐着烟圈.他女朋友生气了发飙道:“你没看见包装盒上的警告(Warning)么?吸烟有害健康!” IT男淡定地回答道:“我是程序员.我们不关心警告,只关心错误.”

  2. JSP页面怎样导入优酷视频

    我在做的一个项目里面,应客户要求.要导入视频.然后我再考虑,视频是直接放在本地数据库的话,那么肯定会出现数据视频读取反应慢. 那么,就能够把视频先传到优酷上面,然后再直接应用优酷视频上的html代码, ...

  3. QlikView格式化某一个单元格

    QlikView中能够创建透视表和垂直表,或者一般的Table.假如有的时候须要某一个单元格的样式和其它单元格不一样.颜色或者边框宽度等.能够通过下面方式实现: 工具栏里面有个button叫:Desi ...

  4. 安装eclipse中html/jsp/xml editor插件以及改动html页面的字体

    近期在做android项目,用到了jquery mobile 框架以及phonegap,所以就会涉及一些html文件,可是html文件打开的方式是Text Editor ,而且打开之后一些html代码 ...

  5. 2015 Multi-University Training Contest 4 1001 Olympiad

    代码: #include<cstdio> #include<cstring> #include<set> using namespace std; int vis[ ...

  6. 【转载】limits.h

    limits.h专门用于检测整型数据数据类型的表达值范围. <limits.h>主要提供对整型和字符型范围的限制的宏,同样没有指定类型和函数的定义. 1.整型宏如下表: 2.字符型宏如下表 ...

  7. Android下拉刷新

    以下是我自己花功夫编写了一种非常简单的下拉刷新实现方案,现在拿出来和大家分享一下.相信在阅读完本篇文章之后,大家都可以在自己的项目中一分钟引入下拉刷新功能 最近项目中需要用到ListView下拉刷新的 ...

  8. POJ2208 Pyramids 四面体体积

    POJ2208给定四面体六条棱(有序)的长度 求体积 显然用高中立体几何的方法就可以解决. 给出代码 #include<iostream> #include<cstdio> # ...

  9. windows7 RDP修改

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP Tcp\PortNumber”.

  10. 采用jq链(end方法和andSelf()方法)

    end()方法: <style type="text/css"> .m1{background:#09C;} .m2{border:1px solid #000;} & ...