今天学习了列表、元组相关的知识:与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可以省略不写
View Code

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)
View Code

 

最后是字符串相关的操作:

 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补位 二进制运算
View Code

模拟购物车

分享出来,共同进步!

 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('输入错误,请重新输入!')
View Code