python 列表、元组 字符串 简单的购物车相关的知识
今天学习了列表、元组相关的知识:与C中的数组列表相似,元组为只读列表:
以及切片相关操作:
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 #元组,列表 5 names=['zy','gy','xp',['2r','t3','t4'],'lh','xc'] 6 print(names) 7 print(names[0],names[2]) 8 print(names[1:3])#切片左往右 9 print(names[2])#切片 10 print(names[-1])#切片从后开始取 11 print(names[-2:])#切片左往右最后的省略 12 print(names) 13 names.append('lh')#追加 14 print('追加后;',names) 15 names.insert(3,'crh')#插入位置 16 print('插入位置后:',names) 17 names[2]='ggy'#修改 18 print('修改后:',names) 19 del names[2] 20 print('删除后:',names) 21 print('统计个数:',names.count('lh'))#统计内空个数 22 names_id=names.index('gy')#内容所在的下标 23 names_user=names[names.index('gy')]#下标所对应的内容 24 print(names_user) 25 print(names_id) 26 #names.clear()#清空列表 27 print('原序列打印:',names) 28 names.reverse()#反转列表 29 print('反转序列打印:',names) 30 #names.sort()#排号序默认为ACSII码表 31 print('排号后打印:',names) 32 33 names2=[1,2,3,4,5,6] 34 names.extend(names2)#合并names2列表 35 print('合并后打印:',names) 36 print('第二列表:',names2) 37 import copy 38 names3=copy.deepcopy(names)#完全COPY 39 #names3=names.copy()#复制names列表 赋于names3 浅复制 子列表为指针地址 40 print('列表3',names3) 41 print('列表1',names) 42 names3[0]='修改1' 43 names3[3][1]='修改二层' 44 print('列表3',names3) 45 print('列表1',names) 46 for i in names: 47 print (i) 48 for i in range(names.__len__()):#__len__列表元素个数(长度) 49 if names[i]=='crh': 50 print(names[i]) 51 print(i) 52 # for i in range(1,names.__len__(),2): 53 # print(i) 54 print(names[0:-1:2])#开始位 结束位 步长() 55 print(names[::2])#0和-1可以省略不写
import copy 浅层与深层COPY
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import copy 5 person=['name',['财务部','办公在六层']] 6 p1=copy.copy(person)#浅COPY 7 p2=person[:]#浅COPY 8 p3=list(person)#浅COPY 9 p1[0]='颜' 10 p2[0]='陈' 11 p3[0]='张' 12 person[1][1]='办公室改到七层' 13 print(person,p1,p2,p3)
最后是字符串相关的操作:
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 #字符串操作 5 name="my name is {name} and age is {year}!" 6 name_1="Abc123AA bbr" 7 name_2=" " 8 names=name.format(name="calmyan",year=35)#格式化字符 9 print(names) 10 print(names.count("m"))#统计该字符串中指定字符的个数 11 print("添加TAB键的数量",names.expandtabs(tabsize=70))#添加TAB键的数量 12 print(name.endswith("!"))#判断是否以指定字符结尾 13 print(names.find("n"))#返回字符所在索引 14 print(names[names.find("n"):names.find("!")])#返回字符所在索引,可进行切片操作 15 print("判断类:") 16 print("是否是在字母大小写和数字之间的范围:",name_1.isalnum())#是否是在字母大小写和数字之间的范围 17 print("是否是在字母大小写之间的范围:",name_1.isalpha())#是否是在字母大小写之间的范围 18 print("是否是在十进制整数的范围:",name_1.isdecimal())#是否是在十进制整数的范围 19 print("是否是在整数的范围:",name_1.isdigit())#是否是整数的范围 20 print("是否是在整数的范围:","123".isnumeric())#是否是整数的范围 21 print("是否是空格:",names.isnumeric())#是否是空格 22 print("是否是大写开头:",name_1.istitle())#是否是大写开头 23 print("是否是全为大写:",name_1.isupper())#是否是全为大写 24 print("指定字符对字符串进行分割(每个字符):") 25 print(" ".join(names))#用指定字符对字符串进行分割,包括空格 26 print(names.ljust(50,"*"))##指定该字符串的长度,不足用指定字符右端补齐 27 print(names.rjust(50,"*"))##指定该字符串的长度,不足用指定字符左端补齐 28 print(name.center(50,"="))#指定该字符串的长度,不足用指定字符两端补齐,字符串居中 29 p=str.maketrans("abcdefg","1234567")#两个字符串进行一一对应替换 30 print(p) 31 print("gfedcba".translate(p))#传入将会显示对应的字符 32 print("对指定字符进行替换:",name_1.replace("A","a"))#对指定字符进行替换,可选定数量,参数不填默认为全部 33 print("对指定字符进行替换:",name_1.replace("A","a",2))#对指定字符进行替换,可选定数量 34 print("查找最右边的指定字符:",name_1.rfind("3"))#查找最右边的指定字符,返回索引下标 35 print("按指定字符进行分割:",name_1.split("3"))#按指定字符进行分割,字符串中指定字符去除 36 print("按换行进行分割:",name_1.splitlines())#按换行进行分割 37 print("字母大小写互换:",name_1.swapcase())#字母大小写互换 38 print("首字母大写:",name_1.title())#首字母大写 39 print(name_2.zfill(5))#指定字符串长度,不足左边用0补位 二进制运算
模拟购物车
分享出来,共同进步!
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import copy 5 #name_char=int(input("请输入工资(购物资金):"))#用户输入工资(购物资金) 6 #商品列表 7 goodsname=[('手机',2300), 8 ('笔记本电脑',3500), 9 ('平板电视',3900), 10 ('电冰箱',1300),('电磁炉',500) 11 ] 12 #goodsname=['1',] 13 #购物车列表 14 shoplist=[] 15 #购物统计 16 shop_count=0 17 #用户列表 18 #user_shoplist=['用户名'] 19 while True: 20 name_char=input("请输入工资(购物资金):")#用户输入工资(购物资金) 21 if name_char.isdigit():#检测输入是否为整数 22 name_char=int(name_char)#转为int 23 break 24 else: 25 print('金额不能为0或负数请正确输入金额!') 26 continue 27 while True: 28 #for i in goodsname: 29 for index,item in enumerate(goodsname):#取出下标输出 30 print(index,item) 31 #print(goodsname.index(i),i) 32 # break 33 user_index=input('请输入商品编号添加你所在购买的商品:') 34 if user_index.isdigit(): 35 user_index=int(user_index) 36 if user_index < len(goodsname) and user_index>=0:#判断所选商品编号在在列表 37 p_item=goodsname[user_index]#读取下标所在元素 38 if p_item[1]<=name_char:#余额是否足够 39 shoplist.append(p_item)#添加到购物车 40 name_char-=p_item[1]#扣除金额 41 shop_count+=p_item[1]#累加购物金额 42 # print(type(name_char)) 43 #print(shop_count) 44 print("添加 %s 到购物车,你的购物金额余 \033[31;1m%s\033[0m 元"% p_item,name_char) 45 else: 46 print("你的购物金额余 \033[41;1m%s\033[0m 元,无法购买该商品" % name_char) 47 else: 48 print('输入错误,该编号 %s的商品不存在!',user_index) 49 elif user_index=='q'or 'Q': 50 for up in shoplist:#打印购物清单 51 print('你的购物清单:',up) 52 print("你的购物总金额为:\033[32;1m%s\033[0m 元!"% shop_count) 53 print("你的购物金额余: \033[31;1m%s\033[0m 元!" % name_char) 54 while True: 55 confirm=input('你是否确定退出购物?Y/N:') 56 if confirm== 'Y': 57 exit(print("谢谢!欢迎您再次光临!")) 58 elif confirm=='N': 59 break 60 else: 61 print("输入错误!请按提示输入!") 62 continue 63 else: 64 print('输入错误,请重新输入!')