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

Posted henrytoutou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python小程序练习一之登陆接口相关的知识,希望对你有一定的参考价值。

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

 

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

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("拜拜!!!")
登录开始游戏

 

转载:文章出处

以上是关于Python小程序练习一之登陆接口的主要内容,如果未能解决你的问题,请参考以下文章

Python 登陆接口小程序V1

初学pyhon的几个练习小程序

Python week1-练习1登陆接口

Python学习 登陆接口

Python练习(第一周): 编写登陆认证程序

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段