Python for循环语句

时间:2024-03-04 12:13:48

for循环

1.for循环可以遍历任意序列,例如:一个字符串,一个列表

  • 遍历,就是查看序列中的每个元素(for循环、遍历、迭代,是自动播放所有序列当中的元素)
  • 可迭代的对象可以使用for循环进行遍历,例如:字符串、列表、字典、元组和集合
  • for循环里面有一个隐藏的机制,就是自动执行index+1,直到遍历完整个序列

2.列表的迭代

#for循环中,i为变量,用来接收序列中的元素
list=[\'蓝天\',\'白云\',\'大地\']

for i in list:
    print(i)

输出结果:
蓝天
白云
大地

3.使用列表的切片,对列表中的字符串进行遍历

#先使用切片将列表中的第一个元素取出,然后再对其进行遍历取值
list=[\'python\',\'good\',\'very\']
for i in list[0]:
    print(i)

输出结果:
p
y
t
h
o
n

4.使用for循环遍历字典

  • for循环遍历字典,默认是遍历字典的所有key值
  • 如果想要取字典的value值,需要先取出所有的value值后,进行遍历取值,或者遍历key,打印的时候打印value值
  • 也可以使用for循环取字典的键值对
dict={"name":"小花","age":18,"性别":""}
#默认遍历字典中的key值
for i in dict:
    print(i)

输出结果:
name
age
性别

#直接遍历字典中的key值,打印出对应的value值
for j in dict:
    print(dict[j])

输出结果:
小花
18#直接遍历字典中的value值
for m in dict.values():
    print(m)

输出结果:
小花
18#取字典中的键值对

for h in dict.items():
    print(h)

for key,value in dict.items():
    print(\'{} 的值为 {}\'.format(key,value))

输出结果:
(\'name\', \'小花\')
(\'age\', 18)
(\'性别\', \'\')
name 的值为 小花
age 的值为 18
性别 的值为 女

5.for循环的嵌套:主要用来自动化测试中的用例获取

(九九乘法表、冒泡排序的实现)

range()函数  用在你想重复执行多少次计算的时候,没有现存的列表可以循环,就可以使用range(),返回的是一个可迭代对象

range(1,10)  表示从1开始到10结束,但不包括10.    输出结果为:0,1,2,3,4,5,6,7,8,9

range(1,10,2)  表示从1开始到10结束,但不包括10,步长为2    输出结果为:1,3,5,7,9

#如果不传起始值,默认是从0开始,如果设置起始值,则就从设置的起始值开始
for i in range(10):
    print(i,end=\' \')  #输出结果添加位置参数,返回结果之间用空格连接

输出结果:
0 1 2 3 4 5 6 7 8 9 

6.for循环嵌套实例

总结:for循环的嵌套,外层取一个值,内层取全部值,然后再返回外层继续变量,直到遍历完所有值。(外层走一个,内层走一圈)

list=[1,2,3,4,5]
list2=["A","B","C","D","E"]

for i in list:
    print(i,end=\' \')
    for j in list2:
        print(j,end=\' \')

输出结果:
1 A B C D E 2 A B C D E 3 A B C D E 4 A B C D E 5 A B C D E 

使用for循环实现九九乘法表

使用for打印九九乘法表
提示:

输出九九乘法表,格式如下:(每项数据之间空一个Tab键,可以使用"\t"1 * 1 = 1
1 * 2 = 2    2 * 2 = 4
1 * 3 = 3    2 * 3 = 6      3 * 3 = 9
1 * 4 = 4    2 * 4 = 8      3 * 4 = 12    4 * 4 = 16
1 * 5 = 5    2 * 5 = 10    3 * 5 = 15    4 * 5 = 20    5 * 5 = 25
1 * 6 = 6    2 * 6 = 12    3 * 6 = 18    4 * 6 = 24    5 * 6 = 30    6 * 6 = 36
1 * 7 = 7    2 * 7 = 14    3 * 7 = 21    4 * 7 = 28    5 * 7 = 35    6 * 7 = 42    7 * 7 = 49
1 * 8 = 8    2 * 8 = 16    3 * 8 = 24    4 * 8 = 32    5 * 8 = 40    6 * 8 = 48    7 * 8 = 56    8 * 8 = 64
1 * 9 = 9    2 * 9 = 18    3 * 9 = 27    4 * 9 = 36    5 * 9 = 45    6 * 9 = 54    7 * 9 = 63    8 * 9 = 72    9 * 9 = 81

\'\'\'
\'\'\'
for循环的嵌套使用
外层跑一个里层跑一圈
python range() 函数可创建一个整数列表,一般用在 for 循环中
使用方法:range(start, stop,step)
参数说明:
start:计数从start开始,默认为从0开始,eg:range(5)--->等价于range(0,5)
stop:计数到stop计数,但是不包含stop。eg:range(0,5)-->[0,1,2,3,4]
step:步长,默认为1,eg:range(5)--->等价于range(0,5,1)

生成一个1到9的整数列表 range(1,10)
当i=1时,j=1
当i=2时,j=1,2
当i=3时,j=1,2,3
当i=4时,j=1,2,3,4
....依次类推
当i=n时,j=n  ,所以j的取值范围由i的取值决定。
所以j的取值范围为range(1,i+1)
依次进行遍历,生成如下的乘法口诀表
\'\'\'

for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}".format(j,i,i*j),end=\'\t\')
    #此处的print()输出每执行完一轮后,打印计算结果到控制台
    print()

输出结果:
1*1=1    
1*2=2    2*2=4    
1*3=3    2*3=6    3*3=9    
1*4=4    2*4=8    3*4=12    4*4=16    
1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81    

重点:测试用例的获取

cases = [
    [\'case_id\', \'case_title\', \'url\', \'data\', \'excepted\'],
    [1, \'用例1\', \'www.baudi.com\', \'001\', \'ok\'],
    [4, \'用例4\', \'www.baudi.com\', \'002\', \'ok\'],
    [2, \'用例2\', \'www.baudi.com\', \'002\', \'ok\'],
    [3, \'用例3\', \'www.baudi.com\', \'002\', \'ok\'],
    [5, \'用例5\', \'www.baudi.com\', \'002\', \'ok\'],
]
\'\'\'使用i进行遍历cases里面的值,方法:for i in cases  使用i进行确定循环多少次,方法:for i in range(len(cases))\'\'\'

#print(cases[0][4],cases[1][4])
\'\'\'
以此得到的结论为:
这是读取到对应的第一行的数据         这是读取到对应第二行的数据
cases[0][0]:cases[1][0]            cases[0][0]:cases[2][0]
cases[0][1]:cases[1][1]            cases[0][1]:cases[2][1]
cases[0][2]:cases[1][2]            cases[0][2]:cases[2][2]
cases[0][3]:cases[1][3]            cases[0][3]:cases[2][3]
cases[0][4]:cases[1][4]            cases[0][4]:cases[2][4]
以上结论,发生变化的为:
i 取值范围是(1,6)1,2,3,4,5 --->也就是cases[1],cases[2]...cases[5]取出的是列表中第二条到最后一条的数据
j 取值范围是(0,5)0,1,2,3,4--->也就是cases[0][0]...cases[0][j],对应取出的是第一条数据中的每个值
使用for循环嵌套,当i=1,j分别为0,1,2,3,4  对应的dic的对应关系就为,0,0--1,0 0,1--1,1  0,2--1,2...
依次类推就得到了上面的对应关系。
将对应关系存储到一个列表中, 然后再存储到一个空列表中,然后再遍历当前的列表,转换为字典的形式展示 
\'\'\'

li1 = []
li2 = []
for i in range(1, len(cases)):
    li=[]
    for j in range(0, len(cases) - 1):
        dic = (cases[0][j], cases[i][j])
        li.append(dic)
    li1.append(li)
print(li1)
for k in range(len(li1)):
    li2.append(dict(li1[k]))
print(li2)

输出结果:
[[(\'case_id\', 1), (\'case_title\', \'用例1\'), (\'url\', \'www.baudi.com\'), (\'data\', \'001\'), (\'excepted\', \'ok\')], [(\'case_id\', 4), (\'case_title\', \'用例4\'), (\'url\', \'www.baudi.com\'), (\'data\', \'002\'), (\'excepted\', \'ok\')], [(\'case_id\', 2), (\'case_title\', \'用例2\'), (\'url\', \'www.baudi.com\'), (\'data\', \'002\'), (\'excepted\', \'ok\')], [(\'case_id\', 3), (\'case_title\', \'用例3\'), (\'url\', \'www.baudi.com\'), (\'data\', \'002\'), (\'excepted\', \'ok\')], [(\'case_id\', 5), (\'case_title\', \'用例5\'), (\'url\', \'www.baudi.com\'), (\'data\', \'002\'), (\'excepted\', \'ok\')]]
[{\'case_id\': 1, \'case_title\': \'用例1\', \'url\': \'www.baudi.com\', \'data\': \'001\', \'excepted\': \'ok\'}, {\'case_id\': 4, \'case_title\': \'用例4\', \'url\': \'www.baudi.com\', \'data\': \'002\', \'excepted\': \'ok\'}, {\'case_id\': 2, \'case_title\': \'用例2\', \'url\': \'www.baudi.com\', \'data\': \'002\', \'excepted\': \'ok\'}, {\'case_id\': 3, \'case_title\': \'用例3\', \'url\': \'www.baudi.com\', \'data\': \'002\', \'excepted\': \'ok\'}, {\'case_id\': 5, \'case_title\': \'用例5\', \'url\': \'www.baudi.com\', \'data\': \'002\', \'excepted\': \'ok\'}]