一、引言
1、对控制结构的简要介绍
控制结构是编程语言中用于控制程序执行流程的语句。它们分为两大类:
- 条件语句:
if
语句:根据条件执行代码块。elif
语句:如果之前的条件不成立,则尝试此条件。else
语句:如果所有条件都不满足,则执行此代码块。
- 循环语句:
for
循环:遍历序列中的每个元素。while
循环:只要条件为真,就重复执行代码块。
2、控制结构在编程中的重要性
控制结构在编程中的重要性在于它们能够使程序根据不同的条件或重复执行特定的代码块。这使得程序能够做出决策、执行重复任务以及管理复杂的流程,从而实现各种功能和算法。
- 决策能力:通过条件语句(如if、elif、else),程序能够根据不同的条件执行不同的代码路径,从而实现决策功能。
- 重复执行:循环语句(如for、while)允许程序重复执行代码块,这对于处理重复性任务、遍历数据结构等场景至关重要。
- 流程管理:控制结构能够有效地管理程序的执行流程,使得程序能够按照逻辑顺序执行,提高代码的可读性和可维护性。
- 算法实现:控制结构是实现算法的基础,例如排序、搜索、动态规划等算法都离不开条件语句和循环语句的支持。
- 灵活性和扩展性:合理使用控制结构可以使程序更加灵活和可扩展,能够适应不同的输入和场景,提高程序的通用性。
总之,控制结构是编程语言的核心组成部分,掌握它们对于编写功能丰富、逻辑复杂的程序至关重要。
二、条件语句
1、if语句的基本使用
在Python中,if
语句用于基于条件执行代码块。以下是if
语句的基本使用方法:
-
单条件
if
语句:if condition: # 如果条件为真,则执行这里的代码 print("条件为真,执行此代码块。")
-
多条件
if
语句:if condition1: # 如果条件1为真,则执行这里的代码 print("条件1为真,执行此代码块。") elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 print("条件1不为真,条件2为真,执行此代码块。") else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
if
语句中的代码块:if
语句后的冒号(:
)标志着代码块的开始。- 代码块应该缩进(通常是4个空格或1个制表符)。
- 正确的缩进是Python中控制结构的关键。
-
注意事项:
- 条件表达式应该用括号包围,特别是在多个条件的情况下。
- 不要忘记在
if
语句后添加冒号。 - 确保代码块的缩进正确。
-
示例:
age = 20 if age >= 18: print("您已成年。") else: print("您还未成年。")
在这个示例中,如果age
变量大于或等于18,则打印出“您已成年。”;否则,打印出“您还未成年。”。
记住,if
语句的基本目的是根据条件评估的结果来决定是否执行特定的代码块。
2、else子句的使用
在Python中,else
子句通常与if
语句一起使用,用于提供当if
条件不满足时的备选执行路径。以下是else
子句的基本使用方法:
-
简单
if
语句后的else
子句:if condition: # 如果条件为真,则执行这里的代码 else: # 如果条件不为真,则执行这里的代码 print("条件不为真,执行此代码块。")
-
elif
子句与else
子句:if condition1: # 如果条件1为真,则执行这里的代码 elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
else
子句与for
或while
循环:for item in collection: # 循环体代码 else: # 当循环正常完成时执行,即循环体未被`break`语句打断时执行 print("循环体已全部执行完毕。")
在使用else
子句时,需要注意以下几点:
else
子句必须与if
语句一起使用,并且位于if
语句之后。else
子句中的代码块应该有相同的缩进级别,以保持代码结构清晰。- 在
elif
子句中,每个elif
和对应的else
都必须有相同的缩进级别。 - 在
for
或while
循环中,else
子句在循环正常结束时执行,即循环体未被break
语句打断时执行。
例如:
x = 10
if x > 0:
print("x 是正数")
else:
print("x 不是正数")
在这个例子中,如果x
大于0,则打印出"x 是正数";否则,打印出"x 不是正数"。
3、elif子句的使用
在Python中,elif
(else if的简写)子句用于在if
语句的条件不满足时提供其他的条件检查。elif
子句通常用于实现多条件分支逻辑。以下是elif
子句的基本使用方法:
-
if-elif-else
结构:if condition1: # 如果条件1为真,则执行这里的代码 elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
elif
子句的顺序:elif
子句应该按照从最可能到最不可能的顺序排列。- 这样可以让程序更快地找到满足条件的
elif
子句并执行。
-
注意事项:
- 每个
elif
和对应的else
都必须有相同的缩进级别。 - 如果第一个
if
条件不满足,Python会检查第一个elif
条件,如果满足则执行对应的代码块。 - 如果所有的
if
和elif
条件都不满足,则执行else
子句(如果有的话)。
- 每个
-
示例:
grade = 'B' if grade == 'A': print("优秀!") elif grade == 'B': print("良好。") elif grade == 'C': print("及格。") else: print("加油,再努力!")
在这个示例中,根据grade
变量的值,程序会打印出不同的消息。如果grade
是’A’,则打印"优秀!";如果是’B’,则打印"良好。";如果是’C’,则打印"及格。";如果都不是,则打印"加油,再努力!"。elif
子句是实现复杂条件判断的常用方法,它们使得代码更加清晰和易于理解。
4、嵌套if语句
嵌套if
语句是指在一个if
语句块内部使用另一个if
语句。嵌套if
语句允许你根据多个条件执行不同的代码路径。以下是嵌套if
语句的基本用法:
- 嵌套
if
语句:x = 10 if x > 0: print("x 是正数") if x < 100: print("x 是一个小于100的正数") else: print("x 不是正数")
在这个例子中,首先检查x
是否大于0。如果是,则进一步检查x
是否小于100。
2. 注意事项:
- 确保内部
if
语句的缩进级别与外部if
语句相同。 - 每个嵌套的
if
语句都必须有明确的条件,以避免无限循环。
- 示例:
age = 21 if age >= 18: print("您已成年。") if age >= 21: print("您已超过法定饮酒年龄。") else: print("您还未达到法定饮酒年龄。") else: print("您还未成年。")
在这个例子中,首先检查age
是否大于或等于18,如果满足,则进一步检查是否大于或等于21。
嵌套if
语句在处理复杂逻辑时非常有用,但过度使用或错误使用可能导致代码难以理解和维护。因此,在编写嵌套if
语句时,请确保逻辑清晰,并尽可能保持简洁。
三、逻辑运算符
1、and
、or
和not
运算符的使用
在Python中,and
、or
和not
运算符用于逻辑运算,它们用于组合多个条件或对单个条件取反。
and
运算符
- 如果两个条件都为真,则
and
运算符的结果为真。 - 否则,结果为假。
condition1 = True
condition2 = False
result = condition1 and condition2
print(result) # 输出:False
or
运算符
- 如果两个条件中至少有一个为真,则
or
运算符的结果为真。 - 否则,结果为假。
condition1 = True
condition2 = False
result = condition1 or condition2
print(result) # 输出:True
not
运算符
- 对单个条件取反。
- 如果条件为真,则
not
运算符的结果为假。 - 否则,结果为真。
condition = True
result = not condition
print(result) # 输出:False
注意事项
- 逻辑运算符两侧的操作数通常为布尔值。
- 逻辑运算符的运算顺序为从左到右。
- 逻辑运算符可以用于任何布尔表达式。
示例
# 组合使用 and、or 和 not 运算符
x = 10
y = 20
result = (x > 5) and (y > 10)
print(result) # 输出:False
result = (x > 5) or (y > 10)
print(result) # 输出:True
result = not (x == y)
print(result) # 输出:True
这些运算符在编写条件语句时非常有用,它们可以帮助你构建复杂的逻辑判断。正确使用逻辑运算符可以提高代码的清晰度和可读性。
2、在条件语句中的应用
逻辑运算符在条件语句中的应用非常广泛,它们允许你组合多个条件以进行更复杂的决策。在Python中,主要的逻辑运算符包括and
、or
和not
。
and
运算符
and
运算符用于检查两个或多个条件是否同时为真。- 在
if
语句中,你可以使用and
来组合多个条件。
x = 10
y = 20
if x > 5 and y > 10:
print("x 和 y 都大于它们的阈值。")
在这个例子中,只有当x
大于5且y
大于10时,代码块才会被执行。
or
运算符
or
运算符用于检查两个或多个条件中是否至少有一个为真。- 在
if
语句中,你可以使用or
来提供一个备选条件。
x = 10
y = 5
if x > 5 or y > 10:
print("x 或 y 至少有一个大于它们的阈值。")
在这个例子中,x
大于5或者y
大于10,代码块都会被执行。
not
运算符
not
运算符用于取反单个条件。- 在
if
语句中,你可以使用not
来反转一个条件的逻辑。
x = 5
if not (x > 10):
print("x 不大于10。")
在这个例子中,not
运算符用于检查x
是否不大于10,如果x
不大于10,代码块会被执行。
注意事项
- 使用逻辑运算符时,要注意保持代码的可读性,适当使用空格和换行。
- 逻辑运算符两侧的操作数应该有相同的数据类型,通常为布尔值。
- 在组合使用多个逻辑运算符时,要注意运算的优先级,
and
的优先级高于or
。
通过合理使用逻辑运算符,可以使得条件语句更加精确和强大,能够处理更加复杂的逻辑判断。
四、循环结构
1、 for
循环的基本使用
在Python中,for
循环是一种遍历序列(如列表、元组、字符串)或任何可迭代对象的迭代语句。以下是for
循环的基本使用方法:
-
基本
for
循环:for item in iterable: # 遍历iterable中的每个item print(item)
-
for
循环中的迭代变量:- 迭代变量通常命名为
item
,但你可以使用任何有效的变量名。 - 每次迭代时,
item
都会被赋予iterable
中的下一个元素。
- 迭代变量通常命名为
-
for
循环中的代码块:- 代码块应该缩进(通常是4个空格或1个制表符)。
- 正确的缩进是Python中控制结构的关键。
-
示例:
# 遍历列表中的每个元素 fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
在这个示例中,for
循环会遍历fruits
列表中的每个元素,并打印出来。
5. for
循环中的else
子句:
for
循环还可以包含一个可选的else
子句,它在外部循环的每次迭代都没有被break
语句中断时执行。else
子句通常用于执行清理工作或当循环正常完成时的一些代码。
for item in iterable:
# 循环体代码
else:
# 当循环正常完成时执行
print("循环体已全部执行完毕。")
for
循环是Python中非常强大的一个特性,它广泛用于数据处理、文件操作等场景。通过for
循环,你可以轻松地遍历和操作序列中的每个元素。
2、while
循环的基本使用
在Python中,while
循环是一种基于特定条件重复执行代码块的循环结构。以下是while
循环的基本使用方法:
-
基本
while
循环:while condition: # 当condition为真时,重复执行这里的代码 print("条件为真,继续循环。")
-
循环的基本结构:
while
关键字标志着循环的开始。- 条件表达式应该用括号包围。
- 代码块应该缩进(通常是4个空格或1个制表符)。
-
条件判断:
- 循环将继续进行,直到条件不再为真。
- 条件通常是一个布尔表达式,它决定了循环是否继续执行。
-
示例:
count = 0 while count < 5: print(count) count += 1
在这个示例中,while
循环会重复执行,直到count
变量的值达到5。
5. 注意事项:
- 避免无限循环,确保条件最终会变为假。
- 正确地缩进代码块,保持代码的可读性。
while
循环是实现重复任务和持续检查条件的重要工具。它常用于处理需要多次迭代的情况,直到满足某个条件为止。正确使用while
循环可以提高程序的效率和可维护性。
五、循环控制语句
1、break
语句的使用
在Python中,break
语句用于立即退出当前所在的循环结构,无论是for
循环还是while
循环。以下是break
语句的基本使用方法:
- 在
for
循环中使用break
:for item in iterable: if item == "special": break # 退出for循环 print(item)
在这个例子中,如果循环中的item
等于"special",break
语句将导致循环立即终止。
2. 在while
循环中使用break
:
count = 0
while count < 5:
print(count)
count += 1
if count == 3:
break # 退出while循环
在这个例子中,当count
等于3时,break
语句将导致while
循环立即终止。
3. 注意事项:
break
语句只能用于它所在的循环层次。- 一旦执行了
break
语句,循环结构将立即结束,循环体中剩余的代码将不再执行。 - 使用
break
时,应该确保循环最终会结束,以避免产生无限循环。break
语句是控制循环执行的关键方式之一,它允许你在满足特定条件时提前退出循环,从而避免不必要的迭代。正确使用break
可以使代码更加高效和灵活。
2、 continue
语句的使用
在Python中,continue
语句用于跳过当前循环的剩余代码,并开始下一次迭代。当continue
语句执行时,当前的循环迭代会立即终止,程序控制流会跳回到循环的开始,检查循环条件,如果条件为真,则开始下一次迭代。
以下是continue
语句的基本使用方法:
- 在
for
循环中使用continue
:for item in iterable: if item == "special": continue # 跳过当前迭代,继续下一次迭代 print(item)
在这个例子中,如果循环中的item
等于"special",continue
语句将导致当前迭代立即终止,并开始下一次迭代。
2. 在while
循环中使用continue
:
count = 0
while count < 5:
count += 1
if count == 3:
continue # 跳过当前迭代,继续下一次迭代
print(count)
在这个例子中,当count
等于3时,continue
语句将导致当前迭代立即终止,并开始下一次迭代。
3. 注意事项:
continue
语句只能用于它所在的循环层次。- 使用
continue
时,应该确保它不会导致循环提前结束,除非这是你想要的效果。 continue
语句通常用于跳过不需要的迭代,或者在循环中执行特定条件下的操作。continue
语句是控制循环执行的另一种方式,它允许你在满足特定条件时跳过当前迭代,从而提高循环的效率和准确性。正确使用continue
可以使代码更加灵活和易于维护。
3、pass语句的使用
在Python中,pass
语句是一个空操作,它不执行任何操作,通常用作占位符或保持代码结构的完整性。当你的代码需要一个语句,但你不希望它执行任何实际操作时,可以使用pass
。
以下是pass
语句的基本使用方法:
-
基本
pass
语句:pass # 这是一个空操作,不执行任何操作
-
在函数定义中使用
pass
:def example_function(): pass # 函数中使用pass作为占位符
在这个例子中,example_function
是一个空函数,它不包含任何实际的代码。
3. 在类定义中使用pass
:
class ExampleClass:
pass # 类中使用pass作为占位符
在这个例子中,ExampleClass
是一个空类,它没有定义任何属性和方法。
4. 注意事项:
pass
语句通常用于保持代码结构的完整性,特别是在需要一个语句的位置,但又不希望执行任何操作时。- 在函数或类中使用
pass
作为占位符,可以确保你的代码遵循Python的语法规则,即使函数或类暂时没有实现任何功能。pass
语句虽然是一个空操作,但在某些情况下,它是必要的,以保持代码的清晰和一致性。正确使用pass
可以使代码更加整洁,并且有助于未来的代码维护和扩展。
六、练习题和示例
条件语句和循环结构的练习题
- 年龄判断:
编写一个程序,根据输入的年龄,判断一个人是否可以投票(假设投票年龄为18岁)。
age = int(input("请输入年龄:"))
if age >= 18:
print("可以投票。")
else:
print("还未到投票年龄。")
- 打印三角形:
使用for
循环打印一个直角三角形。
for i in range(1, 6):
for j in range(1, i + 1):
print("*", end=" ")
print()
- 猜数字游戏:
编写一个猜数字游戏,程序随机生成一个1到100之间的整数,玩家有10次机会猜出这个数字。
import random
secret_number = random.randint(1, 100)
for attempt in range(10):
guess = int(input("请猜一个1到100之间的整数:"))
if guess < secret_number:
print("太小了!")
elif guess > secret_number:
print("太大了!")
else:
print(f"恭喜你,猜对了!秘密数字是 {secret_number}。")
break
if attempt == 9:
print("你没有足够的尝试次数来猜出数字。")
实际问题的解决示例
问题1:计算个人所得税
假设个人所得税的计算方式如下:
- 如果月收入小于等于5000元,则无需缴纳个人所得税。
- 如果月收入在5000元到15000元之间,则按5%的税率缴纳。
- 如果月收入在15000元到30000元之间,则按10%的税率缴纳。
- 如果月收入超过30000元,则按20%的税率缴纳。
income = float(input("请输入您的月收入:"))
if income <= 5000:
tax = 0
elif income <= 15000:
tax = income * 0.05
elif income <= 30000:
tax = income * 0.10
else:
tax = income * 0.20
print(f"您的个人所得税为:{tax:.2f}元。")
问题2:计算1到100之间所有偶数的和
sum_even = 0
for i in range(1, 101):
if i % 2 == 0:
sum_even += i
print(f"1到100之间所有偶数的和是:{sum_even}")
本文是转载文章 珩小派,版权归原作者所有。建议访问原文,转载本文请联系原作者。