前言:
此时咱们对“pythonhaskey”大体比较重视,你们都想要分析一些“pythonhaskey”的相关知识。那么小编在网上收集了一些关于“pythonhaskey””的相关资讯,希望姐妹们能喜欢,你们快快来了解一下吧!主要还是熟练运用,继续使用写:登录账号的方式的代码
今天找了一个现成代码,进行学分析习,分析过程是痛苦快乐的,部分简单的问题,差点难倒自己.
代码如下:
# vi userpw.py# !/usr/bin/env pythondb = {}def newuser(): prompt = 'please regist your name: ' while True: name = raw_input(prompt) if db.has_key(name): prompt = 'name taken,try another: ' continue else: break pwd = raw_input('passswd: ') db[name] = pwd print 'Newuser [%s] has added successfully!' % namedef olduser(): name = raw_input('login: ') pwd = raw_input('passwd: ') passwd = db.get(name) if passwd == pwd: print 'welcome back', name else: print 'login incorrect!'def showmenu(): prompt = """(N)ew User Login(E)xisting User Login(Q)uitEnter choice: """ while True: try: choice = raw_input(prompt).strip()[0].lower() print '\nYou picked: [%s]' % choice if choice not in 'neq': print 'invalid option,please try again' if choice == 'n': newuser() if choice == 'e': olduser() if choice == 'q': break except(EOFError, KeyboardInterrupt): print 'invalid option,please try again'if __name__ == '__main__': showmenu()
程序的意思我能看懂,也明白会使用,感觉也没毛病.但是我执行的时候就是一直报错.
最后发现问题点就是python2和python3部分差异无法兼容:
1.raw_input() 这是python2里的用法,python3里头直接合并了
2.字典的haskey(),也是pytho2n的用法
通过我的修改整理,顺便部分改成中文,让程序更容易懂,代码如下:
#!/usr/bin/python# -*- coding: UTF-8 -*-db = {}def newuser(): #自定义一个函数:新建用户名 prompt ='请新建用户名:' while True: name = input(prompt) if name in db: prompt ='该用户名已存在,请重新输入: ' continue else: break pwd = input('请输入密码:') db[name] = pwd print('新用户[%s] 创建成功!'%name)def olduser(): #输入用户名和密码,如果正确就登录,不正确提示输入错误 name = input('账号: ') pwd = input('密码: ') passwd = db.get(name) if passwd == pwd: print('Weclome!',name) else: print('用户名或密码错误!,请重新输入')def showmenu(): # prompt = '''(N)注册账号(E)账号登录(Q)退出Enter choice:''' while True: choice = input(prompt).strip()[0].lower() print('\n请选择操作类型:[%s]'%choice) if choice not in 'neq': print('无效操作,请重新输入') if choice == 'n': newuser() if choice =='e': olduser() if choice =='q': breakif __name__ == '__main__': #__name__是属于python中的内置类属性 showmenu()
运行OK了,如下:
(N)注册账号(E)账号登录(Q)退出Enter choice:N请选择操作类型:[n]请新建用户名:废柴叔叔请输入密码:123456新用户[废柴叔叔] 创建成功!(N)注册账号(E)账号登录(Q)退出Enter choice:
标签: #pythonhaskey