用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设计】。

相关文章

用sqlalchemy构建Django连接池的实例

都知道django每次请求都会连接数据库和释放数据库连接。Django为每个请求使用新的数据库连接。一开始这个方法行得通。然而随着服务器上的负载的增加,创建/销毁连接数据库开始花大量的时...

python numpy函数中的linspace创建等差数列详解

python numpy函数中的linspace创建等差数列详解

前言 本文主要给大家介绍的是关于linspace创建等差数列的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 numpy.linspace 是用于创建一个由等...

对python中UDP,socket的使用详解

对python中UDP,socket的使用详解

讲到UDP和TCP之前咱们先了解一下socket Socket socket简称套接字,是进程间通信的一种方式。与其他的方式的进程间的通讯的方式不同的是,socket是实现了主机间进程间...

浅谈Python中copy()方法的使用

  copy()方法返回字典的浅拷贝。 语法 以下是copy()方法的语法: dict.copy() 参数     NA 返回值...

python写的一个squid访问日志分析的小程序

python写的一个squid访问日志分析的小程序

这两周组里面几位想学习python,于是我们就创建了一个这样的环境和氛围来给大家学习。 昨天在群里,贴了一个需求,就是统计squid访问日志中ip 访问数和url的访问数并排序,不少同学...