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