前言

本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。

输入1进入登录模式

文件操作案例2-模拟网站登录程序_python

输入2进入注册模式,3进入管理员模式,进入后输入1可以查看信息

文件操作案例2-模拟网站登录程序_python_02

输入4直接退出操作

文件操作案例2-模拟网站登录程序_json_03

整体实现思路和上一篇 python记账本程序 很类似,不同的是中间加了很多的逻辑判断和for else的一个用法,之前可能没见过.

下面就具体讲一下程序的实现过程。

首先本地需要有一个保存账号密码的文件,这里新建了一个,接着往里面提前存了一个管理员账号。数据结构采用的是字典数据类型,因为账号和密码是成对一一对应的,所以字典就非常合适了,字典添加修改数据之前讲过了,这里就不细讲了。

文件操作案例2-模拟网站登录程序_json_04

接着创建一个提示信息常量和循环控制的条件变量,后面用于控制退出嵌套循环使用。

文件操作案例2-模拟网站登录程序_json_05

接着获取用户输入的操作选择,根据用户的选择进行对应的操作,首先是登录模式。先用两个变量username和userpassword获取用户输入的账号密码,接着和数据文件中的账号密码进行比对,这里用到一个for else语句,如果比对所有密码都没有匹配,就会执行到else语句,匹配就会进入到print语句,这里将LOOSTATUS赋值为0了,for 循环外侧还有一个while循环,用break无法退出,通过LOOPSTATUS就可以实现了,后面之所以还加了一个break是因为不加的话会执行到else语句。

文件操作案例2-模拟网站登录程序_用户名_06

注册操作和登录非常相似,需要先进行比对,看是否有注册过,没有就将账号密码写入到数据文件中。

文件操作案例2-模拟网站登录程序_python_07

3和4操作比较简单,将输入账号密码和管理员的账号进行对比,成功就让用户输入1查看所有账户信息;4的话就是直接退出整个循环。

文件操作案例2-模拟网站登录程序_python_08

完整代码:

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编程学习之路






长按二维码,

加关注!

叶子陪你玩

文件操作案例2-模拟网站登录程序_python_09