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天
相关推荐
ROBIN__dyc1 分钟前
C语言基本概念
c语言·开发语言
zaim12 小时前
计算机的错误计算(一百一十四)
java·c++·python·rust·go·c·多项式
limengshi1383922 小时前
通信工程学习:什么是RIP路由信息协议
网络·网络协议·学习·智能路由器·信息与通信
学习使我变快乐2 小时前
C++:const成员
开发语言·c++
xiaobuding_QAQ3 小时前
自用Proteus(8.15)常用元器件图示和功能介绍(持续更新...)
单片机·嵌入式硬件·学习·proteus
500了3 小时前
Kotlin基本知识
android·开发语言·kotlin
wei_shuo3 小时前
偏标记学习+图像分类(论文复现)
学习·分类·数据挖掘
Miqiuha4 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐5 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
不知所云,5 小时前
qt cmake自定义资源目录,手动加载资源(图片, qss文件)
开发语言·qt