主要是以Python 3.x 为开发环境
which python3 查看 linux及Mac下 python3是都安装以及程序的位置
终端打开python的时候,直接输入python3,打开的就是3.几的版本
- 变量 :字母 下划线 数字,第一个字符不能用数字
- 常量: 全部大写字母表示常量
变量定义的规则: 变量名只能是 字母、数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
hello,world
1 #!/usr/bin/env python3 2 # -*- coding: UTF-8 -*- 3 4 print"hello,world"
当行注释 #被注释内容
多行注释 '''被注释内容'''
1 name ='张三' 2 name2 =name 3 print('姓名',name,name2) 4 5 name ='李四' 6 7 print(name,name2) 8 9 number=''' 10 123 11 456''' 12 print(number) 13 14 # 三个引号多行注释 或者多行打印
Python算术运算符
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。
>>> 1/2 0 >>> 1.0/2 0.5 >>> 1/float(2) 0.5
Python比较运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
Python赋值运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
Python位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13,二进制格式如下:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
用户名-密码
name = input("用户名:") password = input("密码:") print(name,password)
格式化输入
格式化输出占位符%s s string = 字符串的意思%d d digit = 整数的意思%f f float = 浮点数,约等于小数
显示更多信息
1 name = input('name:') 2 age = int(input('age:')) #int(只能为整数) 3 print(type(age)) #tpye 显示数据类型 (str(age))转为字符串 4 job = input('job') #job 工作 5 salary = input('salary') #salary 薪水 6 7 8 info = ''' 9 -------- info of %s ----- 10 Name:%s 11 Age:%d 12 Job:%s 13 Salary:%s 14 ''' % (name,name,age,job,salary) 15 #s 代表:string 字符串 d 代表:整数 16 17 info2 = ''' 18 ------ 人员信息 ------ 19 姓名:{姓名} 20 年龄:{年龄} 21 工作:{工作} 22 工资:{工资} 23 24 ''' .format(姓名=name, 25 年龄=age, 26 工作=job, 27 工资=salary) 28 #format 格式 29 info3 = ''' 30 -------- info of {0} ----- 31 Name:{0} 32 Age:{1} 33 Job:{2} 34 Salary:{3} 35 '''.format(name,age,job,salary) 36 print(info3) 37 38 print(info2)
用户名密码输入
1 import getpass # 输入为密码为密文 引入getpass库 密文库 2 3 _username = 'bian' 4 _password = '123' 5 6 username = input('用户名:') 7 # password = input('密码:')#输入为明文密码 8 password = getpass.getpass('密码:') # 输入为密文密码 9 10 if _username == username and _password == password: 11 # 两个'=='代表等于 一个'='代表赋值变量 12 print('欢迎 {name} 登录'.format(name=username)) 13 else: 14 print('用户名或密码错误!')
猜测年龄游戏
1 age = 56 #指定年龄为56 2 3 guess_age = int(input('年龄:')) #设置为只能输入整数 4 5 if guess_age == age: #如果guess_age 等于 age 6 print('猜测正常') #显示猜测正确 7 elif guess_age > age: #否则如果 大于 age 8 print('请往小猜测') #显示请往小猜测 9 else: #否则 10 print('请往大猜测')#显示请往大猜测
for 循环
打印奇数
1 for i in range(1,10,2): # 2 代表步长的意思 间隔一位 2 print('loop:',i) # 打印奇数 3 4 loop: 1 5 loop: 3 6 loop: 5 7 loop: 7 8 loop: 9
方法2
1 for i in range(1,10): 2 if i % 2 == 1: # 如果i除以2 得1 的为奇数 3 print('loop:',i) #打印奇数
打印 1-49 71-99
1 for i in range(100): 2 if i < 50 or i > 70: # 如果i 小于50 或者 i大于70 的数字 3 print(i) # 打印1-49 71-99
for循环 用户名密码输入
1 name = 'abc' 2 pw = '123' 3 4 for i in range(3): #循环 3次 range 范围 5 username = input('username:') 6 password = input('password:') 7 if username == name and password == pw : # 如果用户名和密码都正确 8 print('welcome %s login...'% name) #提示欢迎登录 9 break #退出 不会执行else语句 10 else: #否则 11 print(' Invalid username or password') #提示无效的用户名或密码 12 else: 13 print("错误超过3次,停止输入") # 只有在for循环正常循环结束后才执行此else语句。
for循环 用户名密码 标志位
1 name = 'abc' 2 pw = '123' 3 4 pass_au = True #flag 标记 标志位 pass——au 为真 5 6 7 for i in range(3): #循环 3次 range 范围 8 username = input('username:') 9 password = input('password:') 10 if username == name and password == pw : # 如果用户名和密码都正确 11 print('welcome %s login...'% name) #提示欢迎登录 12 pass_au =False #为假 13 break #退出 不会执行else语句 14 else: #否则 15 print(' Invalid username or password') #提示无效的用户名或密码 16 if pass_au: # 循环3次 为真时 执行 17 print("错误超过3次,停止输入") # 只有在for循环正常循环结束后才执行此else语句。
continue用法
1 exit_flag = False # 赋值标志位 等于False 2 3 for i in range(10): # 设置 i 循环 10次 4 if i < 5: #如果 i 小于5时 5 continue # 重新进入下一次循环 6 print(i) 7 for j in range(10): #设置 j循环10次 8 print('layer:',j) 9 if j == 6: #如果 j 循环到 等于6时 10 exit_flag = True #标志位 为 真 11 break 12 if exit_flag: #如果 为真是 退出 13 break
continue用法
1 for i in range(10): #循环范围10次 range 范围 2 print('loop:',i) #loop 循环 3 for i in range(10): 4 if i <5: #遇到小于5的 5 continue #不往下走了,直接进入下一次循环 continue(继续) 6 print('loop:',i) 7 for i in range(10): 8 if i >5: #遇到大于5的 9 break #不往下走了,直接退出整个循环 10 print('loop:',i)
无限循环
1 conut = 0 #conut(计数) 2 while True: # 当... 为真时 while(当) True(真实) 3 print('无限循环',conut) 4 conut +=1 #每次循环计数器+1
按次循环
1 count = 0 # count(计数) 2 while True: # 当... 为真时 while(当) True(真实) 3 print('循环',conut) 4 conut +=1 5 if count == 100: # 如果 count计数 等于100时 if(如果) 6 print('停止') 7 break #退出 break
while 循环
1 height = int(input('高度:')) # 输入值 2 width = int(input('宽度:')) #输入值 3 4 num1 = height # 赋值 5 6 while num1 > 0: #当 num1 大于 0 时 7 num2 = width #赋值 8 while num2 > 0: # 当num 2 大于 0 时 9 print('#',end='') # 打印# (end='' 为不换行) 10 num2 -= 1 #每次循环减 1 11 print() # 打印 换行 12 num1 -= 1 #每次循环减 1
while循环
1 user = 'abc' 2 pw = '123' 3 4 counter = 0 # counter 计数器 = 0 5 6 while counter < 3: #当 counter 小于 3次 0次开始计算 7 username = input('username:') 8 password = input('password:') 9 if username == user and password == pw: #如果 username 和 password 等于 10 print('welcom %s login..' %user ) #打印 %s 点位符 11 break #中断 退出 12 else: #否则 提示错误 13 print('invalid username or password') 14 counter += 1 # 计数器 每次循环 + 1 15 if counter == 3: # 如果count 等于3时 16 keep_going_choice = input('是否要继续输入 Y/N:') #提示 输入 17 if keep_going_choice == 'y': #如果输入内容为y时 18 counter = 0 # counter 计数器 清 0 重新循环 19 20 else: #否则 正常循环结束打印 21 print('输入结束')
whlie 循环
1 height = int(input('高度:')) 2 width = int(input('宽度:')) 3 4 num_height = 1 # 赋值是1 5 6 while num_height <= height: #当 num_height <= height 时 7 num_width = 1 # 赋值1 8 while num_width <= width: # 当 num_width <= width 时 9 print("@", end='') # 打印# (end='' 为不换行) 10 num_width += 1 # 循环 + 1 11 print() # print()为换行 12 num_height += 1 #循环 + 1
while循环
1 line = 6 # 行 赋值 2 3 while line > 0: #当行大于0 时 4 tmp = line # 赋值 5 while tmp > 0: #当 tmp 大于0时 6 print('#',end='') #打印 #号 不换行 7 tmp -= 1 #每次循环 - 1 8 print() #打印换行 9 line -= 1 #每次循环 - 1
和上面的结果相反
1 line = 1 2 3 while line <= 6: 4 tmp = 1 5 while tmp <= line: 6 print('#',end='') 7 tmp += 1 8 print() 9 line += 1
for按次循环 猜年龄游戏
1 age = 30 # 赋值 age 为30 2 3 count = 0 #计数器 0 4 for i in range(3): #循环3次 5 guess_age = int(input('年龄:')) #输入整数 6 if guess_age == age: #如果等于 7 print('输入正常') 8 break # 退出 9 elif guess_age >30: #如果 大于 10 print('往大输入') 11 else: #否则 12 print('往小输入') 13 14 else: #错误超过3次 15 print('错误超过3次,停止输入')
while 循环猜年龄游戏
1 age = 30 # 赋值 age 为30 2 3 count = 0 #计数器 0 4 while count <3: #循环3次 5 guess_age = int(input('年龄:')) #输入整数 6 if guess_age == age: #如果等于 7 print('输入正常') 8 break # 退出 9 elif guess_age >30: #如果 大于 10 print('往大输入') 11 else: #否则 12 print('往小输入') 13 count +=1 # 每次循环计数器+1 14 else: #错误超过3次 15 print('错误超过3次,停止输入')
九九乘法表
1 first = 1 #赋值 first(第一) = 1 2 while first <= 9: # 当first<= 9时 3 second = 1 #赋值 second(第二)= 1 4 while second <= first: #当second = 1时 5 print(str(second)+'*'+str(first)+'='+str(second*first),end='\t') 6 #打印 second * first = second * first end='\t'(制表符) 7 second += 1 #每次循环 + 1 8 print() # 打印换行 9 first += 1 #每次循环 + 1
列表
用[]表示列表
1 #增删改查 2 a = ['张三','李四','王五','赵六','陈七','1'] 3 # 索引 作标从0 开始 4 # 查 切片 5 print(a[0:]) # 取到最后的值 6 print(a[0:-1])#取到倒数第二个值 7 print(a[0:-1:1]) #从左到右一个一个去取 8 print(a[1::2]) #从左到右隔一个去取 9 print(a[3::-1]) #从右到左去取 10 11 #增 12 #append 追加到后面 insert 插入 13 a.append('田八') #默认追加到最后一个位置 14 print(a) 15 a.insert(1,'田八') #可以插入到任意位置 16 print(a) 17 18 # 修改 19 a[1] = '罗八' #索引值 修改指定位置 20 print(a) 21 a[1:3] = ['刘九','廉十']#索引值 修改多个指定位置 22 print(a) 23 24 # 删除 remove pop del 25 a.remove('李四') #直接删除指定的元素 26 print(a) 27 b = a.pop(1) #按索引删除指定的元素 并返回删除的内容 28 print(a) 29 print(b) 30 del a[0] #按索引,也可以直接删除变量 31 print(a) 32 33 # count : 计算某个元素出现的次数 34 35 t = ['1','2','1','3','4'].count('1') 36 print(t) 37 38 # extend(延伸) : 当变量中的元素插入到另一个变量中 39 a = [1,2,3] 40 b = [4,5,6] 41 a.extend(b) #a 变量中 插入b变量的元素 42 print(a) 43 print(b) 44 c = a+b # c 等于 a+b的值 45 46 # index(索引) 根据内容查找索引位置 47 print(a.index('李四')) 48 # 49 reverse(相反) 50 a.reverse() #相反的方向显示 51 print(a) 52 53 # sort(排序) 按正序排序 54 a.sort() #从小到大排序 或者 ASCLL码排序 55 a.sort(reverse=True) # 加上reverse=True 从大到小排序 56 print(a)
列表嵌套
1 a = [[1,2,3],'abcdf',4,5,6,(7,8,9)] 2 # 列表 字符串 数字 元组 3 # a[0] #按索引取第一个元素 [1,2,3] 4 # a[0][2]#按索引取第二个元素 abc 5 print(a[0][2])
元组
为只读列表,数据只可以被查询,不可以修改,列表切片同样用于元组元组写在()里面,元素之间用逗号隔开。0个 或者 1个的元素的元组比较特殊a = () a = (1,) #一个元素,需要在元素后加逗号
a = (1,2,3,4)#元组print(a[1:4]) #查元组中元素购物车程序
1 shopping_list = [ #列表 2 ('iphone',6000), 3 ('macbook pro',9000), 4 ('apple watch',2500), 5 ('airpods',1288)] 6 shopping_car = [] 7 8 money = input('请输入你的金额:') 9 if money.isdigit():# 判断输入的是否长的像数字 10 money = int(money) #输入的内容转成整型(数字) 11 while True: 12 #打印内容 13 for i,v in enumerate(shopping_list,1): # enumerate 在展示列表前面加上索引数字默认为0 (列表名,1)索引加1, i,v 用两个变量分别接收 索引 和 列表内容 14 print(i,'>>>',v) 15 #引导用户选择商品 16 choice = input('选择商品编号[退出:Q]:') #choice:选择 17 #验证输入是否合法 18 if choice.isdigit():#判断输入的是否长的像数字 19 choice = int(choice) #输入的内容转成整型(数字) 20 if choice > 0 and choice <= len(shopping_list):# 如果输入的结果大于0 同时小于len 返回字符串、列表、字典、元组等长度 21 #将用户选择的商品通过choice取出来 22 item = shopping_list[choice -1] # item 赋值 = 列表索引 输入的值-1 23 #如果钱够,用本金money减去选的商品价格,并选择的商品加入购入购物车 24 if item[1] < money: # 25 money -= item[1] 26 shopping_car.append(item) 27 else: 28 print('余额不足,还剩 %s 元钱'%money) 29 print(item) 30 else: 31 print('编码不存在') 32 elif choice == 'q': 33 print('-------你已购买如下商品-------') 34 #循环显示购物车里的商品,购物车存放的是已购商品 35 for i in shopping_car: 36 shopping_car.count(item) 37 print(i) 38 print('你的余额为 %s 元钱'%money) 39 break 40 else: 41 print('无效输入')
字符串
1 # 1 * 重复输出字符串 2 print('hello'*2) #重复输出字符串 3 4 # 2 通过索引获取字符串中的字条,这里和列表的切片操作是相同的 5 print('helloworld'[2:]) 6 7 # 3 关键字 in 成员运算符,如果字符串中包含指定的字符返回 True 否则返回Flase 8 print(123 in [23,45,123]) 9 print('el1' in 'hello') 10 11 #4 格式化字符串 12 13 print('%s world'%'hello') 14 15 #5 字符串拼接 16 17 a = '123' 18 b = 'abc' 19 c = a+b 20 print(c) 21 c = '---'.join([a,b]) #常用效率方法,「''」里面可以为空也可其它字符,或者空格 22 print(c) 23 24 #6 string字符串的内置方法 25 26 a = 'hello world {name}' 27 print(a.count('l')) # * 统计元素个数 28 print(a.capitalize()) #首字母大写 29 print(a.center(50,'-')) # * 居中显示字符串并两边显示 ''的的内容 30 print(a.endswith('d')) #判断以某个内容结尾 31 print(a.startswith('h')) # * 判断以某个内容开头 32 print(a.expandtabs(tabsize=10)) # \t 插入空格 33 print(a.find('w')) # * 查找到第一个元素,并将索引值返回 34 print(a.format(name='abc')) # * 格式化输出的另一种方式 35 print(a.format_map({'name':'abc'})) #以字典的方式格式化输出 36 print('My Name'.lower()) # * 全部转换为小写 37 print('My Name'.upper()) # * 全部转换为大写 38 print('\t My Name\n'.strip())# * 清空所有的空格和换行符 39 print('My Name Name'.replace('ame','o',1))# * 替换指定的内容,可指定替换几次 40 print('My Name name'.split('a',1)) # 指定分隔 来分隔内容,可指定分隔几次
字典
1 #创建字典 用{}号表示 2 3 dic = {'name':'张三','age':20} #字典创建方法 4 dic1 = dict((('name','张三'),('age',20))) #第二种方法 不常用 5 print(dic1,dic) 6 7 # 增加内容 8 dic2 = {'name':'李四'} 9 dic2 ['age'] = 22 #增加内容 10 print(dic2)#{'name': '李四', 'age': 22} 11 dic2.setdefault('age',25)#如果存在「键」不做修改,并返回「键」的值 12 dic2.setdefault('job','IT')#如果「键」不存在,在字典中增加新的「键」值对,并返回相应的值 13 print(dic2) 14 15 #查 通过键去查找 16 print(dic['name']) 17 print(list(dic.keys())) #查看所有的「键」并转换为列表 18 print(list(dic.values()))#查看所有的「键」的值 并转换为列表 19 print(list(dic.items()))#把所有的「键」值对拿出来 20 21 # 改 22 dic3 = {'name':'张三','age':28} 23 dic3['name'] = '李四' #更改内容 24 dic4 = {'name':'王五','salry':10000} 25 dic3.update(dic4) #如果没有增加内容,如果有相同的覆盖之前的内容 26 print(dic3) 27 print(dic4) 28 29 30 31 # 删除 del 32 33 dic5 = {'name':'赵六','age':'26'} 34 # del dic5['name'] #删除字典中指定的键值对 35 # dic5.clear()#清空字典内容 36 # del dic5 #删除整个字典 37 ret = dic5.pop('age')#删除字典中指定内容并返回删除内容的值 38 print(ret) 39 40 a = dic5.popitem()#随机删除某组键值对,并以元组方式返回值 41 「键」 值 42 dic6 = dict.fromkeys(['host1','host2','host3'],['test1','test2']) #第三种字典创建方法 43 print(dic6)#{'host1': ['test1', 'test2'], 'host2': ['test1', 'test2'], 'host3': ['test1', 'test2']} 44 45 dic6['host2'][1] = 'test3' #修改字典元素 会批量修改 46 print(dic6)#{'host1': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host3': ['test1', 'test3']} 47 48 #字典嵌套 49 50 51 dic7 = {6:'333',2:'111',3:'666'} 52 print(sorted(dic7))#按字典中的「键」进行排序 53 print(sorted(dic7.values()))#按字典中的值进行排序 54 print(sorted(dic7.items()))#按字典中的「键」进行排序并显示整个键值对 55 56 #字典的遍历 57 58 dic8 = {'name':'张三','age':18} 59 for i in dic8: 60 print(i,dic8[i]) #显示 字典中的键和值 61 62 for i,v in dic8.items():# 第二种显示字典中的键和值,这种效率慢 63 print(i,v)
三级菜单
1 menu = { 2 '北京':{ 3 '海淀':{ 4 '中关村':{}, 5 '知春路':{}, 6 '五道口':{}, 7 8 }, 9 '东城':{ 10 '东单':{}, 11 }, 12 '西城':{ 13 '金融街':{}, 14 '西单':{}, 15 }, 16 17 }, 18 '上海':{ 19 '徐汇区':{}, 20 '浦东':{} 21 22 }, 23 '天津':{ 24 '河北区':{}, 25 '河东区':{}, 26 } 27 } 28 29 current_layer = menu # 赋值动态循环 current(当前) layer层 30 parent_layers = [] #保存所有父级,最后一个元素永远都是父级 31 while True: 32 for key in current_layer: 33 print(key) 34 choice = input('>>>:').strip() # 35 if len(choice) == 0:continue 36 if choice in current_layer: 37 parent_layers.append(current_layer)#在进入下一层之前,把当前层(下一层的父级) 38 #追加到列表中,下一次循环,当用户选择b的时候,就可以直接取列表中最后一个值出来 39 current_layer = current_layer[choice]#改成子层 40 elif choice == 'b': 41 if parent_layers: #如果为空的时候 42 current_layer = parent_layers.pop()#取出列表的最后一个值,因为迱就是当前层的父级 43 else: 44 print('无内容')
来源:https://www.cnblogs.com/bianyi/p/7473041.html