python3 列表、元组、字典等操作(第二周)
前言:
为什么要学习python3?
原因:
1、学习一门语言能力
2、通过该语言能力完成测试自动化以及独立完成自测框架知识
那么我要做什么呢?
1、每天花十个小时完成python3的学习
要在什么地方做呢?
深圳家里完成7天
那到底要怎么做呢?
完成基本的python3的基础知识,从而再学习测试框架
总结:
1、让我初步了解列表、字典、元组的基本的增删改成的操作
2、了解了字符串的操作
3、完成了购物车基本流程代码
运用的函数:
列表的增删改查操作
1 names =["one","two","three","four","five","six","seven","eight","nine","ten","ten"] 2 #names = ["0","-9","-8","-7","-6","-5","-4","-3","-2","-1"] 3 4 #查 index() count() 5 print("指定位置值",names[0]) 6 print("顾前不顾尾,= 1、2的值",names[1:3]) 7 print("含-2后面的值",names[-2:]) 8 print("0:3的值",names[:3]) 9 print("通过值找位置符",names.index("one")) 10 print("统计指定内容数",names.count("ten")) 11 yao=["one","two","three",["one","two"]] 12 print("yao的值:",yao) 13 print("yao的子列表值",yao[3][0]) 14 15 #增,append() , insert() 16 names.append("elven") 17 print("#append 加入到列表尾部",names) 18 names.insert(1,"two2") 19 print("插入指定位置,后面的顺延位置",names) 20 21 #改 22 names[1] = "修改后的值" 23 print(names) 24 yao[3][0] = "修改子列表值" 25 print("修改子列表的值",yao) 26 27 #删 remove() 、del、 pop()、clear() 28 names.remove("修改后的值") 29 print(names) 30 del names[0] 31 print(names) 32 names.pop() 33 print("pop()默认删除最后一个",names) 34 names.pop(0) 35 print("输入位置后,与del names[0]方法一样",names) 36 #names.clear() #清空列表 37 #print("清空列表",names) 38 39 #其他函数 sort()、extend() 40 names.sort() 41 print("排序",names) 42 names2=[1,2,3] 43 names.extend(names2) 44 print("合并两个列表,但不会删除合拼的列表",names,names2) 45 46 #复制 调用copy模块 浅复制,只是复制表层:copy() 深:copy.deepcopy() 47 yao1= ["yaoone","yaotwo","yaothree",["子列表1","子列表2"]] 48 yao2= yao1.copy() #yao1和yao2的内存地址不一样,但子列表的内存地址一样,只是copy最外层的内容 49 #yao2 = copy.copy(yao1) #浅复制和上面一样的意思 50 #yao2 = copy.deepcopy(yao1) #深复制,把子列表也复制一份 51 print("copy后,yao2的值",yao2) 52 yao1[0] = "中文姚" #修改后,yao1列表会变,yao2列表不变 53 print("yao1的值",yao1) 54 print("yao2的值",yao2) 55 yao1[3][0] = "修改子列表值" #yao1和yao2的子列表内存地址一样,所以改的是一个地方,会变 56 print("修改yao1子列表的值,查看yao1值",yao1) 57 print("修改yao1子列表的值,查看yao2值",yao2)
元组的操作
1 #元组一旦新建后不能修改任何值, 只能读。count(), index() 2 names3=("yao1","yao2","yao2") 3 print("统计数",names3.count("yao2")) 4 print("找位置",names3.index("yao2"))
字符串的操作
1 #字符串的操作 2 ''' 3 name ="yao \tni hao ya" 4 print(name.capitalize()) 5 print(name.count("a")) 6 print(name.center(50,"-")) 7 print(name.encode()) 8 print(name.endswith("ha")) 9 print(name.expandtabs(tabsize=30)) 10 print(name.find("yao")) 11 print(name.format()) 12 #print(name.format_map()) 13 #print(name.index()) 14 print(name.isalnum()) 15 print(name.isalpha()) #纯英文字符 16 print(name.isdecimal())#十进制 17 print(name.isdigit()) # 是否整数 常用 18 print(name.isidentifier()) #判读是不是一个合法的标识符 19 print(name.islower()) 20 print(name.isnumeric()) #是不是一个数字(只有纯数字,不含小数点) 21 print(name.isspace()) #是不是一个空格 22 print(name.istitle()) #每个首字母大写 23 print(name.isprintable()) 24 print(name.isupper()) #是否全部大写 25 print(name.join("--")) #常用 26 #print("+".join(["1","2","3","4"]) 27 print(name.ljust(50,"*"))#补全 28 print(name.rjust(50,"-")) 29 print(name.lower()) #把大写变成小写 30 print(name.upper()) #把小写变大写 31 print(name.lstrip()) #从左边去空格回车 32 print(name.rstrip()) #从右边去空格回车 33 print(name.strip()) #左右去空格回车 34 p = str.maketrans("abcde","123456") 35 print("alex li".translate(p)) 36 print(name.replace("a","L",1)) # 替换,后加的参数是替换几个,默认全部 37 print(name.rfind("a")) #从左往右,找最后面的值的下标返回 38 print(name.split("")) #把字符串按空格分列表 39 print(name.splitlines()) #按换行来分列表 40 print("Alex Li".swapcase()) # 大小写互换 41 print("Alex Li".title()) #每个字符首字母大写 42 print("Alex Li".zfill("50")) # 直接给长度
字典的 增删改查操作
1 #注:字典没有下标,打印没有顺序 2 3 #查 4 info = { 5 "stu1101":"zhangs", 6 "stu1102":"lisi", 7 "stu1103":"xiaowu" 8 } 9 print(info) 10 print(info["stu1102"]) 11 print(info.get("stu1102")) 12 print("stu1105" in info) 13 14 #改和新增 没有则新增,有则修改 15 info["stu1104"] = "第四条" 16 print(info) 17 b = { 18 "stu1101":"xiaoming", 19 1:3, 20 2:5 21 } 22 info.update(b) #把字典info和B 一致的key的值替换。B的值替换info 23 print("------------",info) 24 print(info.items()) #把字典转成一个列表 25 # 删除 del pop() 26 del info["stu1102"] 27 print(info) 28 info.pop("stu1103") 29 print(info) 30 31 32 #info.values() #打印所有的值,不包含KEY 33 #info.keys() #打印KEY,不打印值 34 '''
初级购物车程序
1 commodity = [ 2 ("dog",100), 3 ("cat",200), 4 ("apples",300), 5 ("books",400), 6 ("pig",500) 7 ] 8 shopping= [] 9 money = input("请输入你的工资:") 10 if money.isdigit(): 11 money = int(money) 12 while True: 13 for i,index in enumerate(commodity): #i 是下标, index是值,可任意起名字 14 print(i,index) 15 number = input("输入购买商品的编号:") 16 if number.isdigit(): 17 number = int(number) 18 if number < len(commodity) and number >= 0: 19 money_list = commodity[number] 20 if money_list[1] <= money: 21 shopping.append(money_list) 22 #money -= money_list[1] 23 money = money -money_list[1] 24 print("当前余额为",money) 25 else: 26 print("余额不足,买不了了 ") 27 continue 28 else: 29 print("没有该商品,请重新选择") 30 continue 31 elif number == "q": 32 for p,index in enumerate(shopping): 33 print(p,index) 34 print("当前余额为:%s"%(money)) 35 exit() 36 else: 37 print("输入的值有误,请重新输入:") 38 continue 39 elif money == "q": 40 print("退出系统成功") 41 exit() 42 else: 43 print("输入值不是数字") 44 exit()
三级菜单程序
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 three = { 5 '广东省':{ 6 "广州市":["增城区","越秀区", "白云区"], 7 "深圳市":("南山区","罗湖区","宝安区"), 8 "江门市":{ 9 "大江门区":"小鬼子", 10 "小江门区":"大鬼子", 11 }, 12 }, 13 '湖南省':{ 14 "长沙市":"怀化", 15 }, 16 '海南省':{ 17 "东方市":{"八所","白沙"}, 18 "文昌市":("小村庄") 19 } 20 } 21 while True: 22 for i1 in three: 23 print("i1打印:",i1) #打印的是字典的省 24 one1 = input("请输入需要的省份:") 25 if one1 == "q": 26 exit() 27 if one1 in three: 28 for i2 in three[one1]: 29 print("打印的是市:",i2) 30 one2 = input("请输入需要的市:") 31 if one2 == "q": 32 exit() 33 if one2 in three[one1]: 34 for i3 in three[one1][one2]: 35 print(i3) 36 one3 = input("请输入区:") 37 if one3 =="q": 38 exit() 39 if one3 in three[one1][one2]: 40 print(three[one1][one2][one3]) 41 one4 = input("已经是最后一层了,输入N返回最上层:") 42 if one4 =="n": 43 pass

浙公网安备 33010602011771号