Python 入门基础 一

偶尔善良 提交于 2020-04-07 15:21:41

主要是以Python 3.x 为开发环境


which python3 查看 linux及Mac下 python3是都安装以及程序的位置

终端打开python的时候,直接输入python3,打开的就是3.几的版本

 

 


  1. 变量 :字母 下划线 数字,第一个字符不能用数字
  2. 常量: 全部大写字母表示常量
变量定义的规则:

变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['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
View Code

 

方法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('无内容')
三级菜单实例

 


 
 
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!