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天
相关推荐
龙哥说跨境1 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
Source.Liu1 分钟前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng1 分钟前
【Rust中的迭代器】
开发语言·后端·rust
余衫马4 分钟前
Rust-Trait 特征编程
开发语言·后端·rust
monkey_meng8 分钟前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
Jacob程序员10 分钟前
java导出word文件(手绘)
java·开发语言·word
数据与后端架构提升之路14 分钟前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
小白学大数据17 分钟前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
flashman91118 分钟前
python在word中插入图片
python·microsoft·自动化·word
VBA633718 分钟前
VBA之Word应用第三章第三节:打开文档,并将文档分配给变量
开发语言