1. 引言:编程中的决策与控制
在之前的《Python零基础入门(二):深入理解Python数据类型与操作-优快云博客》掌握了常见的数据类型,并学习了如何对这些数据进行操作。而在实际编程中,程序往往需要根据不同的情况来执行不同的代码,这就需要使用流程控制语句。
流程控制让我们可以根据条件判断程序的执行路径,或者让程序反复执行某些任务。通过合理使用流程控制语句,程序可以像人类一样做出“决策”,更智能地处理不同情况。
2. 条件判断:根据条件做出决策
2.1 if 语句
if
语句是最常见的条件判断语句,用来检查一个条件是否成立。如果条件为真,程序就执行某段代码;如果条件为假,程序就跳过这一段代码。
示例:判断输入的数字是正数、负数还是零
我们可以编写一个程序,要求用户输入一个数字,然后判断这个数字是正数、负数还是零。
num = int(input("请输入一个数字:"))
if num > 0:
print("这是一个正数")
elif num < 0:
print("这是一个负数")
else:
print("这是零")
解释:
num = int(input("请输入一个数字:"))
:这行代码提示用户输入一个数字,并将输入的字符串转换为整数。if num > 0:
:判断用户输入的数字是否大于0。如果大于0,执行下一行代码print("这是一个正数")
。elif num < 0:
:如果数字不是正数,就判断它是否小于0。如果小于0,执行下一行代码print("这是一个负数")
。else:
:如果数字既不大于0也不小于0,那么它就是0,执行print("这是零")
。
这样,我们就可以根据不同的输入条件来做出决策。
2.2 else 和 elif
else
和 elif
是对 if
语句的扩展,帮助我们处理多种情况。当我们需要检查多个条件时,可以使用 elif
来增加额外的判断,而 else
用来处理所有其他不符合条件的情况。
3. 循环语句:反复执行任务
3.1 for 循环
for
循环用于遍历一个可迭代对象(如列表、字符串或数字范围)。它的作用是让程序依次对每个元素执行某个操作。
示例:输出从1到10的数字
我们可以使用 for
循环来输出从1到10的数字,代码如下:
for i in range(1, 11):
print(i)
解释:
range(1, 11)
:这是一个内置函数,生成从1到10的数字。注意,range(1, 11)
生成的数字包括1,但不包括11。for i in range(1, 11):
:这个for
循环会遍历从1到10的数字,并把每个数字赋值给变量i
。print(i)
:打印当前数字。
当我们运行这个程序时,会依次输出1到10的数字。
3.2 while 循环
while
循环是另一种常用的循环方式,它会一直执行指定的代码块,直到指定的条件不成立时才停止。
示例:计算一个数字的阶乘
阶乘是指一个正整数和所有小于它的正整数的乘积。例如,5的阶乘是 5! = 5 * 4 * 3 * 2 * 1 = 120
。
下面是一个计算数字阶乘的程序:
num = int(input("请输入一个正整数:"))
result = 1
while num > 0:
result *= num
num -= 1
print("阶乘结果:", result)
解释:
num = int(input("请输入一个正整数:"))
:这行代码提示用户输入一个正整数,并将其转换为整数。result = 1
:初始化result
为1,用于存储阶乘的结果。while num > 0:
:只要num
大于0,就继续执行循环。result *= num
:将result
乘以当前的num
,并把结果赋值给result
。num -= 1
:把num
减1,直到它变为0,停止循环。print("阶乘结果:", result)
:输出计算结果。
这段代码将计算并输出用户输入数字的阶乘。
4. 循环控制:跳出或跳过循环
4.1 break 语句
break
语句用于提前终止循环。当满足某个条件时,程序会立即跳出循环,不再执行后续的代码。
示例:通过数字猜测游戏,演示如何使用 break
结束循环
假设我们做一个简单的数字猜测游戏,用户输入一个数字,程序判断是否正确。如果猜对了,就退出循环。
while True:
guess = int(input("猜一个1到10之间的数字:"))
if guess == 5:
print("恭喜你,猜对了!")
break # 猜对了,退出循环
else:
print("再试一次")
解释:
while True:
:这是一个无限循环,程序会一直让用户输入数字,直到猜对为止。if guess == 5:
:判断用户输入的数字是否为5。如果是,就打印“恭喜你,猜对了!”并退出循环。break
:一旦猜对,break
会终止循环,程序结束。
4.2 continue 语句
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。
示例:跳过偶数,只打印奇数
我们可以使用 continue
来跳过偶数,只打印奇数:
for i in range(1, 11):
if i % 2 == 0:
continue # 如果是偶数,跳过此次循环
print(i)
解释:
if i % 2 == 0:
:判断当前数字是否为偶数。continue
:如果是偶数,跳过当前循环,进入下一次循环,打印下一个奇数。
5. 嵌套条件判断与循环
有时,我们需要将 if
条件判断和循环语句结合起来,处理更复杂的情况。例如,我们可以在循环中使用 if
判断每个元素是否符合条件,并执行不同的操作。
示例:用 for
循环检查多个数字是偶数还是奇数
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
if num % 2 == 0:
print(f"{num} 是偶数")
else:
print(f"{num} 是奇数")
解释:
- 这个程序遍历
numbers
列表中的每个数字,通过if
判断每个数字是偶数还是奇数,并打印相应的结果。
6. 实践与练习:让知识更深入
练习1:判断一个数字是否为偶数或奇数
让我们编写一个简单的程序,输入一个数字,判断它是偶数还是奇数。
num = int(input("请输入一个数字:"))
if num % 2 == 0:
print("这是偶数")
else:
print("这是奇数")
练习2:用 for
循环打印九九乘法表
通过循环输出九九乘法表,帮助理解嵌套循环的使用。
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{i} x {j} = {i * j}", end="\t")
print()
7. 总结
本篇文章讲解了条件判断和循环语句,帮助我们根据不同的输入或条件来控制程序的执行。掌握这些流程控制语句后,你可以编写更灵活和智能的程序。
- 条件判断(
if
、elif
、else
)帮助程序根据不同的条件做出不同的决策。 - 循环语句(
for
、while
)让程序反复执行相同的任务,避免重复代码。 - 控制语句(
break
、continue
)让我们更灵活地控制循环的执行。
多做练习,结合实际问题来使用条件判断和循环,你会发现它们在编程中的巨大作用。