您的位置:首页 > 编程语言 > Python开发

Test@python关于列表及字典的应用_(1)

2018-01-04 16:41 676 查看

一、列表

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

下接~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: