设为首页 收藏本站
查看: 1710|回复: 0

[经验分享] python3 day7

[复制链接]

尚未签到

发表于 2018-8-14 06:00:05 | 显示全部楼层 |阅读模式
  三层目录:
  功能要求:
  1. 输入即可进入下一层
  2. 按q退出
  3. 按b可以回退到上一层
  代码:
  #!/usr/bin/env python
  # -*- coding:utf-8 -*-
  menu={
  '山东':{
  '青岛': ['四方','市南','市北',],
  '济南':['历下','市中',],
  },
  '河南':{
  '郑州':['郑东新区','管城区'],
  '开封':['龙庭区','金明区'],
  }
  }
  Back_Flag=False  #回退标志位
  Exit_Flag=False  #退出标志位
  while not Back_Flag and not Exit_Flag:
  for key1 in menu:  #打印第一级清单
  print(key1)
  choice1=input('Pls input the province: ').strip()
  if choice1 in menu: #如果输入正确,使用while循环打印第二级清单
  while not Back_Flag and not Exit_Flag:
  for key2 in menu[choice1]:
  print(key2)
  choice2=input('Pls input the city: ').strip()
  if choice2 in menu[choice1]:
  while not Back_Flag and not Exit_Flag:
  for key3 in menu[choice1][choice2]:
  print(key3)
  choice3=input('Pls input the district: ').strip()
  if choice3 in menu[choice1][choice2]:
  print(choice3)
  print('This is the Last level')
  else:
  print('Invalid input,pls input again')
  if choice3=='b':
  Back_Flag=True
  if choice3=='q':
  Exit_Flag=True
  else:
  Back_Flag=False
  else:
  print('Invalid input,pls input again')
  if choice2=='b':
  Back_Flag=True
  if choice2=='q':
  Exit_Flag=True
  else:
  Back_Flag=False
  else:
  print('Invalid input,pls input again')
  if choice1=='q':
  Exit_Flag=True
  优化后的代码:
  #!/usr/bin/env python
  # -*- coding:utf-8 -*-
  menu={
  '山东':{
  '青岛': {'四方':{},'市南':{},'市北':{},},
  '济南':{'历下':{},'市中':{},},
  },
  '河南':{
  '郑州':{'郑东新区':{},'管城区':{}},
  '开封':{'龙庭区':{},'金明区':{}},
  }
  }
  Current_Layer=menu
  Parent_Layer=[] #存放父层,便于b回退
  while True:
  for key in Current_Layer:
  print(key)
  choice=input('Pls input your choice: ').strip()
  if len(choice)==0:
  continue
  if choice in Current_Layer:
  Parent_Layer.append(Current_Layer)
  Current_Layer=Current_Layer[choice]
  elif choice=='b':
  if Parent_Layer:  #回退时,如果父层不为空,就将父层最后一个元素赋值给当前层
  Current_Layer=Parent_Layer.pop()
  elif choice=='q':
  break
  else:
  print('无此项')
  python2默认ASCII,不支持中文
  python3默认unicode,支持中文
  utf-8,utf-16等也支持中文
  汉语字符集:
  gb2312:支持6700个汉字
  gbk:支持20000个汉字
  gb18030:支持27000个汉字,要求在中国发行的软件都支持gb18030
  python2中
  前提:CMD的属性中,当前代码页为“简体中文(GBK)”
  代码1:
  # -*- coding:utf-8 -*-
  s='中文'
  print s
  CMD执行结果:
  C:\Users\Carrick>C:\Python27\python.exe E:\py_code\py2_code\test1.py
  涓枃
  python2中,默认字符集为ASCII,开头指定utf-8,CMD终端字符集为gbk,gbk不认识utf-8,造成乱码
  解决办法一: # -*- coding:gbk -*-
  解决办法二:
  # -*- coding:utf-8 -*-
  s='中文'
  print s.decode('utf-8')  -->指定从utf-8解码为unicode
  print s.decode('utf-8').encode('gbk')
  CMD执行结果:
  C:\Users\Carrick>C:\Python27\python.exe E:\py_code\py2_code\test1.py
  中文
  中文
  在python2中,默认字符集为ASCII,但是开头指定了utf-8,utf-8解码为unicode,unicode支持中文,因此可以显示中文
  从utf-8解码为unicode,然后从unicode编码为gbk,也能支持中文
  另外,如果开头不使用# -*- coding:utf-8 -*-,定义了中文字符串,总是会报错一个非ASCII的代码
  www.cnblogs.com/alex3714/articles/5717620.html
  缺一张图,
  python3
  代码:
  #!/usr/bin/env python
  import sys
  print(sys.getdefaultencoding())
  s='中文'
  print(s)
  执行结果:
  utf-8  -->但是python官网说python3中的默认编码是unicode
  中文
  05看到12分钟

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551277-1-1.html 上篇帖子: python小记--格式化输出 下篇帖子: python分离隐藏文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表