接https://www.cnblogs.com/airlinp/p/12522620.html
8.4 循环计算
程序中,利用循环流程,进行重复计算。
实例演示:
利用循环以及赋值运算等,计算1-100的和。
按照数学等差数列公式,可以轻松得出“和”s=(1+100)*100/2,但是现在我们需要使用程序循环,进行原始的方法计算,s=1+2+3+4…+100
# 0-100求和 # 定义计数器,初始化 i = 1 # 定义最终结果变量,初始化 s = 0 # 循环条件 while i <= 100: # 累计求和 s += i # 计数器累加 i += 1 print("1-100求和结果是%d" % s)
由上述代码可知:
- 在此例子中,需要定义2个变量,分别为i用于计数器、s用于存储累加结果;
- 根据原始计算方法的思想,s=1+2+3+4…+100,而其中1、2、3、4…100则是循环递增的整数,使用i来进行代替;
- 1、2、3、4…100的形式,在程序中使用i+=1的方式来循环表达,那么将s带入后的s=s+i,即s+=1循环计算求和;
由上图可知:
- 1-100累加求和,运用到了while循环,+=赋值运算符,除开几行注释,仅使用6行代码,即可解决需求;
- 1-100累加求和的例子,将人脑最直观、最原始的计算逻辑,通过程序的方式,进行变通表达,程序员设计和传递思想逻辑,程序进行最繁琐的运算,最终解决问题,这就是程序的魅力之一;
8.5 1-100中所有偶数求和
首先明确偶数的意义,就是能被2整除的整数;
# 1-100中的偶数求和
# 定义计数器,初始化
i = 1
# 定义最终结果变量,初始化
s = 0
# 循环条件
while i <= 100:
# 判断偶数
if i % 2 == 0:
s += i
# 计数器累加
i += 1
print("1-100中所有偶数求和结果是%d" % s)
有上述代码可知:
- 在前一节的1-100累加求和中,我们使用到了计数器i和求和结果s这两个变量,在1-100中所有偶数求和,依然要用到这两种变量;
- 在程序中,判断一个正整数是否为偶数,则使用“%”取余运算符,整数除以2余数为0,则该整数就是偶数,表达式为i%2==0;
- 明确上述两点后,就可以按照8.4章节中求和的代码逻辑即可解决需求;
- 尤其注意,在i += 1 前面的缩进块,一定不要与s += 1对齐,否则i += 1循环计数就属于if偶数判断的代码块,进入运算死循环,我就由于这种粗疏,导致程序死循环,可见仅仅一个tab,就可以使程序变成死循环,Python对格式的要求果然很严格;