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天
相关推荐
DevOpsDojo6 分钟前
HTML语言的数据结构
开发语言·后端·golang
懒大王爱吃狼8 分钟前
Python绘制数据地图-MovingPandas
开发语言·python·信息可视化·python基础·python学习
数据小小爬虫11 分钟前
如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
开发语言·爬虫·python
好一点,更好一点27 分钟前
systemC示例
开发语言·c++·算法
不爱学英文的码字机器29 分钟前
[操作系统] 环境变量详解
开发语言·javascript·ecmascript
martian66534 分钟前
第17篇:python进阶:详解数据分析与处理
开发语言·python
无码不欢的我37 分钟前
使用vscode在本地和远程服务器端运行和调试Python程序的方法总结
ide·vscode·python
五味香38 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
时韵瑶43 分钟前
Scala语言的云计算
开发语言·后端·golang
金融OG1 小时前
99.8 金融难点通俗解释:净资产收益率(ROE)
大数据·python·线性代数·机器学习·数学建模·金融·矩阵