作业:编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
一、本程序包含文件:
1、用户登录.py :主程序
2、account.txt :存储用户名密码
3、lock.txt :存储锁定的用户名
4、用户登录.jpg :程序执行流程图
5、ReadMe.txt :程序说明文档
二、程序说明:
用户登陆,输入用户名密码,输入正确显示欢迎信息,输入错误三次后锁定该用户。
三、用到的知识点:
input 用户输入
if 判断
for 循环
open 文件操作
break 跳出循环
四、流程图
1 #!/usr/bin/env python 2 # -.- coding: utf-8 -.- 3 # by sandler 4 account_file = 'account.txt' 5 #用户列表,包含用户名和密码 6 lock_file = 'lock.txt' 7 #锁定用户列表 8 9 for i in range(3): 10 username = input("username: ").strip() 11 password = input("password: ").strip() 12 if len(username) !=0 and len(password) !=0: #判断用户输入是否为空 13 lf = open(lock_file,'r') 14 lockSuccess = False 15 for lf_line in lf.readlines(): 16 lf_line = lf_line.split() 17 if username == lf_line[0]: #判断用户输入的用户名是否在锁定列表 18 print("Locked %s." % username) 19 lockSuccess = True 20 lf.close() 21 break 22 if lockSuccess is True: 23 break 24 af = open(account_file,'r') 25 loginSuccess = False 26 for af_line in af.readlines(): 27 af_line = af_line.split() 28 if username == af_line[0] and password == af_line[1]: #判断用户输入的用户名密码是否在用户列表 29 print("Welcon %s login my system" % username) 30 loginSuccess = True 31 break 32 if loginSuccess is True: 33 break 34 else: 35 continue 36 else: 37 f = open(lock_file,'a') 38 f.write('%s ' % username) 39 f.close() 40 #如果三次输入错误,把最后一次输入写入到lock.txt 41 print("Enter the %s is wrong,be locked!" % username)
作业:多级菜单
- 三级菜单
- 可依次选择进入各子菜单
- 所需新知识点:列表、字典
一、本程序包含文件:
1、用户登录.py :主程序
2、多级菜单.jpg :程序执行流程图
3、ReadMe.txt :程序说明文档
二、程序说明:
执行程序,显示欢迎信息,并自动打印第一层菜单,提示用户输入想要访问菜单名,根据用户输入判断打印下一级菜单,按b返回,按q退出。
三、用到的知识点:
input 用户输入
if 判断
for 循环
break 跳出循环
import 导入模块
sys sys模块
sys.exit() 退出程序
四、流程图
1 #!/usr/bin/env python 2 # -.- coding: utf-8 -.- 3 # by sandler 4 import sys 5 welcome = ''' 6 ****************************************************************** 7 * * 8 * 33[31m欢迎进入地区信息浏览系统 33[0m * 9 * * 10 ****************************************************************** 11 33[31m退出请按Q 33[0m 12 ''' 13 index_dic = { 14 "天津":{ 15 "和平区":["小白楼","劝业场","体育馆"], 16 "河西区":["挂甲寺","桃园","大营门"] 17 }, 18 "北京":{ 19 "海淀区":["中关村","五道口","上地"], 20 "朝阳区":["安贞","国贸","管庄"] 21 }, 22 "河北":{ 23 "保定":["徐水区","竞秀区","满城区"], 24 "石家庄":["新华区","长安区","裕华区"] 25 } 26 } 27 print(welcome) 28 29 for i in index_dic: 30 print(i) #打印第一层菜单 31 print ("-------------------------------------------------") 32 for i in range(3): 33 shi_input = input("请输入你要查看的地区名字,按q退出: ") 34 if shi_input == "q": #判断用户输入是否为“q”, 35 sys.exit(0) #用户输入“q”退出 36 if shi_input in index_dic: 37 qu_name = index_dic[shi_input] 38 jd_name = qu_name.keys() 39 while True: 40 for i in jd_name: #遍历列表,取出地区名字 41 print (i) #打印第二层菜单 42 qu_input = input("请输入你要查看的区名字,按b返回,按q退出: ") 43 if qu_name == "q": 44 sys.exit(0) 45 if qu_input in jd_name: #判断用户输入是否在列表中 46 shi_name = index_dic[shi_input][qu_input] 47 for i in shi_name: 48 print (i) #打印第三层菜单 49 50 if qu_input not in jd_name: #判断输入是否在列表中 51 print ("您输入的信息有误,请重新输入: ") 52 continue 53 back_or_quit = input("已到最后,按b:Back是返回上一级菜单;按q:Exit是退出整个程序: ") 54 if back_or_quit == "q": 55 sys.exit(0) 56 break 57 if back_or_quit == "b": 58 continue 59 print ("您输入的信息有误,请重新输入: ") 60 else: 61 print ("3次输入错误,程序退出")