案例:使用while循环求1..100的和

思考:

套用原有基础模式,之后再思考其他的。


while循环的基本语法:
对于循环次数已知的情况,建议使用while循环

因为是知道次数的,所以可以用一个计数器程序里面,计数器一般都是从0开始的,而不是从1开始。

但是如果真的想要从1开始计数,也没关系。

# ① 定义一个计数器(初始化一个计数器)
i = 0或1
# ② 编写while循环结构条件
while 循环条件(判断 计数器 是否达到了目标位置):
    循环体1
    循环体2
    ...
    # ③ 在循环内部更新计数器-------------如果不更新,那么一直都是一个数,原地不动。让他们+1,可以在某个时间点,某个数值点,达到预定的地方。
    i = i + 1 或 i += 1


接下来继续,要求是1---100的,OK,知道了是有计算次数的,

开始套用:

定义一个while循环,让其可以帮助我们计算 1 + 2 + 3 + 4 + 5 ... + 100,结果:5050

一步步来:

使用while循环,循环100次

# 第一步:初始化计数器----因为是从1开始加的,所以这里不用i =0 ,否则后面还要每个+1。
i = 1
# 第二步:编写while循环条件
while i <= 100:       
    print(i)        #  1 2 3 4 5 6 7 8 9 10...
    # 第三步:循环内更新计数器的值
    i += 1


先运行试试-----图示

继续思考

我们小时候学习数学,计算结果,也是  1 + 2 + 3 +…… =   那么接下来,转换成代码

1.看需求,因为想要的是一个和,那么现在是没有东西,也就是变量,可以显示表达这个和的(上面的红色问号),所以,先定义一个变量。就叫result。 1 + 2 + 3 +…… = result

result   英 /rɪˈzʌlt/    n. 结果,后果;(比赛或选举的)结果;(通过调查、研究、计算而获得的)结果;

2.变量之后要怎么定义? 上图中,已经看到,while循环中,每次都是+1,那么result怎么把这些值,都综合在一起进行相加?-----------------把result和   i   进行关联。想办法,让result = 变量i累加后的结果。我们先把  result = 0  ,之后不管怎么相加,都不影响。

3.开始关联result和   i 。

第一次,我的结果是1,第二次,结果是2.-------我用每次的次数+每次的结果 =所有次数的结果(1--100每次的结果的和)

接下来细化:

第一次循环式,i = 1,result = 0,如果想获取累加的结构,则result = result + i

1 = 0 + 1    -------------这个时候,result = 1,因为代码从上而下进行,一直覆盖。result = 1 这个值,继续给下面用,因为计数器更新,i += 1,i变成2,i= 2 这个值,继续给下面用,每次我们打印一次看看结果对不对。

第二次循环式,然后i <= 100,i 此时 = 2,继续执行循环内部代码

i = 2,result = 1,如果想获取累加的结构,则result = result + i

3= 1 + 2    -------------这个时候,result = 2,因为代码从上而下进行,一直覆盖。result = 2  这个值,继续给下面用,每次我们打印一次看看结果对不对。

理清现在结果:第一次+第二次    此时计算就是 :1+2=3       ok  和上面我们计算的结果一致,验证自己思考和代码是没有错的。就很棒。下面开始写代码


代码:


# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
    # 第五步:循环累加变量i
    result = result + i

    print(f'现在是第{i}次计算,现在的结果:{result}')
    # 第三步:更新计数器的值
    i += 1


图示:

之后可以进行代码简化

注:跳出来的print,i的次数会加1,但是后面result结果是正确的,所以可以把前面的'现在是第{i}次计算',删除掉,不影响的。

最终代码:


# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
    # 第五步:循环累加变量i
    result += i
    # 第三步:更新计数器的值
    i += 1
print(f'1..100的和是:{result}')

最终图示:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐