python3 day7

三层目录:

功能要求:

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分钟

时间: 2024-08-27 08:35:18

python3 day7的相关文章

ubuntu下卸载python2和升级python3.5

卸载python只需一条语句就可以实现 sudu apt-get remove python ubuntu下安装python3 sudo apt-get install python3 但这样只安装了python3.4 要想使用python3.5,则必须升级python3.4 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 使用以上三行命令便可升级py

python3 装饰器

看廖雪峰官网的python3装饰器有感 装饰器即将一个函数作为变量在新的函数中调用此函数. 作业: 能否写出一个@log的decorator,使它既支持: @logdef f():     pass 又支持: @log('execute')def f():     pass      例1: import functools import time def log(*args,**kwargs):     # *args 是个元组     if args and isinstance(args,

Python3 - MySQL适配器 PyMySQL

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库. PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装. PyMySQL 下载地址:https

Python3 数字(Number)

1.Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 2.Python 支持三种不同的数值类型: 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点.Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型. 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102

python2和python3中的编码问题

开始拾起python,准备使用python3, 造轮子的过程中遇到了编码的问题,又看了一下python3和python2相比变化的部分. 首先说个概念: unicode:在本文中表示用4byte表示的unicode编码,也是python内部使用的字符串编码方式. utf-8:在本文中指最少1byte表示的unicode编码方式 我在使用 if isinstance(key,unicode): key= key.encode('utf-8') 的时候,发现key值被转成了b'foo',b'bar'

CentOS 7.0 安装 python3.X 脚本

1 #!/bin/sh 2 3 #第一个Linux下的脚本,太多不明白的地方,只是依着网上的例子照葫芦画瓢,能正常运行即可 4 #运行环境 CentOS 7.0 版本 5 6 #首行指定程序的路径,以#号开头的行是注释行 7 8 #任意文本编辑器编辑此文档.默认是gedit 9 #保存在 Document 文件下,假设此文件名为test.sh 10 #右击属性使其可以执行,或者 右击菜单终端 chmod +x test.sh 11 #因为下面的命令创建文件夹需要的权限较高,先执行命令 su -

如何在CentOS6上安装Python2.7和Python3.3

原文来自http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/,个人觉得对在linux安装新版本Python是很有参考意义,因而转载,原文是英文的,本人简单翻译下,大家看懂即可,有不妥的地方请留言. 如何在CentOS 6上同时安装Python 2.7和Python 3.3 本文将介绍如何在CentOS 6上安装Python 2.7和3.3.下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实

python3 使用py2exe打包exe

py2exe在sourceforge 的下载只支持到2.7. 针对python3.0+的版本,需要自己编译. 1.下载源码 svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn 2.编译环境 这里使用的是vs2014. 3.安装 进入py2exe-3 python setup.py install 这里会进行编译.安装. 此外,python默认使用的是vs9,针对vs2014,需要改下文件: Lib\distutils\

CentOS 5.5 x64下安装升级Python3.3

1.下载linux版本的Python3.3.5,以下是我共享的百度云盘的下载地址 http://pan.baidu.com/s/1kT3IHLH 2.解压: tar -zxvf Python-3.3.5.tgz 3.进入解压后的目录: cd Python-3.3.5 4.创建安装目录,这里我将其安装在/usr/local下 mkdir /usr/local/python3.3 5.编译python3.3 ./configure --prefix=/usr/local/python3.3 6.执行