# ### for 循环 特指用于遍历容器类型数据
# 遍历 循环 迭代 都是一个意思 就是把所有的数据一个一个拿出来的过程
setvar = {"a","b","c","d"}
# while循环有局限性,不能遍历无序容器数据
'''
i = 0
length = len(setvar)
while i<=length:
print(setvar[i])
i+=1
'''
# for 循环应用而生
'''
for i in 可迭代性数据:
把可迭代性数据中的值一个一个拿出啦赋值给i
到最后没有值可以拿了,循环终止.
'''
# 遍历字符串
strvar = "今天我最棒"
for i in strvar:
print(i)
# 遍历列表
listvar = [1,2,3,4,5]
for i in listvar:
print(i)
# 遍历元组
print("<==>")
tuplevar = (6,7,8,7)
for i in tuplevar:
print(i)
# 遍历集合
for i in setvar:
print(i)
# 遍历字典
# 在遍历字典的时,默认遍历的是键,不是值
dictvar = {'a':1,'b':2,'c':3}
for i in dictvar:
print(i)
# 二级容器
lst = [1,2,3,(4,5,6)]
# res = lst[-1]
# res = res[-1]
# print(res,"<22>")
print(lst[-1][-1],"<33>")
# 二级列表
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"],"<=33==>")
# 二级集合 : 集合中的数据必须是可哈希的数据(不可变的数据)
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,"<======333=====>")
# 变量的解包操作
a,b = 1,2
c,d = [5,6]
print(a,b,c,d,"<444>")
# 遍历等长的二级容器,(里面的元素是容器数据,容器里面的元素个数相同)
listvar =[ ["王健林","王思聪"], ["马云","马化腾"],["王宝强","马蓉"]]
# a,b = ["王健林","王思聪"] # 变量的解包操作
for a,b in listvar:
print(a,b)
# 不等长的二级容器 (老老实实一层一层遍历)
listvar =[ ["王健林","王思聪"], ["马云","马化腾"],["王宝强"]]
for i in listvar:
for j in i:
print(j)
# 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)
# 用for 来 改写99乘法表(作业)