1、列表
列表的增删改查操作
1 # 列表: 2 stus = ["王一","赵二","张三"] #定义一个列表 3 print(stus) 4 5 # 增加 6 stus.append("李四") #在list的末尾增加一个元素 7 stus.insert(0,"周五") #在指定的位置插入元素,如果指定下标不存在,会把元素插入到最后 8 print(stus) 9 10 # 查 11 print('最前面一个元素',stus[0]) 12 print('最后一个元素',stus[-1]) 13 14 # 改 15 stus[-1] = "马六" #修改元素内容 16 print(stus) 17 18 # 删除 19 stus.pop(3)#删除指定下标的元素 20 stus.pop()#默认删除最后一个元素 21 del stus[2] #删除指定位置的元素 22 stus.remove("周五") #删除指定的元素 23 #1、list里面有多个一样的元素,只会删掉第一个 24 # 2、不存在的元素,会报错 25 26 #其他方法 27 count = stus.count("周五") #某个元素在list里面出现的次数 28 stus.clear() #清空list 29 new_stus = stus.copy() #复制list 30 print(new_stus) 31 32 stus.reverse() #反转list 33 print(stus) 34 stus.sort() #list排序升序 35 stus.sort(reverse=True) #降序 36 print(stus) 37 38 nums = ["aa","bb","cc","dd"] 39 stus.extend(nums) #加入一个list 40 print(stus) 41 reut = stus.index("aa") #找某个元素的下标 42 print("aa的下标",reut) 43 44 if 'aa' in stus: #判断元素在list里面 45 print(stus) 46 if 'aa' not in stus: #判断元素不在list里面 47 print(stus)
li = ['a','v','c']
for index,i in enumerate(li,1):#index是下标,后面的参数是下标从几开始
print(index,i)
2、列表小练习
1 # 列表小练习 2 #1、输入账号密码,最多输入三次 3 #2、校验输入是否为空 4 #3、校验用户是否存在 list.count() 5 #4、校验密码是否正确 从username里面找到user的下标,到passwd中取对应的密码,list.index 6 #5、登陆成功打印 7 8 import datetime 9 today = datetime.datetime.today() 10 11 usernames = ["yanyan","mimi","guoguo","xiaomao"] 12 passwds = ["123456","abc1230","654321","789012"] 13 14 for i in range(3): 15 username = input("usernaem: ").strip() 16 passwd = input("password: ").strip() 17 if username == '' or passwd == '': 18 print("账号密码不能为空") 19 elif username not in usernames: 20 print("用户名不存在") 21 else: 22 user_index = usernames.index(username) 23 pwd = passwds[user_index] 24 if passwd == pwd: 25 print("欢迎【%s】登陆,今天的日期是%s."%(username,today)) 26 break 27 else: 28 print("密码错误") 29 else: 30 print("错误次数用完")
3、多维数组
1 #用列表定义一个二维数组 2 stus = [ 3 ['mimi1','123','1111','sewweew',20], 4 ['mimi2','123','1111','sewweew',200], 5 ['mimi3','123','1111','sewweew',2000], 6 ['mimi4','123','1111','sewweew',2000], 7 ] 8 print(stus[3][4])#打印多维数组的元素
#创建一个二维数组的方法是: m = [[0]*5 for i in range(3)] #创建一个3行5列的二维数组
4、字典
1 #用户名 密码 电话 住址 2 #用列表定义一个二维数组 3 stus = [ 4 ['mimi1','123','1111','sewweew',20], 5 ['mimi2','123','1111','sewweew',200], 6 ['mimi3','123','1111','sewweew',2000], 7 ['mimi4','123','1111','sewweew',2000], 8 ] 9 print(stus[3][4])#打印多维数组的元素 10 11 #创建一个字典,字典都是key--value的键值对 12 stu_info = { 13 'username':'mimi', 14 'password':'123456', 15 'money':20, 16 'addr':'cd' 17 } 18 19 d1 = {} #创建空字典 20 d2 = dict() #创建空字典 21 22 #增加字典 23 d1['name'] = 'guoguo' 24 d1['age'] = 21 25 d1.setdefault('class','szz') #增加元素,前面是key,后面value 26 d1.setdefault('age',38) #使用setdefault方法,存在的key,value不会被改 27 d1['name'] = 'guoguo' #改变value的值 28 print(d1) 29 30 #修改 31 d1['name'] = 'yanyan' 32 33 #取值 34 print(d1['name']) #取key为name的值 35 print(d1['cc']) #指定不存在的key,报错 36 print(d1.get('namess')) #指定不存在的key,返回None 37 print(d1.get('money',0)) #如果key不存在,et方法可以指定值 38 print(d1) 39 40 print(d1.keys()) 41 print(d1.values()) 42 43 #删除 44 d1.pop('name') 45 del d1['name'] 46 d1.popitem() #随机删除一个key 47 d1.clear()#清空 48 d2 = {'abc':1234} 49 d1.update(d2)#把d2加到d1里 50 print(d1) 51 52 users = { 53 "yanyan":'13475656', 54 "yanyan2":'1345ytty6', 55 "yanyan3":'134tyyt56', 56 "yanyan4":'134jgk56', 57 "yanyan5":'1345wegw6', 58 "yanyan6":'1345wegq3we6', 59 "yanyan7":'134ewgwrg56' 60 } 61 62 #、把字典里面每个用户的密码,前面都加上 username_ + 63 64 #1、循环这个字典 65 #2、把value修改成value = key_+value 66 #这种方法也可以取到值,不过比较麻烦 67 for k in users:#直接循环一个字典的话,循环的是key 68 value = users[k] #通过key取到value 69 users[k] = '%s_%s'%(k,value) 70 print(users) 71 72 #使用.items方法可以直接取到key、value两个值 73 for k,v in users.items(): 74 print('%s===>%s'%(k,v)) 75 users[k] = '%s_%s' % (k, v)
5、字典练习
1 users = [ 2 { 3 "id": 2, 4 "name": "矿泉水", 5 "sex": "未知", 6 "age": 38, 7 "addr": "天通苑123", 8 "grade": "双子座123", 9 "phone": "12123654311", 10 "gold": 34000 11 }, 12 { 13 "id": 5668, 14 "name": "矿泉水", 15 "sex": "未知", 16 "age": 38, 17 "addr": "天通苑", 18 "grade": "双子座", 19 "phone": "12123654564", 20 "gold": 3202 21 }, 22 { 23 "id": 5675, 24 "name": "矿泉水", 25 "sex": "未知", 26 "age": 38, 27 "addr": "天通苑", 28 "grade": "双子座", 29 "phone": "12188888888", 30 "gold": 800 31 }, 32 { 33 "id": 5714, 34 "name": "矿泉水", 35 "sex": "未知", 36 "age": 38, 37 "addr": "天通苑", 38 "grade": "双子座", 39 "phone": "12123654529", 40 "gold": 100 41 } 42 ] 43 44 # 统计一下学生总共有多少金币 45 # 1、循环users这个list 46 # 2、从每个user的字典里面取到gold 47 # 3、把每次的gold值相加 48 #找出金币小于100的学生姓名 49 # 1、循环users这个list 50 # 2、从每个user的字典里面取到gold 51 # 3、判断金币数,小于等于100的打印出来 52 #金币大于500的学生扣除300金币,小于等于100的加上200金币 53 # 1、循环users这个list 54 # 2、从每个user的字典里面取到gold 55 # 3、小于100的加200,大于500的减300 56 57 all_gold= 0 58 for user in users: 59 gold = user.get('gold') 60 # all_gold += gold 61 username = user.get('name') 62 if gold <= 100: 63 print("%s 的金币小于等于100."%username) 64 user['gold'] = gold + 200 65 if gold > 500: 66 user['gold'] = gold - 300 67 print(users)
6、字典嵌套的练习
1 stus = { 2 "胖妞": 3 { 4 "house": ['三环', "四环", "七环"], 5 "car": { 6 "日本": ["雷克萨斯", "英菲尼迪"], 7 "中国": ['五菱宏光', '红旗', '比亚迪', "宝骏"], 8 "美国": ["福特", "凯迪拉克"] 9 }, 10 "化妆品": { 11 "SK-2": 1000, 12 "YSL": 8000 13 } 14 }, 15 "陆明":{ 16 "money":[1000,5000,8000,800000], 17 "xifu":{ 18 "越南":2, 19 "伊拉克":10, 20 "韩国":2, 21 "泰国":3 22 } 23 24 } 25 } 26 house = stus['胖妞']['house']#返回house的值 27 print(house) 28 house.append('六环')#在house列表中增加一个元素 29 car = stus['胖妞']['car']#返回car的值 30 car['德国']=['奥迪','奔驰']#给字典car新增一个键值对 31 #统计一共有多少辆车 32 #取出字典car里面每一个key的值,使用len方法计算列表长度 33 car_count = 0 34 for c in car.values(): 35 car_count += len(c) 36 print(car_count) 37 # 38 car_china = stus['胖妞']['car']['中国']#返回字典car里面key为中国的列表 39 car_china.remove("比亚迪")#删除列表里面的元素 40 car_china.append("保时捷")#增加列表元素 41 print(car)
7、字符串常用方法
1 #字符串不会被修改,操作字符串返回新的字符串 2 s = " abccccccccc " 3 print(s) 4 s = s.strip() #strip默认去掉首尾空格和换行符 5 print(s.lstrip())#去掉左边的空格 6 print(s.rstrip())#去掉右边的空格 7 print(s) 8 print(s.count('c'))#统计字符串出现的次数 9 print(s.index('d'))#下标,不存在会报错 10 print(s.find('d'))#下标,不存在返回-1 11 12 print(s.capitalize())#首字母大写 13 print(s.upper())#把字符串全部变成大写 14 print("s.lower"+s.lower())#把字符串全部变成小写 15 print(s.replace('e','d'))#替换字符串,前面参数是被替换的,后面参数是替换值 16 print(s.replace(" ",""))#去掉空格,把空格替换成空 17 print('abc.jpg'.endswith('.jpg'))#判断字符串以什么结尾,返回值True,False 18 print('abc'.startswith('a'))#判断字符串以什么开头,返回值True,False 19 20 print("欢迎登陆".center(50,"*"))#把字符串放中间,长度为50,不足的用“*”补足 21 22 s.isspace()#判断是否为空格 23 s.islower()#判断是否小写 24 s.isupper()#判断是否大写 25 26 print('123abc%&^&'.isalnum())#字符串里全部为字母或者数字,有就返回False 27 print('123'.isalpha())#字符串里全部为字母返回true 28 print('12.41'.isdigit()) #判断是否为整数 29 print('11'.zfill(5))#字符串长度不够自动补0 30 username = 'abc' 31 today = '2019-03-30' 32 s2 = '欢迎{}登陆,今天的日期是{}.' 33 print(s2.format(username,today)) 34 35 s3 = "insert into user value ({username},{password},{addr},{phone}) " 36 new_s3 = s3.format(password = '123456',username = 'yanyan',addr = 'cd',phone = '1234567') 37 print(new_s3) 38 s.format() 39 s.format_map()#传入的参数是字典 40 41 #字符串分割 42 users = 'abc,abc,xiaohei,xiaobai,xiaoxiaobai,xiaobaibai' 43 'szz-abc',123456 44 45 #分割字符串 46 result = users.split(',') 47 # 不填参数,默认按空格分割 48 #1、按照某个字符串分割 49 #2、分割后的元素放到一个list里面 50 #3、如果指定的字符串不存在,就把整个字符串放到list里面 51 # print(result) 52 53 names = ['abc', 'abc', 'xiaohei', 'xiaobai', 'xiaoxiaobai', 'xiaobaibai'] 54 print(','.join(names))#把list变成字符串,以指定字符连接
8、string和random库
1 import random 2 import string 3 4 print(string.ascii_letters)#所有小写字母大写字母 5 print(string.ascii_lowercase)#所有的小写字母 6 print(string.ascii_uppercase)#所有的大写字母 7 print(string.digits)#所有数字 8 9 num = [1,2,3,4,5,6,7,8,9,0] 10 result = random.sample(num,4)#指定一个list,随机取四个 11 print(result)
9、文件操作
1 li = ['abc', 'xiaozi', 'xiaobai', 'xiaohei', 'xiaoming', 'xiaolan'] 2 3 #读文件 4 f = open('names.txt','r',encoding='utf-8')#打开一个文件,可以写绝对路径 5 res = f.read()#使用read方法读取文件全部内容 6 print(res) 7 res2 = f.read()#第二次再读取时光标位置指向末尾,所以读不到数据 8 print('res2...',res2) 9 f.close()#文件操作完毕需要关闭文件 10 11 #写文件 12 f = open('names.txt','w',encoding='utf-8') 13 f.write(','.join(li))#只能是写字符串 14 f.write(str(li)) 15 f.write('abc,123 ')# 是换行符 16 f.write('bcd,123 ') 17 f.write('bcd3,123 ') 18 f.close()