目录
一、用户登录系统
二、计算天数
一、用户登录系统
1.功能需求:用户输入用户名、密码后,根据用户是否已经注册,用户是否在黑名单中,提示用户是否登录成功。
2.登录功能
- 输入用户名
- 输入密码
- 登录验证:①用户是否已注册→用户名是否正确;②密码是否匹配→密码是否正确;③黑名单用户禁止登录→用户名是否在黑名单中
- 验证次数限制:3次
3.数据结构设计:保存用户名、密码、黑名单
- 列表
- 字典
代码实现:
# 用户名、密码、黑名单
# 列表
# users = ['小红','-17','cy']
# password = ['123','517','90']
# not_allowed = ['小红']
# 字典
users = [{'name':'小红','password':'123','status':False},{'name':'-17','password':'517','status':True},{'name':'cy','password':'181','status':True}
]flag = False
for j in range(3):user = input('请输入你的用户名:')pwd = input('请输入你的密码:')for i in users:if user == i['name']:if pwd == i['password']:if i['status'] == True:print('登录成功')flag = Trueelse:print('账号失效,请联系管理员')else:print('密码输入错误,请重试')breakelse:print('账号不存在,请先注册')if flag:break
运行结果:
请输入你的用户名:-17
请输入你的密码:123
密码输入错误,请重试
请输入你的用户名:517
请输入你的密码:123
账号不存在,请先注册
请输入你的用户名:-17
请输入你的密码:517
登录成功
改进后:
users = {'小红':{'name':'小红','password':'123','status':False},'-17':{'name':'-17','password':'517','status':True},'cy':{'name':'cy','password':'181','status':True}
}for j in range(3):user = input('请输入你的用户名:')pwd = input('请输入你的密码:')if user in users and pwd == users[user]['password'] and users[user]['status']:print('登录成功')breakelif user in users and not users[user]['status']:print('账号失效,请联系管理员')elif user in users and pwd != users[user]['password']:print('密码输入错误,请重试')else:print('账号不存在,请先注册')
运行结果:
请输入你的用户名:小红
请输入你的密码:123
账号失效,请联系管理员
请输入你的用户名:-17
请输入你的密码:258
密码输入错误,请重试
请输入你的用户名:cy
请输入你的密码:181
登录成功
二、计算天数
题目:输入年月日,输出该天是该年的第几天
代码实现:
# 输入年月日,输出该天是该年的第几天
date = input('请输入日期:').split('-')
year = int(date[0])
month = int(date[1])
day = int(date[2])
days = [0,31,28,31,30,31,30,31,31,30,31,30,31]if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:days[2] += 1result = 0
for i in range(month):result += days[i]
result += day
print('该天是该年的第%d天'%result)
运行结果:
请输入日期:2024-4-23
该天是该年的第114天