作业: 1、写一个登陆的小程序 username = tanailing passwd = 123456 1、输入账号密码,输入正确就登陆成功, username = input('xx') password = input() 提示欢迎xxxx登陆,今天的日期是多少 2、最多输入错误3次 循环 for while 循环3次 账号/密码错误,请重新登陆 if 条件判断的 1、账号密码正确 2、输入为空、3、账号密码不正确 3、如果失败测试超过3次,提示,失败次数过多 else 4、要校验输入是否为空,如果输入为空,你要提示账号./密码不能为空 什么都不输入和输入一个空格多个空格都算空。 输入为空也算操作错误一次 import datetime for i in range(3): username = input('请输入你的用户名:').strip() password = input('请输入你的密码:').strip() if username=='aaronwang' and password == '123456': print('欢迎%s登陆,今天的日期是%s'%(username,datetime.datetime.today())) break elif username=='' or password =='': print('账号和密码都不能为空!') else: print('账号/密码错误') else: print('错误次数过多')
import datetime count = 0 while count<3: count += 1 username = input('请输入你的用户名:').strip() password = input('请输入你的密码:').strip() if username=='aaronwang' and password == '123456': print('欢迎%s登陆,今天的日期是%s'%(username,datetime.datetime.today())) break elif username=='' or password =='': print('账号和密码都不能为空!') else: print('账号/密码错误') else: print('错误次数过多')
List,也叫列表,数组,array
stu_name = ['小龙','小帆','小心',1,1.5] #下标、索引、角标 #计算机里面起始都是从0开始的 print(stu_name)
#增 stu_name.append('小月')#在list的末尾添加一个元素 stu_name.insert(0,'小军')#指定位置添加元素
#改 print('修改之前的',stu_name) stu_name[5]='小顶' print('修改之后的',stu_name)
#删 stu_name.append('小军') print(stu_name) stu_name.remove('小军')# print(stu_name) stu_name.pop()#删除最后一个元素 stu_name.pop(4)#删除指定下标的元素 stu_name.remove('小军')#删除指定的元素, #如果有一样的元素,只会删除第一个 stu_name.pop(18)#删除指定下标的元素 print(stu_name) del stu_name[-1] print(stu_name)
#查 my_list = ['小黑','小白',1,1,2,1.5] print(my_list[-1]) print(my_list[0]) print(my_list.count(5)) #查询某个元素在list里面出现的次数 print('index方法:',my_list.index(1))#查找元素的下标,元素不存在的话,会报错 print('reverse:',my_list.reverse())#reverse是反转list print(my_list) my_list.clear()#清空整个list print(my_list) nums =[9.23,9,3,6,1,0] nums.sort(reverse=True)#排序,如果指定了reverse=True,那么就是降序,使用sort排序时,LIST中元素必须是同类型 # nums.extend(my_list)#把一个list里面的元素加入进去 print(nums) new_list = nums + my_list + stu_name print(new_list) print(new_list * 3) #复制几个
List练习
users = ['haha','wrp'] #校验手机号是否存在的 for i in range(5): username = input('请输入用户名:') #如果用户不存在的话,就说明可以注册, # if users.count(username)>0: if username not in users: #in就是判断在不在里面 print('用户未注册,可以注册') users.append(username) else: print('用户已注册')
passwords=['123456','123123','7891234','password'] print(len(passwords)) #取长度,也就是list里面元素的个数 #循环这个list count = 0 #最原始list取值方式,是通过每次计算下标来获取元素的 while count<len(passwords): s = passwords[count] print('每次循环的时候',s) count+=1
passwords=['123456','123123','7891234','password'] index = 0 for p in passwords:#for循环直接循环一个list,那么循环的时候就是每次取它的值 passwords[index] = 'abc_'+p index+=1 print(passwords)
passwords=['123456','123123','7891234','password'] for index,p in enumerate(passwords):#使用枚举函数,它会帮你计算下标和元素 passwords[index] = 'abc_' + p print(passwords)
切片
#就是list取值的一种方式 l = list(range(1,11)) l = ['a','b','c','d','e','j','k','l','m','n','o'] # 0 1 2 3 4 5 6 7 8 9 10 print(l[2:8])#顾头不顾尾 print(l[:5])#如果最前面没写的话,代表从0开始取的 print(l[4:])#如果冒号后面的没写的话,代表去到最后 print(l[:])#如果冒号后面的没写的话,代表去到最后 print(l[::3])#步长,也就是代表隔几个取一次, nums = list(range(1,101)) print(nums[1::2]) #取偶数, print(nums[::2]) #取奇数 #1 2 3 4 5 6 ....10 print(nums) print(nums[::-1]) #如果最后面的步长是正数的话, 那就从左到右开始取值 #如果后面的步长是负数的话,那么久从右往左开始取值
#切片同样适用于字符串。 words='中秋节要上课' # print(words[::-1]) for index,w in enumerate(words): print('每次打印的',index,w)
s='上海自来水来自海上' # 1232321 # 1111 #回文算法,反过来倒去过都一样 #5678 8765 # for i in range(10): s = input('请输入一个字符串:') if len(s)<2: print('字符串长度必须大于1') elif s==s[::-1]: print('是回文') else: print('不是回文')
数组
nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,5,6]] #二维数组 print(nums1[1]) #2 print(nums2[3][2]) #6 nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组 print(nums3[4][5][2]) #二 print(nums3[5][1]) #五 nums4 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] print(nums4[4][5][3][1]) #2
元组
#元组是一个不可变列表,元组不能修改 mysql = ('118.24.3.40',3306,'root','123456') print(mysql[:1]) for m in mysql: print(m) print(mysql.count(3306)) #统计个数 print(mysql.index('root')) #所在元组中下标 l = [1] t = ('abc',) print(type(l)) print(type(t))
字符串常用方法
password='jpg 12345456789 .jpg ABCDE' #print(password) new_password = password.strip('jpg') #默认去掉字符串两边的空格和换行符 print(password.lstrip()) #去掉字符串左边空格 print(password.rstrip()) #去掉字符串右边空格 print(password.upper()) #转成大写的 print(password.lower()) #转成小写的 print(password.capitalize()) #转成小写的 print(password.count('.jpg')) #统计次数 print(password.replace('jpg','hello')) #字符串替换
filename = 'a.mp4' age = 18 print(filename.endswith('.mp4')) #判断是否以xx结尾 print(filename.startswith('186')) #判断是否以开头 print('{name},{age}'.format(name='hhh',age=age))
names = '小王 小李 小张 李丽' print(names.split()) #将字符串分割成list,以split为分割条件 if filename.endswith('.mp3'): pass else: print('')
字典
# 小军 男 185 29 xxxx 1111 sss@qq.com 2387121 # 海龙 男 185 29 xxxx 1111 sss@qq.com 2387121 # 小帆 男 185 29 xxxx 1111 sss@qq.com 2387121 # 杨杨 男 185 29 xxxx 1111 sss@qq.com 2387121 all_sty = [ ['xioajun','xxx','x'],['xx'] ] xiaojun = ['xioajun','xxx','x'] hailong = ['xxx'] # k-v 形式 #字典也可以循环
#优点,速度快,好取值 hailong = { 'name':'hailong', 'sex':'男', 'shengao':'185', 'age':18, 'email':'acb@qq.com', 'addr':'火星', 'id':2 } for i in hailong: # print(i) # if i =='name': print(hailong[i]) for k,v in hailong.items(): print(k,v)
#增删改查 print(hailong['name']) print(hailong.get('zhuzhi','火星')) # get查找-不报错,可以设置默认值 #add hailong['zhuzhi'] = '北京' hailong['age']=30 print(hailong) #delete hailong.pop('age') print('删除age',hailong) hailong.popitem() #随机删除 print(hailong) del hailong['age'] #del 删除 print(hailong) print(hailong.values()) name = {'zhuzhi':"北京"} hailong.update(name) #字典合并 print(hailong) print(hailong.keys())
#设置默认值stus = {} stus['name'] = '小军' stus['name'] = '海龙' stus.setdefault('name','杨帆')#如果这个key已经存在,那么就不修改它的值了 stus.setdefault('age',18) stus.setdefault('sex','nan') stus.setdefault('addr','北京') stus.setdefault('phone','18612123123') #修改 stus['name'] = '海龙' #删除 del stus['phone'] stus.pop('phone') stus.popitem() #随机删除 #查询 print(stus['qq']) print(stus.get('sex')) print(stus.keys()) print(stus.values()) stus.update({'moeny':1000}) print(stus) for k in stus: print(k,'===>',stus.get(k)) for k,v in stus.items(): print(k,'===>',v) del stus print('----------') print(stus['name'])
all_stus = { 'xiaojun': { 'sex': '男', 'shengao': '185', 'age': 18, 'email': 'acb@qq.com', 'addr': '火星', 'id': 1, 'cars':['牧马人','911','野马','劳斯莱斯'] #五菱宏光 }, 'hailong':{ 'sex': '男', 'shengao': '185', 'age': 18, 'email': 'acb@qq.com', 'addr': '火星', 'id': 2 }, 'yangfan':{ 'sex': '男', 'shengao': '185', 'age': 18, 'email': 'acb@qq.com', 'addr': '火星', 'id': 3, 'bags':{ 'qianbao':['lv','ysl'], 'beibao':['coach','abc'] } } } all_stus['xiaojun']['cars'].append('五菱宏光') print(all_stus) print(len(all_stus['xiaojun']['cars'])) all_stus['yangfan']['sex'] = '女' print(all_stus) all_stus['yangfan']['bags']['qianbao'].remove('lv') print(all_stus)
文件读写
#1、有个文件 #2、打开文件 #3、操作文件 读、写 #4、关闭 #只读模式,默认的 #写模式 #追加模式 #w会清空文件内容 f = open('users.txt','a+') f.seek(0)#移动文件指针 print(f.read())#获取到文件里面所有的内容 f.write('yangfan,12345 ') f.write('mayanyan,12345 ') f.flush()# f.close()