专栏首页python3Python之双色球选购和三级菜单问题

Python之双色球选购和三级菜单问题

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('输入有误,请重新输入')

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python简单脚本之概率计算

    py3study
  • python 快速入门

    py3study
  • Python中的if、while、for

    ABCD*9=DCBA  A=?B=? C=? D=?   答案: A=1,B=0,C=8,D=9   1089*9=9801

    py3study
  • python中list的四种查找方法

    Python中是有查找功能的,四种方式:in、not in、count、index,前两种方法是保留字,后两种方式是列表的方法。

    py3study
  • 用一个脚本学习 python

    # -*- coding: utf-8 -*- # Python 2.7 学习参考脚本 # print 打印函数 print "Hello Worl...

    MachineLP
  • 20181231-生成字符串大小写字母和

    1.1输出小写:找到小写a(97)到z(122)的的ASCII码,然后转义为字母 lower = "" for i in range(97,123):     ...

    py3study
  • AI芯片的“战国时代”:计算力将会驶向何方?

    人工智能应用的蓬勃发展对算力提出了非常迫切的要求。由于摩尔定律已经失效, 定制计算将成为主流方向,因而新型的 AI 芯片开始层出不穷,竞争也日趋白热。参与这一竞...

    AI科技大本营
  • Python 解线性方程组

    线性方程组是各个方程的未知元的次数都是一次的方程组。解这样的方程组有两种方法:克拉默法则和矩阵消元法。

    不可言诉的深渊
  • Problem: Matrix Chain Problem

    矩阵链乘问题是最典型的动态规划问题,本文介绍如何用动规算法解决这个问题,要理解下面的内容请先阅读这篇动态规划的总结。

    宅男潇涧
  • Python 数据处理,切片,替换,去重

    三、使用集合删除重复项,将重复的with open定义为函数,简洁代码,进行逆序排序,输出前三项。

    py3study

扫码关注云+社区

领取腾讯云代金券