第一周:模拟登陆、三级菜单

一、学习内容

  python数据类型

  字符串的常用操作

      列表: products=['book','glass','computer','bike']

      元组: products=('book','glass','computer','bike')    (元组又叫只读列表)

  字典: info={

      'stu1101':"zhangsan"

      'stu1102':"lisi"

      'stu1103':"wangwu"

      }

      一种Key--Value的数据类型;特性是dict无序、key唯一。

 

二、作业  

  模拟登陆:

  1. 用户输入帐号密码进行登陆

  2. 用户信息保存在文件内

  3. 用户密码输入错误三次后锁定用户

   流程图:

 1 import getpass
 2 
 3 count=0
 4 #输入登录用户名
 5 username=input("username:")
 6 #在黑名单中查找用户名
 7 with open("lockinfo",'r',encoding='utf-8') as f_lock:
 8     while 1:  #循环查找,不知道循环次数时用while
 9         line=f_lock.readline()
10         if not line:
11             break#退出循环
12         q=line.replace("\n", "")
13         if username==q: #存在黑名单中
14             print("用户已被锁定,无法登录")
15             exit()#退出程序
16 #在用户信息表中查找用户名
17 with open("userinfo",'r+',encoding='utf-8') as f:
18     data=f.read()
19     b=eval(data)#字符串转换成字典函数
20     while 1:
21         if username in b.keys():
22             for i in range(3):#输入密码3次
23                 count+=1
24                 password=input("password:")
25                 if count<4:
26                     if password==b[username]:
27                         print("登录成功")
28                         exit()
29                     else:
30                         print("您还有{n}次输入机会,超过3次账号将被锁定".format(n=3-count))
31                 if count==3:
32                     print("账号已被锁定")
33                     with open("lockinfo",'a+',encoding='utf-8') as f_lock:
34                         f_lock.write(username+'\n')
35                         exit()
36         else:
37             print("用户名不存在,请重新输入")
38             username=input("username:")
39             continue
View Code

 

 

  三级菜单:

  1. 运行程序输出第一级菜单

  2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

  3. 菜单数据保存在文件中

  4. 让用户选择是否要退出

  5. 有返回上一级菜单的功能

  流程图:

 1 #打开文件,读菜单内容
 2 with open('docs/1-2cityinfo','r+',encoding='utf-8') as f_cityinfo:
 3     #转换成字典
 4     data=eval(f_cityinfo.read())
 5     #打印字典key值
 6 flag=True
 7 while flag:
 8     for i in data:
 9         print(i)
10     choice1=input("请输入一级菜单项内容,q退出>>:")
11     if choice1=='q':
12         exit()
13     while flag:
14         if choice1 in data:
15             for i2 in data[choice1]:
16                 print("\t",i2)
17             choice2=input("请输入二级菜单项内容,q退出,b返回>>:")
18             if choice2=='q':
19                 exit()
20             if choice2=='b':
21                 break
22             if choice2 in data[choice1]:
23                 while flag:
24                     for i3 in data[choice1][choice2]:
25                         print("\t",i3)
26                     choice3=input("q退出,b返回>>:")
27                     if choice3=='q':
28                         exit()
29                     if choice3=='b':
30                         break
31     continue
View Code

 

转载于:https://www.cnblogs.com/QqOnline/p/6489164.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值