你好,我是雨霖八珞,同名B站UP主。关注合集不迷路。以下内容为个人教学,真诚分享,欢迎交流。

上一篇我们学了 while 循环的基本语法,知道它可以处理“不确定循环次数”的情况,
今天我们通过三个案例,来感受while循环的实际应用。
一个小球从100m的高度落下,每次弹回原高度的一半,假定小球的最小弹起高度为0.01m。问:
(1)总共弹起多少次?
(2)小球这个过程中走了多少米?
分析:
如图所示,初始高度为100,即 high = 100
第一次下落100米,弹起50米;
第二次下落50米,弹起25米
……
这个过程反复循环,什么时候结束呢?
小球的最小弹起高度为0.01m,也就意味着只要弹起高度≥0.01m,还可以继续循环
程序代码如下:
关键语句说明:
1、循环体包含三件事
2、while循环的结束条件是:弹起的高度<0.01m
运行结果为:
一张纸的厚度为0.001毫米,珠穆朗玛峰的高度为8848.86米。需要对折多少次,纸的厚度才能超过珠峰的高度?
分析:
每次对折,纸的厚度翻倍。 paper = paper * 2
这就是循环体(要不断做的事情)
做到什么时候结束呢?做到厚度超过珠峰高度
注意单位换算:珠峰高度是 8848.86 米,纸的厚度是0.001毫米
程序代码如下:
运行结果如下:
说实话,这个结果有些意外,仅仅只需要对折34次,就能超过珠峰的高度了。看来,迭代复利的力量太强了。
从键盘输入两个数,自己设计算法,利用while循环打印出它们的所有公因数。
分析:
公因数就是能同时整除这两个数的数。
从1开始,1能同时整除吗?能,就打印
2能同时整除吗?能,就打印
……
这就是需要循环的语句,反复判断某一个数(从1开始,不断增1)是否能同时整除。
到什么时候结束呢?
很显然,一直增加到两个数中较小的那个数。
程序代码如下:
运行结果如下:
这里用到了min()函数,用于返回两个数中的较小值,更简洁。
也可以手动判断:
if a < b:
n = a
else:
n = b
本公众号内容均为原创。如需转载或引用,请先联系我。谢谢你的尊重。
觉得不错的话,伙伴们记得关注、在看、转发和点赞哈!