列表定义
打了激素的数组,是可变数据类型,可以修改元素。
索引
正向索引和反向索引
切片
重复,连接
成员操作符
增
追加元素到列表的最后:append
增加元素到列表的指定位置:insert
增加多个元素到列表最后:extend
改
通过列表的索引,对列表某个索引值重新赋值
查
统计某个元素在列表中出现的次数:count
找到某个值在列表中的索引值:index
删
删除列表中遇到的第一个value值:remove
删除指定索引对应的值,默认是最后一个元素:pop
删除列表中第i个索引值:del li[0]
删除列表对象:del li
其他的排序及逆转
排序,如果说都是数字,按照数字大小排序;
是字母的话,按照ASCII码来排序
如何查看对应的ASCII码? ord(‘a’)
内置方法
cmp
min, max
zip
enumerate
列表构建栈和队列数据结构
栈
栈是先进后出(LIFO-first in last out);
类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,将来会用类实现)
#!/usr/bin/env python
#coding:utf-8
stack = []
info = """
栈操作
1). 入栈
2). 出栈
3). 栈长度
4). 查看栈
5). 退出
请输入你的选择:"""
# 死循环
while True:
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:
if not stack:
print "栈为空"
else:
item = stack.pop()
print "元素%s出栈成功...." %(item)
elif choice == "3":
print "查看栈长度".center(40, "*")
print len(stack)
elif choice == "4":
print "查看栈元素".center(40, "*")
if not stack:
print "栈为空"
for i in stack:
print i,
elif choice == "5":
exit()
else:
print "请输入正确的选择......"
队列
队列是先进先出(FIFO):
类似于去餐厅买饭排队;
#!/usr/bin/env python
#coding=utf-8
"""
实现队列,先进先出
1)入队enqueue
2)出队
3)查看队列长度
4)查看队列元素
"""
queue=[1,2,3,4,5]
while 1:
print """
1)入队
2)出队
3)查看队列
4)退出
"""
choice=raw_input("选择操作:")
choice=choice.strip() #去掉输入操作里面的空格
if choice == "1":
a=raw_input("输入进去队列的元素:")
queue.append(a)
elif choice == "2":
if len(queue)== 0: #判断队列是否为空
print "穷的屁都没有了"
else:
queue.pop(0) #删除第一个元素
elif choice == "3":
for i in queue: #迭代输出
print i,
elif choice == "4":
exit()
else :
print"重新选择:"
用户登录程序版本2:
用户名和密码分别保存在列表中;
用户登录时,判断该用户是否注册;
用户登录时,为防止黑客暴力破解, 仅有三次机会;
如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while….else…语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.
提示: 用户名和密码一一对应
#!/usr/bin/env python
#coding:utf-8
# 存储用户名的列表;
users = ["user1", "user2", "user3"]
# 存储用户密码的列表;
passwds = ["123", "456", "789"]
trycount = 0
while trycount<3:
inname = raw_input("name:")
# 判断用户是否存在列表中;
if not inname in users:
print "用户未注册"
break
inpasswd = raw_input("password:")
# 找到用户在用户列表中的索引值,可以间接找到该用户对应的密码;
index = users.index(inname)
if inpasswd == passwds[index]:
print "登录成功!!"
break
print "ok"
else:
print "登录失败!!"
trycount += 1
else:
print "超过三次"
#!/usr/bin/env python
#coding=utf-8
#卡号有6位组成,前三位是610,后面的依次是001,002,003....100
l=[]
for i in range(1,101):
a = "610%.3d" %(i)
l.append(a)
b={}.fromkeys(l,"000000")
print b