python成长之路-----day1-----作业(登录程序和三级菜单)

简介: 作业: 作业1:用户登录 1)程序说明: a.用户输入密码验证成功然后打印欢迎信息 b.如果密码错误,用户登录失败,提示用户,密码错误 c.用户输入密码错误3次,则用户锁定 d.当用户多次输入不存在的用户时,提示错误信息,并让用户等待10s之后再次输入 账户信息保存在user.

作业:

作业1:用户登录

1)程序说明:

a.用户输入密码验证成功然后打印欢迎信息

b.如果密码错误,用户登录失败,提示用户,密码错误

c.用户输入密码错误3次,则用户锁定

d.当用户多次输入不存在的用户时,提示错误信息,并让用户等待10s之后再次输入

账户信息保存在user.txt中,例子:dean,dean123,0 这三个值分别表示的含义:第一位是:username,第二位是:password,第三位表示用户的状态,0表示正常,1表示锁定

2)流程图如下:

3)程序代码:

 1 #AUTHOR:FAN
 2 import time
 3 #定义一个用户字典
 4 user_dict={}
 5 #定义一个用户列表
 6 user_list=[]
 7 
 8 f=open("user.txt",'r')
 9 #用for循环获取文件中每行的内容,并写入到字典中,value_interm[0]表示username,value_interm[1]表示password,value_interm[2]表示
10 #账户的锁定信息:0表示正常,1表示锁定
11 for line in f.readlines():
12     useriterm = line.strip()
13     value_interm = useriterm.split(',')
14     value_username = value_interm[0]
15     value_password = value_interm[1]
16     value_lock = value_interm[2]
17     user_dict[value_username]={
18         "name":value_username,
19         "password":value_password,
20         "lock":value_lock
21     }
22 f.close()
23 #print(user_dict)
24 #定义个count_num用户计算用户输入错误用户的次数
25 count_num = 0
26 #用于跳出多层循环
27 flag = True
28 while flag:
29     if count_num == 3:
30         print("dute to input non-existent user ,you need to wait 10s")
31         time.sleep(10)
32     # 获取用户输入的用户名
33     user_name = input("please input your username:")
34     if user_name in user_dict.keys():
35         #print(type(user_dict[user_name]["lock"]))
36         #判断用户是否被锁定
37         if int(user_dict[user_name]["lock"]) == 0:
38             for i in range(3):
39                 password = input("please input you password:")
40                 #判断密码是否正确
41                 if password == user_dict[user_name]["password"]:
42                     print("welcome to login my system!")
43                     flag=False
44                     break
45                 else:
46                     print("password is error")
47             else:
48                 #用户输入密码错误三次后被锁定
49                 user_dict[user_name]["lock"]="1"
50                 f = open("user.txt","w+")
51                 #将字典装换成列表,将改变的信息写入到文件中
52                 for value in user_dict.values():
53                     user_list =[value["name"],value["password"],value["lock"]]
54                     user_list =",".join(user_list)
55                     f.write(user_list+"\n")
56                 print("you input wrong password too many,the user is locked")
57                 break
58         else:
59             print("user is locked")
60     else:
61         print("user is not exist")
62         count_num+=1

 作业2:三级菜单

1)程序说明:

a.用户运行程序后,打印第一级菜单

b.用户输入相应的编号进入下一级菜单,当编号错误的时候会提示用户输入错误,并让用户重新输入

c.用户在每一级的时候,都能通过输入q退出程序,并能通过输入up返回到上级菜单,返回到上级目录时要将上级目录进行打印

d.用户到最后一级的时候提示用户已经到最后一级目录,可以直接退出程序或返回上级目录

2)流程图如下:

3)程序代码:

  1 #AUTHOR:FAN
  2 #定义一个菜单字典
  3 menu_dict={
  4     "河南省":{
  5         "焦作市":{
  6             "修武县":{"AA","BB","CC"},
  7             "武陟县":{"DD","EE","FF"},
  8             "博爱县":{"GG","HH","II"}
  9         },
 10         "新乡市":{
 11             "辉县":{"AA","BB","CC"},
 12             "封丘县":{"DD","EE","FF"},
 13             "延津县":{"GG","HH","II"}
 14         }
 15     },
 16     "河北省":{
 17         "邢台":{
 18             "宁晋县":{"AA","BB","CC"},
 19             "内丘县":{"DD","EE","FF"},
 20             "邢台县":{"GG","HH","II"}
 21         },
 22         "唐山":{
 23             "乐亭县":{"AA","BB","CC"},
 24             "唐海县":{"DD","EE","FF"},
 25             "玉田县":{"GG","HH","II"}
 26         }
 27     }
 28 }
 29 #用户退出多级菜单用flag
 30 flag =True
 31 while flag:
 32     #用于记录一级菜单key的个数
 33     count1 = 0
 34     #打印一级菜单
 35     for index,key in enumerate(menu_dict.keys()):
 36         count1+=1
 37         print(index,key)
 38     user_choice = input("please input your choice:")
 39     #判断用户输入的值是否为全数字
 40     if user_choice.isdigit() is True:
 41         user_choice = int(user_choice)
 42         #判断用户输入的值是否大于列表的最大值
 43         if user_choice < count1:
 44             #将字典转换成列表,menu_dict.keys()默认不是列表
 45             menu_list = list(menu_dict.keys())
 46         else:
 47             print("you need input right num")
 48             continue
 49     elif user_choice == "q":
 50         flag= False
 51         break
 52     else:
 53         print("please input a num")
 54         continue
 55     while flag:
 56         count2= 1
 57         for index,key in enumerate(menu_dict[menu_list[user_choice]].keys()):
 58             count2+=1
 59             print (index,key)
 60         user_choice2 = input("please input your choice(q:退出程序,up上一级):")
 61         if user_choice2.isdigit() is True:
 62             user_choice2 = int(user_choice2)
 63             if user_choice2 < count2:
 64                 menu_list2 = list(menu_dict[menu_list[user_choice]].keys())
 65             else:
 66                 print("you need input right num")
 67                 continue
 68         elif user_choice2 == "q":
 69             flag=False
 70             break
 71         elif user_choice2 =="up":
 72             break
 73         else:
 74             print("please input a num")
 75             continue
 76         while flag:
 77             count3=0
 78             for index,key in enumerate(menu_dict[menu_list[user_choice]][menu_list2[user_choice2]].keys()):
 79                 print(index,key)
 80                 count3+=1
 81             user_choice3 =input("please input your choice(q:退出程序,up上一级):")
 82             if user_choice3.isdigit() is True:
 83                 user_choice3=int(user_choice3)
 84                 if user_choice3 < count3:
 85                     menu_list3 = list(menu_dict[menu_list[user_choice]][menu_list2[user_choice2]])
 86                 else:
 87                     print("you need input right num")
 88                     continue
 89             elif user_choice3 == "up":
 90                 break
 91             elif user_choice3 =="q":
 92                 flag =False
 93                 break
 94             else:
 95                 print("please input a num")
 96                 continue
 97             while flag:
 98                 for index,key in enumerate(menu_dict[menu_list[user_choice]][menu_list2[user_choice2]][menu_list3[user_choice3]]):
 99                     print (index,key)
100                 #提示用户已经到最后一级目录,可以退出或返回上级目录
101                 q_or_up = input("This is last level,you want to q(退出程序) or up(上一级):")
102                 if q_or_up == "q":
103                     flag = False
104                     break
105                 elif q_or_up == "up":
106                     break
107                 else:
108                     continue

 

 

 

所有的努力都值得期许,每一份梦想都应该灌溉!
目录
相关文章
|
3月前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
1月前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
74 28
|
3月前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2月前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
87 6
|
2月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
2月前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序
|
3月前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
116 9
|
3月前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
78 2
|
3月前
|
Python
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
90 5
|
3月前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
80 1

热门文章

最新文章

推荐镜像

更多