一、列表

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)退出系统

下接~