0基础自学python笔记(三)

一、字符格式化输出

 1 name = input("名字:")
 2 age = input("年龄:")
 3 wage = input("工资:")
 4 if age.isdigit(): #判断age是否是数字
 5     age = int(age)
 6 else:
 7     exit("年龄输入错误")
 8 a1 = '''---------Your %s------------
 9 name:%s 
10 age:%d
11 wage:%s
12 你还能活%s年
13 -------------end-----------''' % (name,name,age,wage,80-age)
14 #占位符%s  s = string
15 #数字  %d  d=digit
View Code

 二、数据类型出初识

整数为整型和长整型,python3 里面已经不区分整型与长整型,统一都叫整型。

布尔 只有2种状态,分别是
            真 True
            假 False

计算机中, 一切皆为对象
            世界万物,皆为对象,一切对象皆可分类

三 、列表(list)

  • 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字- 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
  • Python有6个序列的内置类型,但最常见的是列表和元组。
  • 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
  • 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
  • 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同的类型
  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

列表的创建

1 num = ["a1","a2",2018,[2019,2020]] #可进行嵌套
2 b = list(("a1","a2"))#用list直接创建

列表一般操作

 1 num = ["a1","a2","a3",2018,[2019,2020],"a4"]#[]里面的为元素,列表里的元素数据类型可以不同,也可以是另一个列表
 2 num2 = ["a","b"]
 3 print(num)#输出["a1","a2","a3",2018,[2019,2020],"a4"]
 4 
 5 #使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符,如下所示:
 6 print(num[1])#输出a2
 7 print(num[0],num[3])#输出为a1 2018
 8 print(num[-1],num[-3])#输出a4 2018
 9 #切片使用索引位置
10 print(num[0:3])
11 print(num[:3])#输出为['a1','a2','a3'],此操作顾头不顾尾
12 print(num[-2:])#输出[[2019, 2020], 'a4']
13 print(num[1:-2])#输出['a2', 'a3', 2018]
14 print(num[1:-1:2])#['a2', 2018] 第三个数值为步长
15 print(num[3:0:-1])#[2018, 'a3', 'a2'] 步长为负数时,怎从右往左取,依然顾头不顾尾
16 #添加
17 num.append("a5")#无法输出print(x.append("xx"))
18 print(num)#输出['a1', 'a2', 'a3', 2018, [2019, 2020], 'a4', 'a5'] append为默认输入到最后
19 num.insert(3,"2018a")#无法输出print(x.insert("xx"))
20 print(num)#输出结果['a1', 'a2', 'a3', '2018a', 2018, [2019, 2020], 'a4', 'a5'] insert 可插入到某个具体的位置
21 #删除
22 num.remove("2018a")
23 print(num)#输出结果为['a1', 'a2', 'a3', 2018, [2019, 2020], 'a4', 'a5'],可删除某一具体元素
24 b = num.pop(6)#()无索引数值择默认删除最后一个元素
25 print(num)#输出为['a1', 'a2', 'a3', 2018, [2019, 2020], 'a4']。可删除某一具体的索引
26 print(b)#输出为a5 pop删除可直接输出删除的内容
27 '''del num2[1]
28 print(num2)['1']
29 #输出为['a'] del 通过索引删除元素,也可以直接删除整个列表如:del num2'''
30 
31 #查找某一元素的索引数值
32 print(num.index("a3"))#输出为2
33 #查找某一元素出现的次数
34 print(num.count(2018))#输出结果为1
35 #反转列表
36 num.reverse()
37 print(num)#输出['a4', [2019, 2020], 2018, 'a3', 'a2', 'a1']
38 # #排序
39 num.sort()#按照ASISS 排序
40 print(num)
41 #列表合并
42 num.extend(num2)
43 print(num)#输出:['a4', [2019, 2020], 2018, 'a3', 'a2', 'a1', 'a', 'b']
View Code

 补充

1 b =  {"名字":["wangming","xiaoli"],"nianling":[25,20]}
2 c=b.get("das","没有该键值对")  # 没有该键值对
3 print(c)

三、元组(tuple)

元组也是存一组数据,只是一旦创建,便不能修改和删除,所以又叫只读列表。

1 tup1 = (1,2,3,4,5)
2 tup2 = ('frui', 27)
3 tup3 = "a", "b", "c", "d";
4 tup4 = () #创建空元组

元组中只包含一个元素时,需要在元素后面添加逗号

扫描二维码关注公众号,回复: 2266026 查看本文章
tuple5 = (50,) #元组中只包含一个元素时,需要在元素后面添加逗号
tuple6 = (50)
#如果不加逗号,则定义的不是tuple,是50这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算。

购物车练习

 1 #__author:Mr. Zhang
 2 #date: 2018/6/30
 3 LB=[
 4     ("iphone6s",5800),
 5     ("mac_book",9000),
 6     ("coffee",32),
 7     ("python_book",80),
 8     ("bicyle",1500),
 9     ]#LB为商品列表
10 GMLB = []#GMLB为已购买的商品,待用
11 money = input("你有多少钱?")#引导用户输入自己拥有的钱
12 if money.isdigit():#判断是否是数字
13     money = int(money)#改变字符串为整数
14     while True:
15         for i,v in enumerate (LB,1):#注意enumerate用法
16             print(i,">>>>",v)
17         ids = input("你想要的商品编号:(输入q退出)")#打印出商品列表
18         if ids.isdigit():#判断输入的商品编码是否为数字
19             ids = int(ids)#如果是数字则将字符串转换为整数
20             if ids > 0 and ids <= len(LB):#len(list)判断列表的长度
21                 idss = LB[ids-1]#取出商品在列表中的索引
22                 if money >= idss[1]:#判断商品金额是否大于用户余额
23                     money -=idss[1]
24                     GMLB.append(idss)#将购买的加入购物车
25                 else:
26                     print("余额不足,还剩%s"%money)
27                 print(idss)
28             else:
29                 print("商品编码不存在")
30         elif ids == "q":
31             print("-----你已经购买了一下商品-----")
32             print(GMLB)
33             print("你还剩余%s"%money)
34             break
35         else:
36             print("输入错误")
37 else:
38     exit("输入的格式错误")#如果输入的格式不是数字则会提示输入的格式错误
View Code

三、字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素通过键来存取,键不可修改,值可进行修改。

创建字典

num={“name”:1。“name2”:2,name3:[4,5,6]}#字典可进行嵌套

num2= dict(((“ name”,1),("name2",2))) 通过dict创建

 基本操作

 1 num = {"名字":"小明","年龄":"36","职业":"学生"}
 2 print(num)#输出为{'名字': '小明', '年龄': '36', '职业': '学生'}
 3 #增加
 4 num["工资"] = 3500
 5 print(num)#{'名字': '小明', '年龄': '36', '职业': '学生', '工资': 3500}
 6 num.setdefault("名字","小红")
 7 print(num)#{'名字': '小明', '年龄': '36', '职业': '学生', '工资': 3500} 键存在怎不改动
 8 a=num.setdefault("身高","一米八")
 9 print(num)#输出{'名字': '小明', '年龄': '36', '职业': '学生', '工资': 3500, '身高': '一米八'} 键不存在在字典中中增加新的键值对
10 print(a)#一米八 setdefault 可返回相应的值

 查

1 num = {"名字":"小明","年龄":"36","职业":"学生"}
2 print(num["名字"])#输出小明 通过键查找值
3 print(num.keys())#输出 dict_keys(['名字', '年龄', '职业']) keys输出为字典的键
4 print(num.items())#dict_items([('名字', '小明'), ('年龄', '36'), ('职业', '学生')]) items 为字典的键值对
5 print(num.values())#ict_values(['小明', '36', '学生']) valuse 输出为字典的值
6 print("名字" in num) #True 判断字典num中是否包含名字
7 print(list(num.values()))#['小明', '36', '学生'] list 列表

1 num = {"名字": "小明", "年龄": "36", "职业": "学生"}
2 num["名字"] = "小红"
3 print(num)# num = {"名字":"小明","年龄":"36","职业":"学生"}
4 mun2 ={"性别":"男士"}
5 num.update(mun2)
6 print(num)#{'名字': '小红', '年龄': '36', '职业': '学生', '性别': '男士'} 可覆盖值

num = {"名字": "小明", "年龄": "36", "职业": "学生"}
# num.clear()#清空列表
# print(num)#{}
# del num["名字"]
# print(num)#{'年龄': '36', '职业': '学生'}
# num.pop("名字")#返回该键值对的值
# print(num)#{'年龄': '36', '职业': '学生'} 返回该键值对的值
a=num.popitem()#随机删除某组键值对,并以元组方式返回值
print(num)#{'名字': '小明', '年龄': '36'}
print(a)#('职业', '学生')

字典的遍历

dic = {'name': '小明', 'age': 18}

for i in dic:
    print(i, dic[i])
"""输出为name 小明
age 18"""

for items in dic.items():
    print(items)
"""输出('name', '小明')
('age', 18)"""
for keys, values in dic.items():
    print(keys, values)
"""输出为name 小明
age 18
"""

其他操作

1 dic=dict.fromkeys(['host1','host2','host3'],'test')
2 print(dic)#{'host3': 'test', 'host1': 'test', 'host2': 'test'}
3 dic=dict.fromkeys(['host1','host2','host3'],['test1','tets2'])
4 print(dic)#{'host2': ['test1', 'tets2'], 'host3': ['test1', 'tets2'], 'host1': ['test1', 'tets2']}
5 dic['host2'][1]='test3'
6 print(dic)#{'host3': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host1': ['test1', 'test3']}
#sorted(dict) : 返回一个有序的包含字典所有key的列表
dic={5:'555',2:'666',4:'444'}
print(sorted(dic.items()))#输出[(2, '666'), (4, '444'), (5, '555')]

四,字符串(string)

字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"123"等等。

请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

字符串创建

1 a = “1232 b = “abc”

操作

 1 # 1   * 重复输出字符串
 2 print('hello'*2)
 3  
 4 # 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表
 5 print('helloworld'[2:])
 6  
 7 # 3 in  成员运算符 - 如果字符串中包含给定的字符返回 True
 8 print('el' in 'hello')
 9  
10 # 4 %   格式字符串
11 print('alex is a good teacher')
12 print('%s is a good teacher'%'alex')
13  
14  
15 # 5 +   字符串拼接
16 a='123'
17 b='abc'
18 c='789'
19 d1=a+b+c
20 print(d1)
21 # +效率低,该用join 列表转换为字符串
22 d2='>>'.join(["a","b","c"])23 print(d2)#a>>b>>c

内置方法

 1 # string.capitalize()                                  把字符串的第一个字符大写
 2 # string.center(width)                                 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
 3 # string.count(str, beg=0, end=len(string))            返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
 4 # string.decode(encoding='UTF-8', errors='strict')     以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
 5 # string.encode(encoding='UTF-8', errors='strict')     以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
 6 # string.endswith(obj, beg=0, end=len(string))         检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
 7 # string.expandtabs(tabsize=8)                         把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
 8 # string.find(str, beg=0, end=len(string))             检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
 9 # string.index(str, beg=0, end=len(string))            跟find()方法一样,只不过如果str不在 string中会报一个异常.
10 # string.isalnum()                                     如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
11 # string.isalpha()                                     如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
12 # string.isdecimal()                                   如果 string 只包含十进制数字则返回 True 否则返回 False.
13 # string.isdigit()                                     如果 string 只包含数字则返回 True 否则返回 False.
14 # string.islower()                                     如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
15 # string.isnumeric()                                   如果 string 中只包含数字字符,则返回 True,否则返回 False
16 # string.isspace()                                     如果 string 中只包含空格,则返回 True,否则返回 False.
17 # string.istitle()                                     如果 string 是标题化的(见 title())则返回 True,否则返回 False
18 # string.isupper()                                     如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
19 # string.join(seq)                                     以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
20 # string.ljust(width)                                  返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
21 # string.lower()                                       转换 string 中所有大写字符为小写.
22 # string.lstrip()                                      截掉 string 左边的空格
23 # string.maketrans(intab, outtab])                     maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24 # max(str)                                             返回字符串 str 中最大的字母。
25 # min(str)                                             返回字符串 str 中最小的字母。
26 # string.partition(str)                                有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
27 # string.replace(str1, str2,  num=string.count(str1))  把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
28 # string.rfind(str, beg=0,end=len(string) )            类似于 find()函数,不过是从右边开始查找.
29 # string.rindex( str, beg=0,end=len(string))           类似于 index(),不过是从右边开始.
30 # string.rjust(width)                                  返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
31 # string.rpartition(str)                               类似于 partition()函数,不过是从右边开始查找.
32 # string.rstrip()                                      删除 string 字符串末尾的空格.
33 # string.split(str="", num=string.count(str))          以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
34 # string.splitlines(num=string.count('\n'))            按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
35 # string.startswith(obj, beg=0,end=len(string))        检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
36 # string.strip([obj])                                  在 string 上执行 lstrip()和 rstrip()
37 # string.swapcase()                                    翻转 string 中的大小写
38 # string.title()                                       返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
39 # string.translate(str, del="")                        根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
40 # string.upper()                                       转换 string 中的小写字母为大写

相对常用的内置

 1 #string.count(str, beg=0, end=len(string))            返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
 2 # string.center(width)                                 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
 3 # string.startswith(obj, beg=0,end=len(string))        检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
 4 # string.find(str, beg=0, end=len(string))             检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
 5 # print(st.format(name='alex',age=37))  # 格式化输出的另一种方式   待定:?:{}
 6 # string.lower()                                       转换 string 中所有大写字符为小写.
 7 # string.upper()                                       转换 string 中的小写字母为大写
 8 # string.strip([obj])                                  在 string 上执行 lstrip()和 rstrip()
 9 # string.replace(str1, str2,  num=string.count(str1))  把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
10 # string.split(str="", num=string.count(str))          以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
 1 s = "name:xiao ming"
 2 # capitakize 首字母大写
 3 s1 = s.capitalize()
 4 print(s1)  # Name:xiao ming
 5 # upper 全部大写
 6 s2 = s.upper()
 7 print(s2)  # NAME:XIAO MING
 8 #lower 全部小写
 9 s3 = s.lower()
10 print(s3)  # name:xiao ming
11 #swapcase大小写翻转
12 s4 = s.swapcase()
13 print(s4)#NAME:XIAO MING
14 # title 首字母大写
15 s5 = s.title()
16 print(s5)#Name:Xiao Ming
17 # center 居中填充
18 a = "wang"
19 s6 = a.center(8,"*")
20 print(s6)  # center
21 # 公共方法
22 s7 = len(s)
23 print(s7)  # 14 查看元素的个数
24 #以XXX开头 startswith
25 b = 'alexWUsir'
26 s8 = b.startswith('alex')#True
27 s81 = b.startswith('e',2,5)#True,可以切片查找
28 print(s8)
29 print(s81)
30 #find index 通过元素查看索引
31 c = 'alexWUsir'
32 s9 = c.find('a')
33 s91 = c.index('a')
34 print(s91,s9)  # find 通过元素找索引,找不到返回-1  index通过元素找索引,找不到报错
35 #strip 删除前后空格
36 d= " liming "
37 s10 = d.strip()
38 print(s10)  # liming  删除前面空格retrip lstrip
39 #count 元素出现的次数
40 s11 = d.count('li')
41 print(s11)  # 1
42 #字符串转列表 分割
43 #split   str ---->list
44 e  = 'alex wusir taibai'
45 l = e.split()
46 print(l)  # ['alex', 'wusir', 'taibai']
47 
48 #format的三种玩法 格式化输出
49 q = '我叫{},今年{},爱好{},再说一下我叫{}'.format('小明',36,'读书','小明')
50 print(q)
51 q = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('小明',36,'小明') #注意要从0开始
52 print(q)
53 name = input('请输入名字:')
54 q = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
55 print(q)
View Code

练习三级菜单

缺点:重复代码较多

 1 zone = {
 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 LB = []
29 while True:
30     for i in zone:
31         print(i) #打印省级菜单
32     choice = input(">>>(输入b退出程序)")
33     if choice in zone:#判断输入合法
34         LB.append(choice) # 如果合法将数值加入列表
35         while True:#将数值停留在第二层
36             for k in zone[choice]:print(k) #打印市级菜单
37             choice2 = input(">>>(输入q返回上一层,输入b退出程序) ")
38             if choice2 in zone[choice]:#判断输入合法
39                 LB.append(choice2)# 如果合法将数值加入列表
40                 while True:
41                     for v in zone[choice][choice2]:print(v)
42                     choice3 = input(">>>(输入q返回上一层,输入b退出程序)")
43                     if choice3 in zone[choice][choice2]:#判断输入合法
44                         LB.append(choice3)# 如果合法将数值加入列表
45                         print(LB) #打印列表
46                         exit("结束")
47                     elif choice3 == "q":
48                         LB.pop()  #返回上一层时删除列表中的最后一个数值
49                         break
50                     elif choice3 == "b":exit(" 结束")
51             elif choice2 == "q":
52                     LB.pop()
53                     break
54             elif choice2 == "b":exit(" 结束")
55     elif choice == "b":exit(" 结束")
View Code

有问题待解决

1:最后打印列表问题

2:最后一层输入完后会报错

3:返回到第一层会报错

 1 zone = {
 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 num = zone
29 LB = []
30 while True:
31     for a in num:
32         print(a)
33     choice=input("<<<(输入q返回上一层:输出b退出)")
34     if choice in num:
35         LB.append(num)
36         num = num[choice]
37     elif choice == "q": num = LB.pop()
38     elif choice == "b":
39         exit("结束")
40     else:
41         print("请从新输入")
View Code

猜你喜欢

转载自www.cnblogs.com/zxq520921/p/9255709.html