for 循环
特指用于遍历容器类型数据,(遍历 循环 迭代 都是一个意思)就是把所有的数据一个一个拿出来的过程, while循环有局限性,不能遍历无序容器数据
setvar = {"a","b","c","d"}
i = 0
length = len(setvar)
while i<=length:
print(setvar[i])
i+=1

set类型不支持
for循环语法
for i in 可迭代性数据: 把可迭代性数据中的值一个一个拿出啦赋值给i,到最后没有值可以拿了,循环终止.
修改上述脚本
setvar = {"a","b","c","d"}
for i in setvar:
print (i)
执行测试
[root@node10 python]# python3 test.py b a c d
遍历字符串
setvar = "窗前明月光"
for i in setvar:
print (i)
执行
[root@node10 python]# python3 test.py 窗 前 明 月 光
遍历列表
listvar = [1,2,3,4,5]
for i in listvar:
print (i)
执行
[root@node10 python]# python3 test.py 1 2 3 4 5
遍历元组
tuplevar = (6,7,8,7)
for i in tuplevar:
print(i)
执行
[root@node10 python]# python3 test.py 6 7 8 7
遍历字典
在遍历字典的时,默认遍历的是键,不是值
dictvar = {'a':1,'b':2,'c':3}
for i in dictvar:
print(i)
执行
[root@node10 python]# python3 test.py a b c
range的用法 返回一个可迭代的对象
range(start,end,step) start 代表开始值 end 代表结束值 但是高位取不到,取到之前的一个值 step 步长
举例
# 只有一个参数的情况:
for i in range(8): # 0 ~7
print(i)
# 有2个参数的情况
for i in range(5,8): # 5 6 7
print(i)
# 有3个参数逇情况 (正序)
for i in range(1,11,3):#
print(i)
print("<==>")
# 倒序
for i in range(9,0,-1):
print(i)
执行
[root@node10 python]# python3 test.py 0 1 2 3 4 5 6 7 5 6 7 1 4 7 10 <==> 9 8 7 6 5 4 3 2 1
容器,列表等的取值举例
# 二级容器
lst = [1,2,3,(4,5,6)]
# res = lst[-1]
# res = res[-1]
# print(res,"<22>")
print(lst[-1][-1],"容器")
# 二级列表
listvar = [4,5,6,[77,88]]
# 二级元组
tuplevar = (1,2,3,(5,6,7))
# 二级字典
dic = {"a":1,"b":{"c":1,"d":2}}
print(dic["b"]["d"],"字典")
# 二级集合 : 集合中的数据必须是可哈希的数据(不可变的数据)
set1 = {1,2,3,4,(1,2,3)}
# 四级容器
lst = [1,2,3,4, [5,6,(11,123,{"c":22,"f":33},34),7,8] ]
# 找出33
res = lst[-1][2][-2]["f"]
print(res,"四级容器")
执行
[root@node10 python]# python3 test.py 6 容器 2 字典 33 四级容器
变量的解包操作
a,b = 1,2 c,d = [5,6] print(a,b,c,d) 执行 [root@node10 python]# python3 test.py 1 2 5 6
遍历等长二级容器
里面的元素是容器数据,容器里面的元素个数相同
listvar =[ ["我","my"], ["你","you"],["他","he"]]
# a,b = ["我","my"] # 变量的解包操作
for a,b in listvar:
print(a,b)
执行
[root@node10 python]# python3 test.py 我 my 你 you 他 he
如果不等长
listvar =[ ["我","my"], ["你","you"],["他"]]
# a,b = ["我","my"] # 变量的解包操作
for a in listvar:
for b in a:
print(b) #一个一个取
执行
[root@node10 python]# python3 test.py 我 my 你 you 他
