Python语言零基础入门——案例实战

目录

一、用户登录系统

二、计算天数


一、用户登录系统

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天
相关推荐
kobe_OKOK_2 小时前
__getattr__和__getattribute__如何用
python
全栈弄潮儿3 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技3 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y3 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川3 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸3 小时前
排序算法介绍
python·算法·排序算法
阿森_dev3 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by209993 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说3 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Sarvartha3 小时前
Lambda 表达式和函数式接口
java·开发语言