用Python写一段用户登录的程序

#!/usr/bin/env python
#coding: utf8

import getpass

db = {}

def newUser():
    username = raw_input('username: ')
    if username in db:
        #添加打印颜色
        print "\033[32;1m%s already exists![0m" % username
    else:
        #屏幕不显示密码,调用getpass.getpass()
        password = getpass.getpass()
        db[username] = password   #字典k-v赋值

def oldUser():
    username = raw_input('username: ')
    password = getpass.getpass()
    if username in db:
        if db.get(username) == password:#判断输入的用户名和密码是否和字典的k-v匹配
            print '\033[32;1mlogin successful!\033[0m'
        else:
            print '\033[32;1mpassword not match username\033[0m'
    else:
        print '\033[32;1musername does not exist\033[0m'

CMDs = {'n':newUser,'o':oldUser}
def showMenu():
    prompt = """(N)ew user
(O)ld user
(Q)uit
input your choice: """

    while True:
        try:#捕获ctrl+c ctrl+d的异常
            choice = raw_input(prompt).strip().lower()[0]
        except (KeyboardInterrupt, EOFError):
            choice = 'q'

        if choice not in 'noq':
            continue
        if choice == 'q':
            break
        CMDs[choice]()#这种方法相当于shell和c里面的case,很实用

if __name__ == '__main__':
    showMenu()

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值