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

2018-06-18 02:22:14来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

 

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

1、Adduser.py

 1 # The author is tou
 2 import pickle
 3 #初始化用户以及密码
 4 user_dict = {"admin":{"passwd":"admin","flag":"unlock"}}  #字典
 5 
 6 #把账号,密码保存到文件中
 7 with open("admin.txt","wb+",)as f_write:
 8     pickle.dump(user_dict,f_write)
 9 with open("admin.txt","rb+")as f_read:
10     x = pickle.load(f_read)
11 print(x)
添加用户

2、Log In.py

 1 # The author is tou
 2 import pickle
 3 import random
 4 
 5 with open("admin.txt","rb+") as f:        #载入用户账户密码信息
 6     user_dict = pickle.load(f)
 7 exit_flag = False                         #初始化锁定的状态为false
 8 count_lock = 0                            #初始化账号锁定次数为0次
 9 
10 print("*********欢迎登陆************".center(10))
11 while True:
12     user = input("请输入账号:").strip()   #strip()的作用是在输入账号密码的时候去掉你输入数据中最前面或者最后面的空格
13     if user == "":continue                #用户名为空,重新输入
14     passwd = input("请输入密码:").strip()
15 
16     #判断是否存在输入的账号
17     if user_dict.get(user):
18         #判断账号是否锁定,锁定则退出
19         if user_dict[user]["flag"] == "lock":
20             print("账号已经锁定,请解锁!")
21             break
22         #验证密码是否正常
23         if user_dict[user]["passwd"] == passwd:
24             while True:
25                 guess_choise = input("你要开始玩猜数字游戏吗?(选择yes或no):").strip()
26                 if guess_choise == "":continue
27                 elif guess_choise =="yes":
28                     print("欢迎登陆Python自动化开发——猜数字游戏系统")
29                     print("******************************************")
30                     print("猜数字的范围在1到10之间")
31                     real_num = random.randrange(1,11)  #随机生成1到10之间的一个数字
32                     retry_count = 0
33                     while retry_count<3: #有3次机会猜数字
34                         guess_num = input("请输入你猜的数字:").strip()
35                         if guess_num == "":continue
36                         if guess_num.isdigit():          #isdigit() 方法检测字符串是否只由数字组成。
37                             guess_num = int(guess_num)
38                             if guess_num > real_num:
39                                 print("错误,请输入一个小一点的数字!")
40                             elif guess_num < real_num:
41                                 print("错误,请输入一个大一点的数字!")
42                             else :
43                                 print("恭喜你,猜到你的幸运数字%s!!!"%real_num)
44                                 break
45                         else:
46                             print("输入的不是数字,请重新输入一个数字")
47                             continue
48                         retry_count +=1
49                         if retry_count == 3:
50                             print("三次机会已用完,幸运数字是%s"%real_num)
51                             break
52 
53                 elif guess_choise == "no":               #不想猜数字游戏,则直接退出系统
54                     print("欢迎再次登录!")
55                     exit_flag = True
56                     break
57                 else:
58                     print("你输入的不是yes或者no,请重新输入")
59                     continue
60         else:
61             count_lock +=1  #密码不正确,统计输错次数
62             if(3-count_lock):
63                 print("账号或密码错误,还有%s次机会尝试登陆!"%(3-count_lock))
64 
65             if count_lock == 3:  #若锁定次数有3次,就锁定账号
66                 with open("admin.txt","wb+") as f:
67                     user_dict["admin"]["flag"] = "lock"   #标记账号admin为锁定状态
68                     user_dict = pickle.dump(user_dict,f)  #修改后的数据写到admin.txt中
69                 print("**************************************************")
70                 print("账号被锁定,请解锁!")
71                 break
72     else:
73         print("输入的账号不存在,请重新输入!")
74         continue
75 
76     if exit_flag:
77         break
78 print("拜拜!!!")
登录开始游戏

 

转载:文章出处

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:解决Python自带的json不能序列化data,datetime类型数据问题

下一篇:Python终端如何输出彩色字体