一个Python的小例子来理解字典与while循环
来源:互联网 发布:车铣复合编程 编辑:程序博客网 时间:2024/06/13 21:50
现在要实现一个需求,弹出一个界面,可以让用户选择是新建用户还是登录已有账户,或者直接退出,在登录账户的时候,密码输入错误不能超过三次,超过三次要回到主界面,用户名输入‘q’的时候也可以退出并回到主界面。
#-*-coding:utf-8-*-db = {} #通过使用字典来建立一个以用户名与密码的映射关系def newuser(): prompt = 'login desired:' while True: #开始第一层循环,一直是True,除非有break name = raw_input(prompt) if db.has_key(name): #判断所输入的用户名是否在已经存在的字典中,也就是字典中的key,如果存在则弹出一个提示 prompt = 'name has already please change another' continue else: break #这里的意思是所输入的用户名不在字典的key里,则循环break掉 pwd = raw_input('password: ') db[name] = pwd #将所输入的密码赋值给用户名所对应的valuedef olduser(): #这里定义一个老用户登录的函数 us = False #这里定义一个us=False的目的是为了进行检查用户名是否存在的 while not us: username = raw_input('username(q for quit): ') if username in db: #这处是检查用户名(key)是否是所定义的字典中,如果在的话us = True,则此处循环结束,不再提示输入用户名 us = True pwded = db.get(username) #取出用户名的密码 Ntime = 3 #定义最多只能错误输入三次密码 while Ntime != 0: password = raw_input('password: ') if password != pwded: print 'You password is not correct you have %d times to try again' % Ntime Ntime-=1 #次数减1 if Ntime == 0: print 'You have tried too much time without right password!' break #循环结束,同时也意味着olduser()函数的结束,程序向下走,程序将调用__main__入口,从而showmenu()函数被调用 elif password == pwded: #密码正确 print 'welcome back!' break elif username == 'q': #当用户名输入q 的时候手工定义pwded and password,为了后面的判断 pwded = None password = 123 break else: print 'No such user!!! please try again' #当输入一个不存在的key的时候输入此句 if password == 123: print 'You choice is q so it will back to main menu!' #这里是前面的当输入为q的用户名时的输出def showmenu(): prompt = ''' (N)ew user sign (O)ld user login (Q)uit Enter your choice:''' done = False while not done: chosen = False while not chosen: try: choice = raw_input(prompt).strip()[0].lower() #取用户所输入字符串第一个字符并将其小写去空格 except (EOFError,KeyboardInterrupt): choice = 'q' print '\nYou picked is [%s]'% choice if choice not in 'noq': #判断是否在这三个字母当中 print 'choice is invaild,try again' else: chosen = True if choice == 'q':done =True #done = True 则程序主循环不执行,程序结束 if choice == 'o':olduser() if choice == 'n':newuser()if __name__ == '__main__': showmenu()
- 一个Python的小例子来理解字典与while循环
- while循环的一个小例子
- 巧用while(true){ }死循环的一个小例子
- MySQL While 循环小例子
- python语言if判断,for,while循环,自编的小例子,规范版
- Python二维字典的几个小例子
- while 循环的理解
- Python字典应用的一个例子
- Python字典应用的一个例子
- python的一个小例子
- Python的while循环
- Python的while循环
- 小例子来理解MapReduce
- 循环与递归--不使用if,while,for,do—while语句来输出所有比已知数N小的自然数
- 接口理解的一个小例子
- for-in 来遍历字典 while for 循环
- 使用while循环来处理列表和字典
- 通过书中的一个小例子来了解一下简单的python基础
- linux内核学习初笔记(4)u-boot的board_init()函数clk_power与gpio妙用
- 杭电ACM 1002 A + B Problem II
- CSDN博客积分规则和获取积分方法
- Emacs快捷键
- 已解决 类模板中分离时export产生的原因、作用和用法
- 一个Python的小例子来理解字典与while循环
- 杭电ACM 1064 Financial Management
- 杭电ACM 1089 A+B for Input-Output Practice (I)
- 杭电ACM 1090 A+B for Input-Output Practice (II)
- 杭电ACM 1091 A+B for Input-Output Practice (III)
- 完全图的生成树
- nyoj 35 267 表达式求值
- android error:requires compiler compliance level 5.0 or 6.0. Found '1.4' instead
- 杭电ACM 1092 A+B for Input-Output Practice (IV)