day2:python的简介与认识
day2:# 1、写一个登录程序
# username
# passwd
# 让用户输入账号和密码,输入用户和密码输入正确的话
# 提示你 xxx,欢迎登录,今天的日期是xxx,程序结束
# 错误的话,提示账号/密码输入错误
# 最多输入3次,如果输入3次都没有登录成功,提示失败次数过多。
# 需要判断输入是否为空。
# http://www.nnzhp.cn/archives/162 参考这个博客

count=0 username = 'fancy' passwd = 123456 import datetime today = datetime.date.today() welcome = '%s 欢迎登录,今天的日期是 %s' %(username,today) while count<3: username = input('请输入用户名:') passwd = input('请输入密码:') if username == 'fancy' and passwd == '123456': print(welcome) break elif username.strip() ==''or passwd.strip() =='': print('账号或密码不能为空') elif username!='fancy' or passwd !='123456': print ('账号/密码输入错误') count+=1 else: print('失败次数超过3次')
day3:python数据类型
day3-1:#第一个作业
# 1、校验密码是否合法的程序。
# 输入一个密码
# 1、长度5-10位
# 2、密码里面必须包含,大写字母、小写字母和数字
# # http://www.nnzhp.cn/archives/160 取交集的这种方式可以实现
# 3、最多输入5次

lower_letter = [] upper_letter = [] for i in range(ord('a'),ord('z')+1): lower_letter.append(chr(i)) for i in range(ord('A'),ord('Z')+1): upper_letter.append(chr(i)) num = {'0','1','2','3','4','5','6','7','8','9'} num = set(num) lower_letter = set(lower_letter) upper_letter = set(upper_letter) # print(num) # print(lower_letter) # print(upper_letter) for i in range(5): passwd = input('输入密码:').strip() pd = set(passwd) if 4<len(passwd)<11: if pd & lower_letter and pd & upper_letter and pd & num: print('密码输入成功') break else: print('密码必须包含大小写和数字') else: print('密码长度应该为5-10') continue else: print('您输入次数超过5次')
day3-2:
# 写一个录入学生作业情况的一个程序
# 1、查看学生作业情况
# 2、录入学生作业情况
# 3、可以让输入3次,需要为空的情况
# homeworks = {
# '张三':
# {'2018.3.22':"未交",'2018.3.23':'wei交'},
# '田雨':{'2018.3.22':"未交",'2018.3.23':'wei交'},
# }

homeworks = { '张三': {'已交':'2018.1.23'}, '李四': {'已交':'2018.2.13'}, '王五': {'未交':'2018.3.01'} } for i in range(3): name = input('学生姓名: ').strip() submit = input('是否交作业: ').strip() date = input('交作业日期:').strip() if name==''or submit==''or date=='': print('录入信息不能为空') elif name in homeworks: homeworks[name]={submit:date} print(homeworks) break else: homeworks.setdefault(name,{submit:date}) print(homeworks) else: print('输入超过三次,机会已用完')
day4:字符串,文件的操作
day4-1
#1、写一个自动生成密码文件的程序
# 1、你输入几,文件里面就给你产生多少条密码
# 2、密码必须包括,大写字母、小写字母、数字、特殊字符
# 3、密码不能重复
# 4、密码都是随机产生的
# 5、密码长度6-11
# http://www.nnzhp.cn/archives/150
# 随机数怎么用 参考 random模块怎么用

import random,string #导入random,string模块 lower = string.ascii_lowercase digits = string.digits upper = string.ascii_uppercase pun = string.punctuation x = lower + digits +upper + pun #定义含大写,小写,数字和特殊字符的字符串 f = open('text.txt','a+') #以a+方式打开文件 num= input('输入您要生成密码的条数:') for i in range(int(num)): lens = random.randint(2, 7) #随机选择2—7位长度 other = random.sample(x, lens) #定义other变量为连接随机位数的字符串,从x中截取 passwd =[random.choice(lower), random.choice(digits), random.choice(upper), random.choice(pun)]+other #密码的组成,其中分别从大小写,数字及特殊字符中随机选一个 random.shuffle(passwd) #打乱密码顺序 new_passwd = ''.join(passwd) #将列表转换成字符串 f.write(new_passwd+' ') #把密码写入文件 f.close() #关闭文件
day4-2
# 写一个注册的程序,账号和密码都存在文件里面。
# choice = input('请输入你的选择:1,注册2、删除用户3、登录')
# #注册
# 输入
# 账号
# 密码
# 密码确认
# # #需要校验用户是否存在,两次输入的密码,是否一致,为空的情况
# #账号和密码都存在文件里面
# #删除
# 输入一个用户名
# #需要校验用户是否存在
# #登录
# 输入账号密码登录

user_info = {} #定义一个字典,存放username,pwd with open('users.txt') as f: for line in f: line = line.strip() #第一行取到:fancy,123456 所以需要把‘ ’去掉 temp = line.split(',') #将取到的每一行放在一个列表里,以逗号分隔 username = temp[0] #取列表的username pwd = temp[1] #取列表的password user_info[username] = pwd for i in range(3): choice = input('请输入你的选择:1.注册2.删除用户3.登录 ').strip() if choice =='1': username = input('账号: ').strip() pwd = input('密码: ').strip() cpwd = input('重复密码: ').strip() if username and pwd and cpwd: if username in user_info: print('用户名已存在,请重新注册') else: if pwd == cpwd: user_info[username] = pwd #字典里username的值(即密码)与输入的密码进行比较 print('恭喜你,%s注册成功' %username) else: print('两次输入的密码不一致') else: print('用户名或密码不能为空') elif choice == '2': username = input('请输入账号:').strip() if username: if username in user_info: user_info.pop(username) print(user_info) print('删除成功') else: print('用户名不能为空') elif choice =='3': username = input('请输入账号:').strip() pwd = input('请输入密码:').strip() if username and pwd: if username in user_info: if user_info.get(username) ==pwd: #从字典里取password跟输入的密码比对 print('登录成功') else: print('账号密码错误') else: print('用户名不存在') else: print('用户名或密码不能为空') else: with open('users.txt','w') as fw: #循环3次结束后,清空文件写进新内容 for uname,pwd in user_info.items(): #把文件清空,写入字典里的最新内容 fw.write(uname+','+pwd+' ')
day5:函数,文件操作的补充
day5-1
#1、写一个生成双色球号码的一个程序,生成的号码写到文件里面
# 中奖号码由6个红色球号码和1个蓝色球号码组成
# 篮球范围:01-16
# 红球范围:01-33
# def swq(num):
# random.ranint(1,16)
# #tikti.txt
# 篮球:xx 红球号码是xx 01 08 09 12 13 19
# 篮球:xx 红球号码是xx 01 08 09 12 13 19

import random def ssq(): str_red = [] while len(str_red)!=6: red = str(random.randint(1, 33)).zfill(2) if red not in str_red: str_red.append(red) blue = str(random.randint(1,16)).zfill(2) str_reds = ' '.join(str_red) res = '篮球:%s''