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

yipeiwu_com6年前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()

以上这篇用Python写一段用户登录的程序代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解Python中正则匹配TAB及空格的小技巧

在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任意字符,*代表0-无穷个,比如说要分别匹配某个目录下的子目录: >>> import re >>...

Python 生成 -1~1 之间的随机数矩阵方法

Python 生成 -1~1 之间的随机数矩阵方法

1. 使用函数 np.random.random 由于 np.random.random() 默认生成 0~1 之间的小数,因此需要转换一下 如生成 3*3 的 -1~1 之间的随机数...

Linux上使用Python统计每天的键盘输入次数

Github 项目主页 工具源码 分析结果: total : 15981 1568.0 == Backspace 1103.0 == Tab 1038.0 == Enter 900....

mac下pycharm设置python版本的图文教程

mac下pycharm设置python版本的图文教程

安装了pycharm 5.0.1,创建了测试项目,发现python的版本是2.6.9的,系统自带的版本好像是2.7的,为什么这样,怎么切换到2.7 看了一下系统到底装了些什么版本 居...

django小技巧之html模板中调用对象属性或对象的方法

django小技巧之html模板中调用对象属性或对象的方法

环境:依赖最初test2数据库            python3版本  ...