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天
相关推荐
碎光拾影几秒前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
圣光SG14 分钟前
Servlet学习笔记
笔记·学习·servlet
CCPC不拿奖不改名15 分钟前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code41 分钟前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook1 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Miao121311 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城2 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
@Mike@2 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
六点_dn3 小时前
RabbitMQ学习笔记-定义与作用
笔记·学习·rabbitmq
keyipatience3 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu