循环:计算机程序中某些代码的反复执行
分类:计数循环和条件循环
一、计数循环:循环重复次数一定
基本格式:
注意:
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年后到期存款总额为多少?
扫描二维码关注公众号,回复:
17234932 查看本文章
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,"年后资金被全部取出") #输出结果