不可变类型:整型 字符串整型 字符串
可变类型:列表字典
一、列表常用命令
#增删改查 #查 切片 []
# print(a[1:])#取到最后 # print(a[1:-1])#取到倒数第二值 # print(a[1:-1:1])#从左到右一个一个去取 # print(a[1::2])#从左到右隔一个去取 # print(a[3::-1]) # b=a[3::-1] # print(b)#['sanpang', 'xiaohu', 'jinxin', 'wuchao'] # print(a[-2::-1]) # print(a[1:-1:-2])
#添加 append insert
# a.append('xuepeng') #默认插到最后一个位置 # print(a) # a.insert(1,'xuepeng') #将数据插入到任意一个位置 # print(a)
#修改 # # a[1]='haidilao' # print(a) # a[1:3]=['a','b'] # print(a)
#删除 remove pop del
# a.remove(a[0]) # print(a) # b=a.pop(1) # print(a) # print(b) # # del a[0] # print(a) # del a # print(a) # a.remove(['wuchao','jinxin']) # print(a)
#count:计算某元素出现次数 # t=['to', 'be', 'or', 'not', 'to', 'be'].count('to') # print(t)
#extend # a = [1, 2, 3] # b = [4, 5, 6] # a.extend(b) # print(a) # print(b)
# index # 根据内容找位置
# a = ['wuchao', 'jinxin', 'xiaohu','ligang', 'sanpang', 'ligang', ['wuchao', 'jinxin']] # # # first_lg_index = a.index("ligang") # print("first_lg_index",first_lg_index) # little_list = a[first_lg_index+1:] # # second_lg_index = little_list.index("ligang") # print("second_lg_index",second_lg_index) # # second_lg_index_in_big_list = first_lg_index + second_lg_index +1 # # print("second_lg_index_in_big_list",second_lg_index_in_big_list) # print("second lg:",a[second_lg_index_in_big_list])
# reverse 反转列表内容
# a = ['wuchao', 'jinxin', 'xiaohu','ligang', 'sanpang', 'ligang'] # a.reverse() # print(a)
#sort 列表排序
# x = [4, 6, 2, 1, 7, 9] # x.sort(reverse=True) # print(x)#[1, 2, 4, 6, 7, 9]
a = ['wuchao', 'jinxin', 'Xiaohu','Ligang', 'sanpang', 'ligang'] # a.sort() # print(a)
print(a.count("haidilao ge")) print(a.pop()) print(a)
二、元组常用命令与列表类似区别是列表是可变类型 元组是不可变类型
#dic={1:'alex','age':35,'hobby':{'girl_name':'铁锤','age':45},'is_handsome':True} # dic={'age':'alex','age':35,'hobby':{'girl_name':'铁锤','age':45},'is_handsome':True}
# print(dic)
#字典两大特点:无序,键唯一
三、字典常用命令
#字典的创建
# a=list() # print(a)
# dic={'name':'alex'}
# dic1={} # dic2=dict((('name','alex'),)) # print(dic2)
# dic3=dict([['name','alex'],]) # print(dic3)
#字典修改
# dic1={'name':'alex'} # dic1['age']=18 # print(dic1)
#键存在,不改动,返回字典中相应的键对应的值 # ret=dic1.setdefault('age',34) # print(ret) # # #键不存在,在字典中中增加新的键值对,并返回相应的值 # ret2=dic1.setdefault('hobby','girl') # print(dic1) # print(ret2)
#字典查 通过键去查找
# dic3={'age': 18, 'name': 'alex', 'hobby': 'girl'} # # print(dic3['name']) # # print(list(dic3.keys())) # print(list(dic3.values())) # print(list(dic3.items()))
# li=[1,2,34,4] # li[2]=5 # dic3={'age': 18, 'name': 'alex', 'hobby': 'girl'} # dic3['age']=55 # print(dic3)
# dic4={'age': 18, 'name': 'alex', 'hobby': 'girl'} # # dic5={'1':'111','2':'222'} # dic5={'1':'111','name':'222'} # # dic4.update(dic5) # print(dic4) # print(dic5)
#字典删除
# dic5 = {'name': 'alex', 'age': 18, 'class': 1}
# dic5.clear() # 清空字典 # print(dic5) # del dic5['name'] #删除字典中指定键值对 # print(dic5)
# print(dic5.pop('age')) #删除字典中指定键值对,并返回该键值对的值 # ret=dic5.pop('age') # print(ret) # print(dic5)
# a = dic5.popitem() #随机删除某组键值对,并以元组方式返回值 # print(a, dic5)
# del dic5 #删除整个字典 # print(dic5)
#5 其他操作以及涉及到的方法
# dic6=dict.fromkeys(['host1','host2','host3'],'test') # print(dic6)#{'host3': 'test', 'host1': 'test', 'host2': 'test'} # # dic6['host2']='abc' # print(dic6)
# dic6=dict.fromkeys(['host1','host2','host3'],['test1','tets2']) # print(dic6)#{'host2': ['test1', 'tets2'], 'host3': ['test1', 'tets2'], 'host1': ['test1', 'tets2']} # # dic6['host2'][1]='test3' # print(dic6)#{'host3': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host1': ['test1', 'test3']}
# av_catalog = { # "欧美":{ #"": ["很多免费的,世界最大的","质量一般"], #"": ["很多免费的,也很大","质量比yourporn高点"], #"": ["多是自拍,高质量图片很多","资源不多,更新慢"], #"x-":["质量很高,真的很高","全部收费,屌比请绕过"] # }, # "日韩":{ #"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] # }, # "大陆":{ #"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] # } # }
# av_catalog['欧美'][""][1]='高清午马'
dic={5:'555',2:'666',4:'444'} # dic.has_keys(5) # print(5 in dic) # print(sorted(dic.items())) # dic5={'name': 'alex', 'age': 18}
# for i in dic5: # print(i,dic5[i])+
# for i,v in dic5.items(): # print(i,v)
四、String 操作
# a="Let's go " # print(a) # 1 * 重复输出字符串 # print('hello'*20)
# 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表 # print('helloworld'[2:])
#关键字 in # print(123 in [23,45,123]) # print('e2l' in 'hello')
# 4 % 格式字符串 # print('alex is a good teacher') # print('%s is a good teacher'%'alex')
#5 # a='123' # b='abc' # d='44' # # # c=a+b # # # print(c) # # # c= ''.join([a,b,d]) # print(c)
五、String的内置方法
# st='hello kitty {name} is {age}' # # print(st.count('l')) # 统计元素个数 # print(st.capitalize()) # 首字母大写 # print(st.center(50,'#')) # 居中 # print(st.endswith('tty3')) # 判断是否以某个内容结尾 # print(st.startswith('he')) # 判断是否以某个内容开头 # print(st.expandtabs(tabsize=20)) # print(st.find('t')) # 查找到第一个元素,并将索引值返回 # print(st.format(name='alex',age=37)) # 格式化输出的另一种方式 待定:?:{} # print(st.format_map({'name':'alex','age':22})) # print(st.index('t')) # print('asd'.isalnum()) # print('12632178'.isdecimal()) # print('1269999.uuuu'.isnumeric()) # print('abc'.isidentifier()) # print('Abc'.islower()) # print('ABC'.isupper()) # print(' e'.isspace()) # print('My title'.istitle()) # print('My tLtle'.lower()) # print('My tLtle'.upper()) # print('My tLtle'.swapcase()) # print('My tLtle'.ljust(50,'*')) # print('My tLtle'.rjust(50,'*')) # print('\tMy tLtle\n'.strip()) # print('\tMy tLtle\n'.lstrip()) # print('\tMy tLtle\n'.rstrip()) # print('ok') # print('My title title'.replace('itle','lesson',1)) # print('My title title'.rfind('t')) # print('My title title'.split('i',1)) # print('My title title'.title())
#摘一些重要的字符串方法
#1 print(st.count('l')) # print(st.center(50,'#')) # 居中 # print(st.startswith('he')) # 判断是否以某个内容开头 # print(st.find('t')) # print(st.format(name='alex',age=37)) # 格式化输出的另一种方式 待定:?:{} # print('My tLtle'.lower()) # print('My tLtle'.upper()) # print('\tMy tLtle\n'.strip()) # print('My title title'.replace('itle','lesson',1)) # print('My title title'.split('i',1))
集合
作用对元素去重以及关系测试
1 in ,not in
2 集合等价与不等价(==,!=)
3 子集、超集
s=set('skywqq')
s1=set('sky')
print('s' in s)
print(s1<s)
s.add('op') 添加一个元素op
s.update('op') 添加两个元素 o p
s.remove('i') 删除元素 i
del 删除整个集合
a=set([1,2,3,4,5])b=set([4,5,6,7,8])#交集 intersection和 &print(a.intersection(b)) #{4, 5}print(a & b)#{4, 5}#并集 union和 |print(a.union(b)) #{1, 2, 3, 4, 5, 6, 7, 8} print(a | b)#{1, 2, 3, 4, 5, 6, 7, 8}#差集 diffrent和-print(a.difference(b)) #a有的b没有 {1, 2, 3}print(a-b)#{1, 2, 3}print(b.difference(a)) #b有的a没有 {8, 6, 7}print(b-a) #{8, 6, 7}#对称差集 反向交集和^print(a.symmetric_difference(b)) #{1, 2, 3, 6, 7, 8}print(a^b) #{1, 2, 3, 6, 7, 8}#父集print(a.issuperset(b)) #False#子集 print(a.issubset(b)) #False
六、字符串占位符:
%s s=string 字符串
%d d=digit 整数
%f f=float 浮点数
1、字符串格式化输出
# _author:"Sky"# date:/8/1name=input("name:")age=int(input("age:"))job=input("job:")salary=input("salary:")if salary.isdigit(): #判断是不是整数salary=int(salary)else:exit("must input digit")msg='''.........info of %s.........Name:%sAge:%dJob:%sSalary:%fyou will be retired in %s years............end................'''%(name,name,age,job,salary,60-age)print(msg)
七、python 实现简单购物车
八、python实现三级菜单
region={'河南省':{"周口市":{"扶沟县":["江村镇","包屯镇"],"商水县":["黄寨镇","练集镇"],"郸城县":["吴台镇","南丰镇"],"商丘县":["城关镇"]},"开封市":["兰考县","通许县","尉氏县"],"郑州市":["新政","登封","巩义"]},'福建省':{"三明市":["清流县","大田县","建宁县"],"厦门市":["思明","湖里","集美"]},'广东省':{"广州市":["天河","黄埔","白云"],"佛山市":["三水","南海","顺德"]}}
九、python编码 解码
python2里默认是ascii码,转换如下:
decode是解码 encode是编码
python3里默认是unicode,,python3得encode是编码得同时转为bytes类型。。decode是在解码得同时同时将bytes转为字符串。
十、深浅拷贝
# _author:"Sky"# date:/8/17import copyimport shallow_deep_copy#浅拷贝a=["sky",2,3,[100,800]]shallow_copy=a.copy()shallow_copy[0]="wqq"shallow_copy[1]=222shallow_copy[3][1]-=30print(a)print(shallow_copy)#深拷贝dep_copy=copy.deepcopy(a)dep_copy[0]="cjc"dep_copy[1]=888dep_copy[3][1] -=10print(a)print(dep_copy)