信息学测python知识点(五)循环结构

循环:计算机程序中某些代码的反复执行

分类:计数循环和条件循环

一、计数循环:循环重复次数一定

基本格式:

 注意:

1、冒号“:”:代表下一行是循环体的第一行;

2、for循环所包含的语句是以缩进为标志的。

3、循环变量从列表中按顺序取值,每取到一次值,循环体就执行一次(因此,列表中的元素个数影响循环次数)

for i in range(1,10,2):
    print("中国")

运行结果:
中国
中国
中国
中国
中国

for i in range(1,10,2):
    print(i)

运行结果:
1
3
5
7
9

for i in range(1,10):
    print(i)

运行结果:
1
2
3
4
5
6
7
8
9

for i in range(10):
    print(i)

运行结果:
0
1
2
3
4
5
6
7
8
9

总结:
range()函数可以生成一个整数列表
基本格式:range(初始值,终值,步长) 
range(10)——生成[0,1,2,3,4,5,6,7,8,9]数字列表,左闭右开的区间,默认初始值为0,默认步长为1
range(1,10)——生成[1,2,3,4,5,6,7,8,9]数字列表,默认步长为1
range(10,1,-2)——生成[10,8,6,4,2]数字列表,终值的前一个

课本例题:

1.如果将5万元存入银行,选择一年定期自动转存的存款方式,假设5年内利率没有发生变化,
均为1.25%,问:5年后到期存款总额为多少?

rate = 0.0125  # 给利率变量赋值
money = 50000  # 给存款总额变量赋初值(单位:元)
for year in range(1,6):
    money = money*(1+rate)  # 计算每年新的存款总额
print("五年后的存款总额为:",money, "元")  # 输出结果

代码可视化:

FOR循环演示

2.打印如图所示的九九乘法表。

for i in range(1,10):
    for j in range(1,i+1):
        print("{0:1}*{1:1}={2:2}  ".format(j,i,j*i),end=" ") #按格式输出
    print()  #换行

运行过程:
当i=1时,j从1循环到1,输出每一个式子,用空格隔开,所以i=1的所有表达式都在第一行
当i=2时,j从1循环到2,输出每一个式子,用空格隔开,所以i=2的所有表达式都在第二行
当i=3时,j从1循环到3,输出每一个式子,用空格隔开,所以i=3的所有表达式都在第三行
......
当i=9时,j从1循环到9,输出每一个式子,用空格隔开,所以i=9的所有表达式都在第九行

总结:i控制了几行,j控制了每一行有几列。

保留2位小数:

(1)使用round()函数

a=1.2345
print(a,2)

运行结果:
1.23

(2)使用format()函数

print('数字{1}{2}和{0}'.format("123",456,'789'))
运行结果:
数字456789和123


基本格式:print("{},{}". format(a,b))   
{0}表示第0个参数
{0:1}表示第0个参数,输出长度为1个字符

a=1.2345
print("{:.2f}".format(a))
运行结果:
1.23

注意:.2f 代表2位小数

二、条件循环一般用于循环次数未知的情况。当循环条件成立时,才执行循环体。

基本格式:

j=1
while j<=10:
    print(j)

运行结果:
1
1
1
...

程序进入死循环,无法停止。原因:j的值一直为1,j<=10这个条件永远成立,print()语句一直执行

j=1
while j<=10:
    print(j)
    j=j+1

运行结果:
1
2
3
4
5
6
7
8
9
10

j=1
while j<=10:
    print(j)
    j=j+2

运行结果:
1
3
5
7
9

结论:以上两段程序中因为j的变化规律不同,导致print输出语句重复的次数是不一致的。但都是在j<=10这个条件不成立的情况下,结束循环。

#计算1+2+3+...+10的和
j=1
s=0
while j<=10:
    s=s+j
    j=j+1
print(s,j)

运行结果:
55 11

j=1
s=1
while j<10:
    j=j+1
    s=s+j    
print(s,j)

运行结果:
55 10

课本例题:本金10万元,存款每年的年利率是3.7%,每年都会取出两万元,第几年将所有的钱全部取出。

money=100000                             #本金100000
year=0                                  #年数初始值为1	                                 
while money>=0:
    money=round(money*(1+0.037),2)-20000 #计算存储一年后的本息和减去取出的钱,得出下一年的本金   	
    year+=1                             #理财年数加1
print(year,"年后资金被全部取出")	        #输出结果

猜你喜欢

转载自blog.csdn.net/qq_28782419/article/details/127456994