1.字符串常用操作(较多,用代码加注释表示)
1 name = ' My name is congcong' 2 print(name.capitalize())#输出结果为 My name is congcong(首字母大写) 3 print(name.count('n')) #输出结果为 3(统计) 4 print(name.center(30,'-')) #输出结果为 -----My name is congcong------(一共打印30个字符,并将字符串放中间) 5 print(name.encode(encoding='utf-8'))#编码,输出结果为 b'I have a dream','b'代表byte二进制 6 print(name.endswith('cong'))#判断字符串结尾的字符,输出结果为布尔类型,输出结果为 True 7 print(name.expandtabs(tabsize=10))#将' '转换成10个空格 8 print(name.find('is'))#查找,字符串也可切片,#输出结果为 9 9 10 dream = '{who} have a dream that to be a {what}' 11 print(dream.format(who = 'I',what = 'CEO'))#字符串格式化,输出结果为I have a dream that to be a CEO 12 print(dream.format_map({'who':'I','what':'CEO'}))#字典,输出结果同上 13 14 print('qwer123'.isalnum())#判断字符串是否为英文字母或阿拉伯数字,输出结果 True 15 print('asdQWE3'.isalpha())#判断字符串是否全为英文字母,输出结果 False 16 print('121'.isdecimal()) #判断字符串是否全为十进制数字,输出结果 True 17 print('1231'.isdigit()) #判断字符串是否为整数 18 print('_23a'.isidentifier()) #判断字符串是否为合法的标识符 19 print('zxcv'.islower()) #判断字符串是否全为小写 20 print('UIOP'.isupper())#判断字符串是否全为大写 21 print('My Great Dream'.istitle())#判断是否只有首字母为大写 22 print(' '.isspace())#串中是空格则为真 23 print('+'.join(['1','3','5']))#输出结果为1+3+5 24 print(dream.ljust(45,'@'))#将字符串优先从左排起来,如果长度不够45,就用@补全,输出结果为{who} have a dream that to be a {what}@@@@@@@ 25 print(dream.rjust(45,'@'))#将字符串优先从右排起来,如果长度不够45,就用@补全,输出结果为@@@@@@@{who} have a dream that to be a {what} 26 print('QUHLI'.lower())#将字符串全部改为小写 27 print('sdfsdg'.upper())#将字符串全部改为大写 28 29 print(' qeqr ere '.rstrip())#去除字符串右侧的空格或换行 30 print(' qeqr ere'.lstrip())#去除字符串左侧的空格或换行 31 print(' qeqr ere'.strip())#去除字符串两侧的空格或换行 32 33 ps = str.maketrans('qwerasdf','123456@#')#字符串和密码一一对应(密码本) 34 print('we qwer ffd'.translate(ps))#加密
2.列表
(1)序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
(2)Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经
内置确定序列的长度以及确定最大和最小的元素的方法。
(3)列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型,创建一个列表,只要把
逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
1 names = ['ZhangSan','LiSi','WuDa','XiShi','HouYi'] #列表,'[]'表示
(4)列表常用操作(数量较多,直接用代码加注释表示)
<1>列表的切片
1 names = ['ZhangSan','LiSi','WuDa','XiShi','HouYi'] #列表,'[]'表示 2 print(names[0],names[-1]) #输出结果为 ZhangSan HouYi ,位置从0开始算起 3 print(names[1:4]) #输出结果为 ['LiSi', 'WuDa', 'XiShi'],切片“顾头不顾尾” 4 print(names[-3:-1]) #输出结果为 ['WuDa', 'XiShi'],末尾为-1,切片自左向右,所以“[]”内顺序必须遵循,否则无法取出 5 print(names[3:]) #输出结果为 ['XiShi', 'HouYi'],冒号后不写时,默认取到最后 6 print(names[:-3]) #输出结果为 ['ZhangSan', 'LiSi'],同理
<2>列表的增、删、改、查(内容较多)
1 names = ['ZhangSan','LiSi','WuDa','XiShi','HouYi'] #列表,'[]'表示 2 #添加,插入,删除,查找 3 names.append('YaSe') #.append()方法是添加,添加的内容位置默认是列表末尾 4 print(names) #输出结果为 ['ZhangSan', 'LiSi', 'WuDa', 'XiShi', 'HouYi', 'YaSe'] 5 6 names.insert(1,'DaJi') #.insert()方法是插入,括号内依次是插入位置和内容 7 print(names) #输出结果为 ['ZhangSan', 'DaJi', 'LiSi', 'WuDa', 'XiShi', 'HouYi', 'YaSe'] 8 9 names.remove('WuDa') #.remove()方法是删除,括号内即为要删除的内容 10 print(names) #输出结果为 ['ZhangSan', 'DaJi', 'LiSi', 'XiShi', 'HouYi', 'YaSe'] 11 del names[0] #删除的第二种方法 12 print(names) #输出结果为 ['DaJi', 'LiSi', 'XiShi', 'HouYi', 'YaSe'] 13 names.pop() #删除的第三种方法,不输入下标时默认删除最后一个 14 print(names) #输出结果为 ['DaJi', 'LiSi', 'XiShi', 'HouYi'] 15 names.pop(1) #删除下标指定位置的内容 16 print(names) #输出结果为 ['DaJi', 'XiShi', 'HouYi'] 17 print(names.pop(1)) #输出结果为 XiShi,说明.pop()方法是将此列表中删除的内容移到别处储存起来了,可以再调用 18 19 print(names.index('DaJi')) #.index()方法为查找,输出结果为 0,即位置为第一个 20 21 #替换列表中的内容 22 names[2] = 'YaSe' #将列表中下标为2的内容替换为’YaSe‘ 23 print(names) #输出结果为 ['DaJi', 'HouYi', 'YaSe']
<3>列表统计相同姓名人数--count方法
1 names = ['ZhangSan','LiSi','WuDa','XiShi','HouYi']
2 names.append('DaJi')
3 print(names)#输出结果为 ['DaJi', 'HouYi', 'DaJi']
4 print(names.count('DaJi')) #输出结果为 2,表明names列表中有2个DaJi
<4>列表反转,即头变尾,颠倒-reverse方法
1 names = ['DaJi', 'HouYi','YaSe'] 2 3 #列表反转,即头变尾,颠倒 4 names.reverse() 5 print(names)# 输出结果为 ['YaSe', 'HouYi', 'DaJi']
<5>将列表内容进行排序(按ASCII表)--sort方法
names = ['YaSe', 'HouYi', 'DaJi'] names.sort()# sort即排序的意思 print(names)#输出结果为 ['DaJi', 'HouYi', 'YaSe']
<6>列表延伸,扩展--extend方法
1 names = ['DaJi', 'HouYi', 'YaSe'] 2 name2 = ['DianWei','CaoCao'] 3 names.extend(name2) #将name2列表并入names列表中 4 print(names) ##输出结果为 ['DaJi', 'HouYi', 'YaSe', 'DianWei', 'CaoCao']
<7>列表清空
1 names = ['DaJi', 'HouYi', 'YaSe', 'DianWei', 'CaoCao'] 2 names.clear() #括号内为空 3 print(names) #输出结果为 [],即列表为空
<8>列表复制(浅copy和深copy属于个人理解,如有错漏,欢迎指正)
1 name2 = ['DianWei','CaoCao'] 2 name3 = name2.copy() #将name2复制一份给name3,还可以用name3 = list(name2)或 name3 = name2[:] 3 print(name2,name3) #输出结果为 ['DianWei', 'CaoCao'] ['DianWei', 'CaoCao'] 4 name2[0] = 'XiaoQiao' #将name2中"DianWei"改为“XiaoQiao” 5 print(name2,name3) #输出结果为 ['XiaoQiao', 'CaoCao'] ['DianWei', 'CaoCao'],name3中的“DianWei”并未改变,此为’浅copy‘ 6 name2.append(['LiuBei','ZhaoYun']) #在name2中添加一个小列表 7 name3 = name2.copy() #复制一份给name3 8 name2[0] = 'DianWei'#将name2中"XiaoQiao"改为"DianWei" 9 name2[2][1] = 'ZhuGeLiang' #将name2中的小列表中的“CaoCao”改为“ZhuGeLiang” 10 print(name2,name3) #输出结果为 ['DianWei', 'CaoCao', ['LiuBei', 'ZhuGeLiang']] ['XiaoQiao', 'CaoCao', ['LiuBei', 'ZhuGeLiang']] 11 #第一层中修改的未被copy,因为是单独克隆,修改时不相互影响;小列表中修改的则都被改变了,因为小列表为第二层,保存的只是内存地址,一改全改 12 13 import copy #引入copy模块,深copy 14 name3 = copy.deepcopy(name2)# 深copy,完全克隆,一变全变 15 print(name2,name3)#输出结果为 ['DianWei', 'CaoCao', ['LiuBei', 'ZhuGeLiang']] ['DianWei', 'CaoCao', ['LiuBei', 'ZhuGeLiang']]
<9>列表的循环打印
1 name2 = ['DianWei','CaoCao'] 2 for i in name2: #for i in range(0,10,2),输出0到10内的偶数 3 print(i) #依次打印列表的三个元素 4 name4 = ['DianWei', 'CaoCao',['LiuBei', 'ZhuGeLiang'],'GuanYu'] 5 print(name4[0:-1:2]) #输出结果为 ['DianWei', ['LiuBei', 'ZhuGeLiang']],从头到尾每两个打印一个 6 #name4[0:-1:2]等同于name4[::2] ,头和尾的下标可省
<10>列表的扩展应用-购物车
1 product_list = [('XiaoMi',1800),('HuaWei',3000),('DaJiang',5000),('LaoGanMa',10),('WeiLong',5)] 2 shopping_cart = [] 3 salary = input('Please input your salary:') 4 if salary.isdigit(): #判断输入的是否为数字 5 salary = int(salary) 6 while True: 7 for index,item in enumerate(product_list): #enumerate意为列举,枚举,此处作用是列举列表的下标 8 print(index,item) #打印下标和内容 9 user_choice = input('请输入要买的物品序号:') #用户开始输入 10 if user_choice.isdigit(): #判断用户输入的是否为数字 11 user_choice = int(user_choice) #强制类型转换 12 if user_choice < len(product_list) and user_choice >= 0: #判断输入的数字是否在列表中存在 13 product_item = product_list[user_choice] #将商品传到购买清单 14 if product_item[1] <= salary: #判断是否买得起 15 salary -= product_item[1] #计算剩余金额 16 shopping_cart.append(product_item) #将商品加入到购物车 17 print('You have gotten 33[32;1m%s 33[0m into your ShoppingCart,your salary is 33[31;1m%s 33[0m'%(product_item[0],salary))#31为红色,32为绿色 18 else: 19 print('