模块导入:
import+空格+模块文件名
通用模块一般放在所用文件目录里的venv\lib目录下,自定义模块存在venv\lib\site-package目录下
编码与解码:
编码:变量名.encode(encoding=编码方法,例如'utf-8')
解码:变量名.decode(encoding=解码方法,例如'utf-8')
列表(数组)操作:
数组定义:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#定义数组,列表 print(names)
列表切片:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) #切片 print(names[0],names[2])#切片,选择切哪几个 print(names[0:2])#切片,区间左闭右开 print(names[-1])#切片,要最后一个 print(names[-3:-1])#切片,区间左闭右开 print(names[-2:])#切片,切到最后一位 print(names[:3])#切片,从第0位开始取,可以省略0 print('---',names[0::2])#步长切片,从第0个到最后,每隔一个切一个数据
列表追加、插入:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) names.append('daji')#数组追加 print(names) names.insert(3,'sunwukong')##数组插入元素,前面为插入元素的位置
列表修改、删除:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) names[4]='daqiao'#修改数组变量 print(names) #names.remove('nvbu')#删除数组变量 del names[1]#删除数组变量=names.pop(1) names.pop()#括号内不输下标默认删除最后一个 print(names)
列表查找index,统计元素出现次数,清空数组:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) print(names.index('daqiao'))#查找变量在数组中的位置 print(names[names.index('daqiao')])#打印daqiao print(names.count('zhaoyun'),names.count('luna'))#统计变量在数组中出现的次数,并打印 #names.clear()#清空数组 #print(names)
列表index翻转,排序(按元素首字母ASCLL排序):
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) names.reverse()#翻转,数组中变量排列顺序翻转 print(names) names.sort()#排序,默认按首字母顺序排(从前到后,数字>符号>大写字母>小写字母),ASCLL码排序规则 print(names)
列表合并和删除:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['zhaoyun','nvbu','luna','diaochan','zhaoyun']#数组,列表 print(names) names2=['kai','xiaoqiao','miyue','yuji'] names.extend(names2)#合并数组 #del names#删除数组 print(names,names2)
列表复制copy:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
names=['Russia','America','Japen','Carada','England','Germany'] names2=names.copy()#此时已复制完最外一层,后续再修改母本,复制版本不变.和以下方式相等,names2=copy.copy(names),names2=names[:],names2=list(names) country=['Russia','America','Japen','Carada','England','Germany',['Italy','Spain','Portugal']] country2=country.copy()#当copy母版里有数组时,copy的是数组地址,当内部数组里面改变时,复制版也发生变化
列表deepcopy:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import copy names=['Russia','America','Japen','Carada','England','Germany'] names2=copy.deepcopy(names)#此时已复制完,后续再修改母本,复制版本不变
列表赋值特性:
列表赋值特性与变量不同。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
newarray=[1,2,3,4]#数组变量赋值与字符串和数字不同 newarray2=newarray newarray[1]=2233#此时newarrary2=[1,2233,3,4]=newarrary print(newarray,newarray2)
列表循环:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
newarray=[1,24,5,3] for i in newarray: print(i)#可以打印数组newarray中的每一个元素
元组:
元组与数组的区别在于,元组无法修改和增减。
表现形式为numberlist=(1,2,3,4)。
字符操作:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# Author: wulihui # -*- coding:utf-8 -*- #字符串操作 name='wu lihui' #name='wu \tlihui' print(name.capitalize())#首字母大写 print(name.count('li'))#寻找变量中‘li'的个数 print(name.center(100,'-'))#打印100个字符,name放中间,不够用‘-’补上 print(name.endswith('hui'))#判断是否以‘hui’结尾 print(name.expandtabs(100))#将字符串中的每个\t扩大成100个空格长度 print(name.find('i'))#查找字符串中从左往右第一个‘i'中的位置,空格也占一个位置,从左往右从0开始数 print(name.rfind('i'))#查找字符串中从右往左第一个‘i'中的位置,空格也占一个位置,从左往右从0开始数 print(name[-3:])#字符串切片 age='I am {ages} years old' print(age.format(ages=23))#字符串拼接 print(age.format_map({'ages':23}))#字典用法 print(name.index('li'))#序号 print('WUlihui123'.isalnum())#判断是否是阿拉伯数字和英文字母,不能有小数点 print('WUlihui'.isalpha())#判断是否是英文字母,不能有小数点 print('12'.isdecimal())#判断是否是十进制数字,不能有小数点,不能带符号,不能是负数 print('123'.isdigit())#判断是否是十进制数字,不能有小数点,不能是负数 print('if'.isidentifier())#判断是否为合法标识符,即合法变量名和if等特殊字符#毁三观中文也可以当变量名 print('abw'.islower())#判断是否有大写字母存在,没有为True print('2'.isnumeric())#判断是否为数字,不能有小数点,不能是负数 print(' '.isspace())#判断是否为空格 print("我 Am A Teacher".istitle())#判断是否为标题,判断是否每个单词首字母大写,可以有中文 print("我 Am A Teacher".isprintable())#判断是否可以打印,tty file,drive file 可能用得到 print('ABS1233.5我'.isupper())#判断是否有小写字母存在,没有为True print(','.join(['1','2','3','4']))#将列表转换成字符串 print(age.ljust(100,'*'))#保证变量长度为100,不够用‘*’在后面补齐,L表示left,文本留在左边 print(age.rjust(100,'*'))#保证变量长度为100,不够用‘*’在前面补齐,r表示right,文本留在右边 print('WU LIHUI'.lower())#把大写字母变小写 print(age.upper())#把小写字母变大写 print('\n at will'.lstrip())#删除字符最左边的空格和换行 print('at will \n'.rstrip())#删除字符最右边的空格和换行 print('\n at will \n'.strip())#删除字符两边的空格和换行 cryptogram=str.maketrans('abcdefghi','123456789')#制作密码,创建映射转换表 print('wu lihui'.translate(cryptogram))#使用密码翻译,使用映射转换 print('wu lihui'.replace('i','0',1))#替换,括号内的3个参数分别为原先存在的字符串、替换后的字符串、从左往右最大替换次数 print('1-2-3-45-6'.split('-'))#将字符串转换成列表,括号内填写分隔标识,且字符串中分隔标识会消失 print('acbcjckiuce'.split('c'))#将字符串转换成列表,括号内填写分隔标识,且字符串中分隔标识会消失 print('acbc\njck\niuce'.splitlines())#等同于print('acbc\njck\niue'.split('\n')) print('acbc\njck\niuce'.split('\n'))#同上 print(name.startswith('w'))#判断是否是以’w‘开头 print('Wu Lihui'.swapcase())#将大写字母转换为对应的小写字母,将小写字母转化为对应的大写字母 print('wu lihui'.title())#将文本转化为title,每个单词首字母大写 print('123'.zfill(50))#在左边用0将字符串填充到“50”的长度 print('--------')
字典操作:字典为key-value格式,字典是无序的,没有下标。
字典操作:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
honour={'shooter':"luban", 'support':"zhangfei", 'jungle':"marco polo ",}#最后有无逗号,没区别 print(honour)#每操作一次,打印出来的顺序可能不同 print(honour['jungle'])#查找某个变量 honour['shooter']='houyi'#修改value值 honour['mid']='diaocan'#字典中添加一组key-value,存在则修改,不存在添加 print(honour) #del del honour['support']#通用删除法 honour.pop('mid')#删除 print(honour) print('------------------------------------------------------------------------------------') honour2={'shooter':"luban", 'support':"zhangfei", 'jungle':"marco polo ",}#最后有无逗号,没区别 #print(honour2['mid'])查找不存在的会报错 print(honour2.get('support'))#查找不存在的不会报错 print('shooter' in honour2)#判断key’shooter’在不在honour2里 print(honour2.values())#打印dict_values,生成列表 print(honour2.keys())#打印dict_keys,生成列表 honour2.setdefault('mid',"daqiao")#查找是否存在key‘mid',存在则不进行操作,不存在新增’mid':“daqiao” print(honour2) honour2.update(honour)#将字典’honour‘复制到’honour2‘里,key相同的覆盖掉 print(honour2) print(honour) print(honour.items())#将字典转成列表 new_dict=dict.fromkeys(['6','7','8'],['random'])#生成新的字典 print(new_dict) print('-----------------------------------')
字典循环:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#字典循环打印 for i in honour2: # print(i)#循环输出key # print(honour2[i])#循环输出value print(i,honour2[i]) for k,v in honour2.items(): print(k,v)#不建议使用这种方法,需要先将字典转成列表 #判断变量是否为字典中的key fenlu='mid'#判断变量是否为字典中的key if fenlu in honour2:#判断变量是否为字典中的key print('Ture')#判断变量是否为字典中的key
字典嵌套:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#字典嵌套 China={'jiangxi':{"ji'an":['jishui','yongfeng','xiajiang'], 'nanchang':['anyi','xinjianqu','xihuqu','donghuqu','nanchangxian']}, 'zhejiang':{'hangzhou':['xihuqu','shangchengqu','xiachengqu','bingjiangqu','xiaoshangqu'], 'jiaxing':['xiuzhouqu','tongxiangshi','jiashanxian']}, 'fujian':{'xiamenshi':['simingqu','huliqu','haichangqu','jimeiqu'], 'fuzhoushi':['gulouqu','maweiqu','jin"anqu','cangshanqu']} } print(China) print(China.get('jiangxi'))#只能查找一级目录 print(China['jiangxi']["ji'an"][1])#查找内部目录 China['jiangxi']["ji'an"][1]='dayongfeng'#更改value print(China) China['jiangxi']={"ji'an":['jishui','yongfeng','xiajiang'] }#可以这么修改 print(China)