在学习编程的过程中,掌握控制流语句是至关重要的一步。 它们就像魔杖一样,能够控制程序的执行流程,让程序能够根据不同的条件做出不同的反应,或者重复执行特定的代码块。 本文将带你了解 Python 中最常用的控制流语句,并通过简单的例子,让你轻松掌握它们的使用方法,开启你的编程之旅。
一、条件语句:让程序会思考 (if, elif, else)
条件语句允许程序根据不同的条件执行不同的代码块。 Python 提供了 if、elif 和 else 关键字来实现条件语句。
-
if语句:判断真假,决定是否执行if语句用于判断一个条件是否为真 (True)。 如果条件为真,则执行if语句后面的代码块;否则跳过该代码块。语法:
if condition: # 如果 condition 为真,则执行这里的代码 -
elif语句:多重判断,层层递进elif语句 (else if 的缩写) 用于检查多个条件。 如果前面的if语句的条件为假,则检查elif语句的条件。 如果elif语句的条件为真,则执行elif语句后面的代码块;否则跳过该代码块。语法:
if condition1: # 如果 condition1 为真,则执行这里的代码 elif condition2: # 如果 condition1 为假,且 condition2 为真,则执行这里的代码 -
else语句:最后的选择,默认的执行else语句用于处理所有条件都不满足的情况。 如果前面的if语句和所有elif语句的条件都为假,则执行else语句后面的代码块。语法:
if condition1: # 如果 condition1 为真,则执行这里的代码 elif condition2: # 如果 condition1 为假,且 condition2 为真,则执行这里的代码 else: # 如果 condition1 和 condition2 都为假,则执行这里的代码
代码示例:
# 简单的 if 语句
age = 20
if age >= 18:
print("你已经成年了")
# if-else 语句
number = 10
if number % 2 == 0:
print("这是一个偶数")
else:
print("这是一个奇数")
# if-elif-else 语句
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D"
print(f"你的成绩等级是:{grade}")
# 嵌套的 if 语句
x = 10
y = 5
if x > 0:
if y > 0:
print("x 和 y 都是正数")
else:
print("x 是正数,但 y 不是正数")
else:
print("x 不是正数")
运行结果:
二、循环语句:让程序重复工作 (for, while)
循环语句允许程序重复执行特定的代码块,从而实现自动化处理。 Python 提供了 for 和 while 关键字来实现循环语句。
-
for循环:遍历序列,逐个处理for循环用于遍历序列 (例如字符串、列表、元组) 或其他可迭代对象。 对于序列中的每个元素,for循环都会执行一次循环体中的代码。语法:
for item in sequence: # 对于序列中的每个 item,执行这里的代码代码示例 1:遍历列表
my_list = [1, 2, 3, 4, 5] for item in my_list: print(item)运行结果:
代码示例 2:遍历字符串
my_string = "hello" for char in my_string: print(char)运行结果:
h e l l o -
while循环:条件满足,持续执行while循环用于在条件为真时重复执行代码块。 只要条件为真,while循环就会一直执行下去。 因此,在使用while循环时,务必确保循环条件最终会变为假,否则会导致无限循环。语法:
while condition: # 如果 condition 为真,则执行这里的代码代码示例:
count = 0 while count < 5: print(count) count += 1运行结果:
0 1 2 3 4 -
break语句:跳出循环,提前结束
break 语句用于跳出循环。 当 break 语句被执行时,循环会立即终止,程序会跳到循环后面的代码继续执行。
代码示例:
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
break # 跳出循环
print(number)
运行结果:
continue语句:跳过本次,继续下一次
continue 语句用于跳过当前循环迭代,继续下一次迭代。 当 continue 语句被执行时,循环会跳过当前迭代中剩余的代码,直接进入下一次迭代。
代码示例:
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
continue # 跳过当前迭代
print(number)
运行结果:
1
2
4
5
else子句:循环完成,额外奖励
else 子句可以与 for 和 while 循环一起使用。 如果循环是正常结束的 (即没有被 break 语句中断),则执行 else 子句中的代码。
代码示例:
numbers = [1, 2, 4, 5]
for number in numbers:
if number == 3:
break
print(number)
else:
print("循环正常结束") # 只有在循环没有被 break 语句中断时才会执行
运行结果:
1
2
4
5
循环正常结束
- 嵌套循环
可以在循环内部嵌套其他的循环。 嵌套循环可以用于处理多维数据或执行复杂的迭代操作。
代码示例:
for i in range(3):
for j in range(2):
print(f"i = {i}, j = {j}")
运行结果:
i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1
三、pass 语句:占位符,保持代码结构的完整
pass 语句是一个空语句,它不做任何事情。 它通常用作占位符,在需要但尚未实现代码的地方使用,以保持代码结构的完整性。
代码示例:
# 在 if 语句中使用 pass
age = 15
if age >= 18:
pass # 以后再添加处理成年人的代码
else:
print("你还未成年")
# 在函数定义中使用 pass
def my_function():
pass # 以后再添加函数的功能
运行结果:
四、练习题:巩固所学,提升技能
1、编写一个程序,判断一个年份是否为闰年。
- 题目描述: 闰年是指能被 4 整除但不能被 100 整除,或者能被 400 整除的年份。 请编写一个程序,输入一个年份,判断该年份是否为闰年,并输出相应的结果。
- 思路提示: 使用
if-elif-else语句来判断年份是否满足闰年的条件。
参考代码:
year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year} 是闰年")
else:
print(f"{year} 不是闰年")
运行结果:
2、编写一个程序,计算一个整数的阶乘。
-
题目描述: 阶乘是指从 1 乘以该数本身。 例如,5 的阶乘是 1 * 2 * 3 * 4 * 5 = 120。 请编写一个程序,输入一个整数,计算该整数的阶乘,并输出结果。
-
思路提示: 使用
for循环或while循环来计算阶乘。
参考代码:
# 使用 for 循环
number = int(input("请输入一个整数:"))
factorial = 1
if number < 0:
print("负数没有阶乘")
elif number == 0:
print("0 的阶乘为 1")
else:
for i in range(1, number + 1):
factorial *= i
print(f"{number} 的阶乘为 {factorial}")
# 使用 while 循环
number = int(input("请输入一个整数:"))
factorial = 1
i = 1
if number < 0:
print("负数没有阶乘")
elif number == 0:
print("0 的阶乘为 1")
else:
while i <= number:
factorial *= i
i += 1
print(f"{number} 的阶乘为 {factorial}")
运行结果:
3、编写一个程序,打印九九乘法表。
-
题目描述: 九九乘法表是一个经典的数学表格,用于展示 1 到 9 的乘法结果。 请编写一个程序,打印九九乘法表。
-
思路提示: 使用嵌套的
for循环来打印九九乘法表。
参考代码:
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j} * {i} = {i * j}", end="\t") # 使用 end="\t" 可以使输出对齐
print() # 换行
运行结果:
4、编写一个程序,判断一个数是否为素数。
-
题目描述: 素数是指只能被 1 和自身整除的数 (大于 1 的整数)。 请编写一个程序,输入一个整数,判断该整数是否为素数,并输出相应的结果。
-
思路提示: 使用
for循环来检查该数是否能被 2 到该数平方根之间的任何数整除。 如果能被整除,则不是素数;否则是素数。 注意对 1 和 2 进行特殊处理。
参考代码:
import math
number = int(input("请输入一个整数:"))
if number <= 1:
print(f"{number} 不是素数")
elif number == 2:
print(f"{number} 是素数")
else:
is_prime = True
for i in range(2, int(math.sqrt(number)) + 1): #只需要循环到平方根即可
if number % i == 0:
is_prime = False
break
if is_prime:
print(f"{number} 是素数")
else:
print(f"{number} 不是素数")
运行结果:
五、总结:掌握控制流,开启编程新世界
控制流语句是 Python 编程的基础,也是编写复杂程序的关键。 通过本文的学习,你应该对 Python 的控制流语句有了基本的了解,并且掌握了常用的语法和技巧