Python小程序练习一之登陆接口

登陆接口并实现猜数字游戏

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 进行猜数字游戏,可猜三次
  • 输错三次后锁定

1、Adduser.py

# The author is tou
import pickle
#初始化用户以及密码
user_dict = {"admin":{"passwd":"admin","flag":"unlock"}}  #字典

#把账号,密码保存到文件中
with open("admin.txt","wb+",)as f_write:
    pickle.dump(user_dict,f_write)
with open("admin.txt","rb+")as f_read:
    x = pickle.load(f_read)
print(x)

2、Log In.py

# The author is tou
import pickle
import random

with open("admin.txt","rb+") as f:        #载入用户账户密码信息
    user_dict = pickle.load(f)
exit_flag = False                         #初始化锁定的状态为false
count_lock = 0                            #初始化账号锁定次数为0次

print("*********欢迎登陆************".center(10))
while True:
    user = input("请输入账号:").strip()   #strip()的作用是在输入账号密码的时候去掉你输入数据中最前面或者最后面的空格
    if user == "":continue                #用户名为空,重新输入
    passwd = input("请输入密码:").strip()

    #判断是否存在输入的账号
    if user_dict.get(user):
        #判断账号是否锁定,锁定则退出
        if user_dict[user]["flag"] == "lock":
            print("账号已经锁定,请解锁!")
            break
        #验证密码是否正常
        if user_dict[user]["passwd"] == passwd:
            while True:
                guess_choise = input("你要开始玩猜数字游戏吗?(选择yes或no):").strip()
                if guess_choise == "":continue
                elif guess_choise =="yes":
                    print("欢迎登陆Python自动化开发——猜数字游戏系统")
                    print("******************************************")
                    print("猜数字的范围在1到10之间")
                    real_num = random.randrange(1,11)  #随机生成1到10之间的一个数字
                    retry_count = 0
                    while retry_count<3: #有3次机会猜数字
                        guess_num = input("请输入你猜的数字:").strip()
                        if guess_num == "":continue
                        if guess_num.isdigit():          #isdigit() 方法检测字符串是否只由数字组成。
                            guess_num = int(guess_num)
                            if guess_num > real_num:
                                print("错误,请输入一个小一点的数字!")
                            elif guess_num < real_num:
                                print("错误,请输入一个大一点的数字!")
                            else :
                                print("恭喜你,猜到你的幸运数字%s!!!"%real_num)
                                break
                        else:
                            print("输入的不是数字,请重新输入一个数字")
                            continue
                        retry_count +=1
                        if retry_count == 3:
                            print("三次机会已用完,幸运数字是%s"%real_num)
                            break

                elif guess_choise == "no":               #不想猜数字游戏,则直接退出系统
                    print("欢迎再次登录!")
                    exit_flag = True
                    break
                else:
                    print("你输入的不是yes或者no,请重新输入")
                    continue
        else:
            count_lock +=1  #密码不正确,统计输错次数
            if(3-count_lock):
                print("账号或密码错误,还有%s次机会尝试登陆!"%(3-count_lock))

            if count_lock == 3:  #若锁定次数有3次,就锁定账号
                with open("admin.txt","wb+") as f:
                    user_dict["admin"]["flag"] = "lock"   #标记账号admin为锁定状态
                    user_dict = pickle.dump(user_dict,f)  #修改后的数据写到admin.txt中
                print("**************************************************")
                print("账号被锁定,请解锁!")
                break
    else:
        print("输入的账号不存在,请重新输入!")
        continue

    if exit_flag:
        break
print("拜拜!!!")
转载: 文章出处
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值