需求:输入三角形的3边,如果两边的长度大于第三条边,则代表是一个合法三角形
# 1、提示用户输入三角形的三边长度
a = int(input('请输入第一条边的长度:'))
b = int(input('请输入第二条边的长度:'))
c = int(input('请输入第三条边的长度:'))
# 2、判断两边之和是否大于第3条边
if (a + b > c) and (a + c > b) and (b + c > a):
print('是一个合法的三角形')
else:
print('不是一个合法的三角形')
需求:世界杯案例,世界杯小组赛的比赛规则是我们的球队与其他三支球队进行比赛,然后根据总成绩(积分)确定出线资格。小组赛球队实力已知(提示用户输入各球队实力),我们通过一个数字表示。如果我们赢1局得3分,平一局得1分,输一局得0分,最终求球队总成绩。
我们的球队实力:20
1号球队的实力:10
2号球队的实力:20
3号球队的实力:30
如果:我们 > 1号球队,赢了,得3分
? 我们 == 2号球队,平局,得1分
? 我们 < 3号球队,输了,得0分
则小组赛最终结果 = 3 + 1 + 0 = 4分
# 1、提示用户输入我们球队与其他三个球队的实力
a = int(input('请输入我们球队的实力值:'))
b = int(input('请输入1号球队的实力值:'))
c = int(input('请输入2号球队的实力值:'))
d = int(input('请输入3号球队的实力值:'))
# 2、开始比赛,求每次比赛的成绩
avsb = (a > b) * 3 + (a == b)
avsc = (a > c) * 3 + (a == c)
avsd = (a > d) * 3 + (a == d)
# 3、总成绩
score = avsb + avsc + avsd
# 4、输出总成绩
print(f'我们球队最终的总成绩:{
score}')
知识点:布尔类型转换为整型,True => int(True) = 1,False => int(False) = 0。这是手工类型转换,在Python中,如果布尔类型参与算术运算,则会发生自动类型转换。
现实生活中,也有很多循环的应用场景:
(1)食堂阿姨打菜:接过顾客的餐盘→询问菜品→打菜→递回餐盘,重复以上过程,直到所有顾客的菜都打完了
(2)快递员送快递:查看送件地址→赶往目的地→电话告知收件人→收件人签收→交快递件,重复以上过程,直到所有需要送的快递都处理完了。
(3)公交司机……
(4)作业流程……
……
以上场景都有一个共同的特点:有条件地重复地做一件事,每一次做的事情不同但类似。
程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环。
思考:假如我有个女朋友,有一天我们闹矛盾生气了,女朋友说:道歉,说100遍“老婆大人,我错了”。这个时候程序员会怎么做?
答:100遍print(‘老婆大人,我错了’)
太麻烦了,有没有更好的办法呢?我们难道print输出语句要复制粘贴100次嘛?
答:其实不用这么麻烦,以上输出代码中有很多重复的地方,我们只要重复执行100次相同的代码即可,这就是循环!
循环的作用是什么?
答:让代码高效的重复执行
在Python中,循环一共分为两大类:while循环与for循环
思考问题:while循环和for循环如何选择呢?
① 对于循环次数已知的情况,建议使用while循环
② 对于循环次数未知的情况,建议使用for循环
# ① 定义一个计数器(初始化一个计数器)
i = 0或1
# ② 编写while循环结构
while 循环条件(判断 计数器 是否达到了目标位置):
循环体1
循环体2
...
# ③ 在循环内部更新计数器
i = i + 1 或 i += 1
普及小知识:在计算机程序中,计数器大部分都是从0开始的。
总结:while循环三步走
① 初始化计数器
② 编写循环条件(判断计数器是否达到了目标位置)
③ 在循环内部更新计数器
while循环入门案例:使用while循环,循环输出100遍“老婆大人,我错了”
# ① 初始化计数器
i = 0
# ② 编写循环条件(判断计数器是否达到了100)
while i < 100:
print('老婆大人,我错了')
# ③ 在循环体内部更新计数器
i += 1
建议大家使用Debug调试工具,查看while循环的运行流程。
# ① 初始化计数器
i = 0
# ② 编写循环条件(判断计数器是否达到了100)
while i < 100:
print('老婆大人,我错了')
# ③ 在循环体内部更新计数器
i += 1
下断点,开始Debug调试:
① 代码都是顺序执行,首先执行到第2行,对变量i进行赋值操作,初始值为0
② 当程序遇到while循环时,首先要把我们的计数器与循环条件进行比较i < 100,如果条件成立,则进入循环内部,执行内部代码。
③ 在循环体内部,针对本次循环进行计数器更新操作 i = i + 1或 i += 1
④ 更新完毕后,把更新后的计数器与循环条件再次进行比较i < 100,如果条件成立,继续进入循环内部,执行内部代码。
…
⑤ 直到,i更新后结果为100时,再次进行循环条件判断,发现不满足,则整个while循环结束。
while循环流程图:
案例1:使用while循环求1…100的和
分析:定义一个while循环,让其可以帮助我们计算 1 + 2 + 3 + 4 + 5 … + 100,结果:5050
大问题拆解为小问题:
① 使用while循环,循环100次
# 第一步:初始化计数器
i = 1
# 第二步:编写循环条件
while i <= 100:
print(i) # 1 2 3 4 5 6 7 8 9 10...
# 第三步:更新计数器的值
i += 1
② 在循环体内部,累计求和
# 第四步:定义一个变量,用于得到最终的运算结果
result = 0
# 第五步:想办法,让result = 变量i累加后的结果
③ 最终代码
# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
# 第五步:循环累加变量i
result += i
# 第三步:更新计数器的值
i +=