列表list:打了激素的数组
数组是只能存储同一种数据类型的结构:
定义列表:
• 定义一个空列表
t[0] = 11
列表是可变数据类型,可以修改元素;
•下标是从0开始计算,比如list[0]读取的是列表的第1个元素;
• 0代表从哪个索引开始切片;
• 3代表切片到哪个位置,并且不包含第三个索引;
• 2代表切片的步长;
>>> list1
['fentiao', 5, 'male']
>>> list1[0:3:2]
li[1:]
# 逆序显示
li[::-1]
列表的添加:
• 列表可通过append方法添加元素;追加元素到列表的最后:"
• 列表可通过insert方法添加元素;追加元素到列表指定位置:
列表的修改
• 通过列表的索引,对列表某个索引值重新赋值;
• 查看某个列表元素的索引值用index方法;
列表的删除
删除列表中遇到的第一个 value 值;
# 排序,如果说都是数字,按照数字大小排序 ;
# 是字母的话,按照 ASCII 码来排序;
列表练习:
用户登录程序版本2:
用户名和密码分别保存在列表中;
用户登录时,判断该用户是否注册;
用户登录时,为防止黑客暴力破解, 仅有三次机会;
如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while....else...语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.
提示: 用户名和密码一一对应
代码如下:
#!/usr/bin/env python
#coding:utf-8
user=["westos","student","root"]
passwd=["westos","student","root"]
trycount=0
while trycount<3:
inname=raw_input("请输入用户名:")
if inname not in user:
print":给用户未注册"
break
inpasswd=raw_input("请输入登陆密码:")
i=user.index(inname)
if inpasswd==passwd[i]:
print "登陆成功"
break
else:
print "密码错误"
trycount+=1
else:
print"超过三次"
栈是先进后出(LIFO-first in last out);
类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,将来会用类实现)
代码如下:
#!/usr/bin/env python
#coding:utf-8
print'''
栈操作
1).入栈
2).出栈
3).栈长度
4).查看栈
5).退出
'''
stack =[]
while True:
choice=input("请输入你的选择:")
if choice ==1:
value=raw_input("请输入入栈元素:")
stack.append(value)
print "元素%s入栈成功..." %(value)
elif choice ==2:
if len(stack)==0:
print"栈为空"
else:
item=stack.pop()
print"元素%s出栈成功..." %(item)
elif choice==3:
print len(stack)
elif choice==4:
if len(stack)==0:
print"栈为空"
else:
for i in stack:
print i,
elif choice==5:
exit()
else:
队列是先进先出(FIFO):
类似于去餐厅买饭排队
"""
队列操作
1). 入队:enQueue
2). 出队:
3). 查看队列
4). 退出
"""
代码如下:
#!/usr/bin/env python
#coding:utf-8
print'''
队操作
1).入队
2).出队
3).队长度
4).查看队
5).退出
'''
queue =[]
while True:
choice=input("请输入你的选择:")
if choice ==1:
value=raw_input("请输入入队元素:")
queue.append(value)
print "元素%s入队成功..." %(value)
elif choice ==2:
if len(queue)==0:
print"队为空"
else:
item=queue.pop(0)
print"元素%s出队成功..." %(item)
elif choice==3:
print len(queue)
elif choice==4:
if len(queue)==0:
print"队为空"
else:
for i in queue:
print i,
elif choice==5:
exit()
else:
print"请输入正确的选择..."
数组是只能存储同一种数据类型的结构:
定义列表:
• 定义一个空列表
list = [ ]
• 定义一个包含元素的列表,元素可以是任意类型,包括数值类型,列表,字符串等均可。li = [1, 1.0, "westos", (1,2,3,4), [1,2,3,4]]
定义元组t = (1, 1.0, "westos", (1,2,3,4), [1,2,3,4]
t[0] = 11
列表是可变数据类型,可以修改元素;
li[0] = 13
•下标是从0开始计算,比如list[0]读取的是列表的第1个元素;
•list[-1]读取的是列表的倒数第1个元素;
• 0代表从哪个索引开始切片;
• 3代表切片到哪个位置,并且不包含第三个索引;
• 2代表切片的步长;
>>> list1
['fentiao', 5, 'male']
>>> list1[0:3:2]
['fentiao', 'male']
去掉列表的第一个元素li[1:]
# 逆序显示
li[::-1]
[[1, 2, 3, 4], (1, 2, 3, 4), 'westos', 1.0, 13]
li*2
li1+li2(不建议这样连接两个列表,后面有效率更高的方法 )
成员操作符:
列表的添加:
• 列表可通过append方法添加元素;追加元素到列表的最后:"
allow_ip.append("172.25.254.250")
• 列表可通过insert方法添加元素;追加元素到列表指定位置:
allow_ip.insert(0, "172.25.254.51")
allow_ip.extend(["172.25.254.45", "172.25.56.21"])
列表的修改
• 通过列表的索引,对列表某个索引值重新赋值;
allow_ip[0] = "192.168.1.1"
• 查看某个列表元素的索引值用index方法;
buy.index("apple")
• 查看某个列表元素出现的次数用count方法;
列表的删除
删除列表中遇到的第一个 value 值;
buy.remove("apple")
del buy[0]
del buy[1:]
del buy
# 排序,如果说都是数字,按照数字大小排序 ;
# 是字母的话,按照 ASCII 码来排序;
# **** 如何查看对应的 ASCII 码 ? ord('a')
列表练习:
用户登录程序版本2:
用户名和密码分别保存在列表中;
用户登录时,判断该用户是否注册;
用户登录时,为防止黑客暴力破解, 仅有三次机会;
如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while....else...语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.
提示: 用户名和密码一一对应
代码如下:
#!/usr/bin/env python
#coding:utf-8
user=["westos","student","root"]
passwd=["westos","student","root"]
trycount=0
while trycount<3:
inname=raw_input("请输入用户名:")
if inname not in user:
print":给用户未注册"
break
inpasswd=raw_input("请输入登陆密码:")
i=user.index(inname)
if inpasswd==passwd[i]:
print "登陆成功"
break
else:
print "密码错误"
trycount+=1
else:
print"超过三次"
列表构建栈和队列数据结构
栈栈是先进后出(LIFO-first in last out);
类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,将来会用类实现)
代码如下:
#!/usr/bin/env python
#coding:utf-8
print'''
栈操作
1).入栈
2).出栈
3).栈长度
4).查看栈
5).退出
'''
stack =[]
while True:
choice=input("请输入你的选择:")
if choice ==1:
value=raw_input("请输入入栈元素:")
stack.append(value)
print "元素%s入栈成功..." %(value)
elif choice ==2:
if len(stack)==0:
print"栈为空"
else:
item=stack.pop()
print"元素%s出栈成功..." %(item)
elif choice==3:
print len(stack)
elif choice==4:
if len(stack)==0:
print"栈为空"
else:
for i in stack:
print i,
elif choice==5:
exit()
else:
print"请输入正确的选择..."
队列是先进先出(FIFO):
类似于去餐厅买饭排队
"""
队列操作
1). 入队:enQueue
2). 出队:
3). 查看队列
4). 退出
"""
代码如下:
#!/usr/bin/env python
#coding:utf-8
print'''
队操作
1).入队
2).出队
3).队长度
4).查看队
5).退出
'''
queue =[]
while True:
choice=input("请输入你的选择:")
if choice ==1:
value=raw_input("请输入入队元素:")
queue.append(value)
print "元素%s入队成功..." %(value)
elif choice ==2:
if len(queue)==0:
print"队为空"
else:
item=queue.pop(0)
print"元素%s出队成功..." %(item)
elif choice==3:
print len(queue)
elif choice==4:
if len(queue)==0:
print"队为空"
else:
for i in queue:
print i,
elif choice==5:
exit()
else:
print"请输入正确的选择..."