代码:
#!/usr/bin/env python
db = {}
#newuser process
def newuser():
prompt = 'login desired: '
while True:
name = raw_input(prompt)
if db.has_key(name):
prompt = 'name taken, try another: '
continue
else:
break
pwd = raw_input('passwd: ')
db[name] = pwd
#olduser process
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 Longin
(E)xisting User Login
(Q)uit
Enter 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: [%s]' % choice
if choice not in 'neq':
print 'invalid option, try again'
else:
chosen = True
if choice =='q':done = True
if choice =='n':newuser()
if choice =='e':olduser()
if __name__ == '__main__':
showmenu()
运行结果:
>>> ================================ RESTART ================================
>>>
(N)ew User Longin
(E)xisting User Login
(Q)uit
Enter choice: e
You picked: [e]
login: hailonxi
passwd: initial
login incorrect
(N)ew User Longin
(E)xisting User Login
(Q)uit
Enter choice: n
You picked: [n]
login desired: hailonxi
passwd: initial
(N)ew User Longin
(E)xisting User Login
(Q)uit
Enter choice: e
You picked: [e]
login: hailonxi
passwd: initial
welcome back hailonxi
(N)ew User Longin
(E)xisting User Login
(Q)uit
Enter choice: n
You picked: [n]
login desired: hailonxi
name taken, try another:
passwd:
(N)ew User Longin
(E)xisting User Login
(Q)uit
Enter choice: q
You picked: [q]
>>>