前言
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
输入1进入登录模式
输入2进入注册模式,3进入管理员模式,进入后输入1可以查看信息
输入4直接退出操作
整体实现思路和上一篇 python记账本程序 很类似,不同的是中间加了很多的逻辑判断和for else的一个用法,之前可能没见过.
下面就具体讲一下程序的实现过程。
首先本地需要有一个保存账号密码的文件,这里新建了一个,接着往里面提前存了一个管理员账号。数据结构采用的是字典数据类型,因为账号和密码是成对一一对应的,所以字典就非常合适了,字典添加修改数据之前讲过了,这里就不细讲了。
接着创建一个提示信息常量和循环控制的条件变量,后面用于控制退出嵌套循环使用。
接着获取用户输入的操作选择,根据用户的选择进行对应的操作,首先是登录模式。先用两个变量username和userpassword获取用户输入的账号密码,接着和数据文件中的账号密码进行比对,这里用到一个for else语句,如果比对所有密码都没有匹配,就会执行到else语句,匹配就会进入到print语句,这里将LOOSTATUS赋值为0了,for 循环外侧还有一个while循环,用break无法退出,通过LOOPSTATUS就可以实现了,后面之所以还加了一个break是因为不加的话会执行到else语句。
注册操作和登录非常相似,需要先进行比对,看是否有注册过,没有就将账号密码写入到数据文件中。
3和4操作比较简单,将输入账号密码和管理员的账号进行对比,成功就让用户输入1查看所有账户信息;4的话就是直接退出整个循环。
完整代码:
import os
import json
# 创建账户文件,设置管理员账号密码
if not os.path.exists("record.json"):
with open("record.json","w") as f:
superuser="admin"
superpassword="qwert"
data={}
data[superuser]=superpassword
json.dump(data,f)
# 登录注册提示信息
info=(
"=======登录网站========\n"
"1.登录 输入数字 1\n"
"2.注册账户 输入数字 2\n"
"3.管理员登录 输入数字 3\n"
"4.退出网站 输入数字 4\n"
"=======登录网站========"
)
# 循环控制的条件变量 因为有嵌套循环 内层break无法退出
LOOPSTATUS=1
while LOOPSTATUS:
print(info)
choice = input("请输入你的操作选择-->:")
if choice=="1":
username=input("请输入你的用户名-->:")
userpassword = input("请输入你的密码-->:")
with open("record.json") as f:
data = json.load(f)
# 循环比对账号密码
for key in data:
if username==key and userpassword==data[key]:
print("恭喜登入成功")
LOOPSTATUS=0
break
# 全部比较完都没有找到就打印提示信息
else:
print("用户名不存在或者密码错误,请注册或者重新输入")
elif choice == "2":
username=input("请输入你的用户名-->:")
userpassword = input("请输入你的密码-->:")
with open("record.json") as f:
data = json.load(f)
for key in data:
if username==key:
print("用户名已存在,请重新输入")
break
else:
data[username]=userpassword
with open("record.json", 'w') as f:
json.dump(data,f)
print("恭喜注册成功")
elif choice=="3":
username=input("请输入你的用户名-->:")
userpassword = input("请输入你的密码-->:")
with open("record.json") as f:
data = json.load(f)
if username=="admin" and userpassword==data["admin"]:
print("恭喜登入成功")
Input=input("输入1查看所有账户信息")
if Input=="1":
print(data)
break
else:
print("无效输入")
continue
else:
print("用户名不存在或者密码错误,请注册或者重新输入")
continue
elif choice=="4":
print("成功退出,欢迎下次光")
整个程序到这里就结束里,相信很多小伙伴还有很多其它想法,比如限制输入错误次数,增加修改密码功能等等,这些就留给大家自己探索了,下面提供一个简单的次数限制程序,可以自己修改放进去。
"""
##参考密码次数输入错误限制
"""
# 密码输入次数
count = 0
while count < 3:
name = input("请输入你的账号:")
password = input("请输入你的密码:")
if password == "123456":
print("你的账号是:", name, "你的密码是:", password)
print("登入成功")
else:
count = count + 1
print("密码错误,还有", 3-count, "次机会")
print(count, "次输入错误,密码已被锁定")</pre>
(全文完)
欢迎转载,转载请注明出处! 欢迎关注公众微信号:叶子陪你玩 分享自己的python编程学习之路
长按二维码,
加关注!
叶子陪你玩