【python7】案例实战:用户登陆系统&计算天数

用户登陆系统

这里是引用在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

# 用户名、密码、黑名单
# users = ['小红','mia','jack']
# password = ['123','456','789'] #不好维护
# not_allowed = ['jack']
users = [ # 用status设置状态来表示账号是否正常
    # 字典里面存字典,方便数据存取(视频后半段,此处不展示
    {'name':'小红','password':'123','status':True},
    {'name':'mia','password':'456','status':True},
    {'name':'jack','password':'789','status':False}]

print(users) #每写完一个小功能就print一下,测试一下
flag = False #标志变量。默认给一个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
# 给一个True,表示登陆成功,
# 后面给一个break跳出(设置登陆成功后就不用再验证;
# 折叠一下发现最后一个else没有跳出循环,就在那后面再加一个
                    break
                else:
                    print('账号失效,请联系管理员')
            else:
                print('账号密码错误')
            break
    else: # for else的写法,和break(上面那个)搭配使用
        print('用户名不存在,请先注册')
    if flag:# 加在这里
        break

计算天数

普通版

# 题目要求:输入2024-09-27,输出这一天是这一年的第多少天
# 2024-09-27
# 是模拟口算:把1月2月3月的日子分别加起来
date = input('请输入日期(格式为x-y-z):').split('-')
print(date) # ['2024', '9', '27'],需要转化为整数
year = int(date[0])
month = int(date[1])
day = int(date[2])
# 把每个月有多少天写下
# 希望输入的月份与下标一样,所以在最前面输入一个不要的数
# (python里面经常这么做
days = [0,31,29,31,30,31,30,31,31,30,31,30,31]
result = 0
for i in range(month):
    result +=days[i]# 加上每个月的天数
result += day# 加上剩下那几天
print('这一天是这一年的第%d天'%result)

升级版(区分闰年&平年

# 题目要求:输入2024-09-27,输出这一天是这一年的第多少天
# 2024-09-27
# 是模拟口算:把1月2月3月的日子分别加起来
date = input('请输入日期(格式为x-y-z):').split('-')
print(date) # ['2024', '9', '27'],需要转化为整数
year = int(date[0])
month = int(date[1])
day = int(date[2])
# 把每个月有多少天写下
# 希望输入的月份与下标一样,所以在最前面输入一个不要的数
# (python里面经常这么做
days = [0,31,29,31,30,31,30,31,31,30,31,30,31]

# 区分是否为闰年
if(not year % 4 and year % 100)or not year % 400:
    days[2]-=1

result = 0
for i in range(month):
    result +=days[i]# 加上每个月的天数
result += day# 加上剩下那几天
print('这一天是这一年的第%d天'%result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值