主要还是熟练运用,继续使用写:登录账号的方式的代码
今天找了一个现成代码,进行学分析习,分析过程是痛苦快乐的,部分简单的问题,差点难倒自己.
代码如下:
# vi userpw.py
# !/usr/bin/env python
db = {}
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!' % name
def 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)uit
Enter 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':
break
if __name__ == '__main__': #__name__是属于python中的内置类属性
showmenu()
运行OK了,如下:
(N)注册账号
(E)账号登录
(Q)退出
Enter choice:N
请选择操作类型:[n]
请新建用户名:废柴叔叔
请输入密码:123456
新用户[废柴叔叔] 创建成功!
(N)注册账号
(E)账号登录
(Q)退出
Enter choice:
本文暂时没有评论,来添加一个吧(●'◡'●)