Python3-2020-测试开发-11- 循环

一、直接上题

练习一:

"""
0  0  0  0  0  
1  1  1  1  1  
2  2  2  2  2  
3  3  3  3  3  
4  4  4  4  4  
"""

 

代码:

for i in range(5):

    for j in range(5):


        print(i,end="\t")

    print()

 

 

练习二:九九乘法表

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

代码:

print("***************************左上角**********************************")
for i in range(1,10):

    for j in range(i,10):


        print("{0}*{1}={2}".format(i,j,i*j),end="\t")

    print()
输出:
1*1=1    
2*1=2    2*2=4    
3*1=3    3*2=6    3*3=9    
4*1=4    4*2=8    4*3=12    4*4=16    
5*1=5    5*2=10    5*3=15    5*4=20    5*5=25    
6*1=6    6*2=12    6*3=18    6*4=24    6*5=30    6*6=36    
7*1=7    7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49    
8*1=8    8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64    
9*1=9    9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81
代码:
print("***************************左下角**********************************")

for i in range(1,10):

    for j in range(1,i+1):

        print("{0}*{1}={2}".format(i,j,i*j),end="\t")

    print()

二、while  ...else...  和   for ...else...

# while...else...或者for ...else...
# 仅循环正常结束才可执行else语句,中途break,不会执行else

 

代码:

salary = []

for i in range(5):

    s = input("请录入薪资,输入q或者Q退出:")

    if s.upper() == "Q":

        print("您已退出!")
        break
    if float(s)<0:

        continue

    salary.append(float(s))
else:

    print("您已录入全部薪资!")
print("录入薪资为:{0}".format(salary))

三、循环代码中的性能问题

"""
循环代码的优化
1. 尽量减少循环内部不必要的计算
2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外面提
3. 局部变量查询较快,尽量使用局部变量
"""

 

代码:

import time

start1 = time.time()

for i in range(1000):

    result = []

    for j in range(10000):

        result.append(i*1000+j*100)

end1 = time.time()
print("耗时:{0}".format(end1-start1))


start2 = time.time()

for i in range(1000):
    result = []
    c = i*1000
    for j in range(10000):

        result.append(c+j*100)
end2 = time.time()
print("耗时:{0}".format(end2-start2))

输出:

"""
耗时:1.8224585056304932
耗时:1.5470783710479736
"""

 四、zip并行迭代

"""并行迭代"""

names = ("宝一","宝二","宝三")
ages = (18,19,20)
jobs = ("teacher","mother","dancer")

for name,age,job in zip(names,ages,jobs):

    print("{0}--{1}--{2}".format(name,age,job))

输出

宝一--18--teacher
宝二--19--mother
宝三--20--dancer

 

posted @ 2020-05-08 17:14  旅行没有终点  阅读(126)  评论(0编辑  收藏  举报