一、列表
1.用户登录程序版本
• 用户名和密码分别保存在列表中;
• 用户登录时,判断该用户是否注册;
• 用户登录时,为防止黑客暴力破解, 仅有三次机会;
• 如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while….else…语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.
提示: 用户名和密码一一对应
users = [“user1”, “user2”, “user3”]
passwords = [“123”, “456”, “789”]
#!/usr/bin/env python
#coding:utf-8
users = ['user1','user2','user3']
passwords = ['123','456','789']
trycount = 0
while trycount < 3:
iuser = raw_input('请输入用户名:')
if iuser not in users:
print '该用户名未注册!!'
break
else:
ipasswd = raw_input('请输入密码:')
n = users.index(iuser)
if ipasswd == passwords[n]:
print '密码正确,登陆成功!!!'
break
else:
print '密码错误,登录失败!!!'
trycount += 1
continue
else:
print '密码错误超过三次,登录失败!!'
2. 列表构建栈
• 栈是先进后出(LIFO-first in last out);
• 类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,之后的总结中会用类实现)
#!/usr/bin/env python
#coding:utf-8
stack = []
info = '''
栈操作
1)入栈
2)出栈
3)栈长度
4)查看栈
5)退出
请输入你的选择:'''
while 1:
choice = raw_input(info).strip()
if choice == '1':
print '入栈操作'.center(40,'*')
value = raw_input('请输入入栈元素:')
stack.append(value)
print '元素 %s 入栈成功...'%(value)
elif choice == '2':
print '出栈操作'.center(40,'*')
if len(stack) == 0:
print '栈为空'
else:
item = stack.pop()
print '元素 %s 出栈成功...'%(item)
elif choice == '3':
print '查看栈长度'.center(40,'*')
print len(stack)
elif choice == '4':
print '查看栈内容'.center(40,'*')
print stack
elif choice == '5':
print '您已退出'
break
else:
print '请输入正确选择!!!'
3. 队列
• 队列是先进先出(FIFO):
• 类似于去餐厅买饭排队;
#!/usr/bin/env python
#coding:utf-8
stack = []
info = """
队列操作
1)入队
2)出队
3)查看队列
4)退出
请输入您的选择:"""
while 1:
choice = raw_input(info).strip()
if choice == '1':
print '入队操作'.center(40,'*')
value = raw_input('请输入入队元素:')
stack.append(value)
print '元素 %s 入队成功'%(value)
elif choice == '2':
print '出队操作'.center(40,'*')
if len(stack) == 0:
print '队列为空'
else:
item = stack.pop(0)
print '元素 %s 出队成功'%(value)
elif choice == '3':
print '查看队列'.center(40,'*')
print stack
elif choice == '4':
print '您已退出'
break
else:
print '请输入正确选择!!!'
二、字典
1. 生成多个银行卡号
卡号由 6 位组成, 前 3 位是 610 , 后面的依次是 001, 002, 003…100, 且初始化密码为”000000”
#!/usr/bin/env python
#coding:utf-8
cardids = []
for i in range(1, 101): # i = 1, 2, 3, 4...100
a = "610%.3d" %(i) # a= 610001, 610002, 610003, ....610100
cardids.append(a)
print {}.fromkeys(cardids, "000000")
2. 通过字典实现case语句
目前python不支持case语句,且实现case语句有如下两种方式:
• if…elif…elif…else…
• 字典实现
1) if语句实现
#!/usr/bin/env python
#coding:utf-8
from __future__ import division
num1 = input('请输入num1: ')
ope = raw_input('请输入运算符: ')
num2 = input('请输入num2: ')
#case 语句
if ope == '+':
print num1+num2
elif ope == '-':
print num1-num2
elif ope == '*':
print num1*num2
elif ope == '/':
print num1/num2
else:
print '您输入的运算符不合法!'
2) 字典实现
#!/usr/bin/env python
#coding:utf-8
from __future__ import division
num1 = input('请输入num1: ')
ope = raw_input('请输入运算符: ')
num2 = input('请输入num2: ')
d = {
'+' : num1+num2,
'-' : num1-num2,
'*' : num1*num2,
'/' : num1/num2
}
if not ope in d:
print 'error operator'
else:
print d[ope]
3. 用户管理系统
1)注册新用户
如果注册用户已经存在,则报错;
需要填写信息: name, passwd, gender, email,age;
2)用户登录
为防止黑客攻击,只有三次登陆即会
3)注销用户 用户注销时,需要输入用户名和正确的用户密码
4)显示用户信息 显示系统中存在所有已经注册用户的信息;
5)退出系统
下接~