Python 中的 if 判断与嵌套 for 循环
Python 是一种广泛使用的编程语言,其简洁易读的语法深受开发者的喜爱。在 Python 中,条件判断和循环是两个非常重要的概念。本文将介绍如何在 if
判断中直接嵌套 for
循环,并通过示例帮助大家更好地理解这一用法。
1. 基本概念回顾
1.1 if
语句
if
是用来进行条件判断的语句。如果条件为真,则执行相应的代码块;如果为假,代码块将被跳过。
基本的 if
语句结构如下:
if condition:
# 执行代码块
1.2 for
循环
for
循环用于遍历序列(如列表、元组、字典、集合或字符串等)中的元素。
基本的 for
循环结构如下:
for item in iterable:
# 执行代码块
2. if 判断中的嵌套 for 循环
在某些情况下,我们可能需要在 if
判断中使用 for
循环,以便在满足特定条件时对一组数据进行迭代处理。可以将 for
循环放在 if
语句的代码块中,从而实现这一目的。
2.1 基本示例
让我们通过下面的示例来理解如何在 if
判断中嵌套 for
循环。
假设我们有一个学生成绩的列表,并希望输出所有及格学生的姓名。我们定义一个及格线,即成绩大于等于 60 分。
students = {
"Alice": 85,
"Bob": 45,
"Charlie": 75,
"Daisy": 50,
"Eva": 90
}
passing_students = []
passing_score = 60
for name, score in students.items():
if score >= passing_score:
passing_students.append(name)
print("及格的学生有:", passing_students)
在上述代码中,我们首先定义了一个包含学生姓名和成绩的字典 students
。我们设置 passing_score
为 60,然后使用 for
循环遍历字典中的每一个学生成绩。在 if
判断中,我们检查每个学生的成绩是否及格,如果及格则将其姓名添加到 passing_students
列表中。最终,我们输出及格的学生姓名。
3. 复杂示例
在某些情况下,我们可能需要在 if
判断中嵌套多个 for
循环。例如,假设我们有一个产品及其价格的字典,我们希望根据一定的折扣来计算最终价格。如果价格大于一定值,则单独计算折扣后价格。
以下是一个示例代码,展示如何在 if
语句中使用嵌套的 for
循环。
products = {
"Laptop": 1200,
"Smartphone": 800,
"Tablet": 300,
"Headphones": 100
}
discounts = {
"Laptop": 0.1, # 10% 折扣
"Smartphone": 0.05, # 5% 折扣
"Tablet": 0, # 无折扣
"Headphones": 0.2 # 20% 折扣
}
threshold_price = 500
final_prices = {}
for product, price in products.items():
if price > threshold_price:
for discount_name, discount_value in discounts.items():
if product == discount_name:
final_price = price - (price * discount_value)
final_prices[product] = final_price
print("满足条件的最终价格为:")
for product, final_price in final_prices.items():
print(f"{product}: {final_price:.2f} 元")
3.1 解析代码
在这个示例中:
- 我们定义了一个
products
字典,包含产品名称和价格。 - 我们还定义了一个
discounts
字典,用来表示所有产品的折扣 percentage。 - 在
for
循环中,我们遍历每一个产品和它的价格。如果产品价格超过了设定的阈值(threshold_price
),我们再进行第二层的for
循环,检查该产品的折扣信息。 - 最后,我们使用格式化输出显示满足条件的最终价格。
4. 总结
通过以上的示例,我们看到如何将 for
循环嵌套在 if
判断中,以实现更复杂的逻辑。这种方法可以使代码更具灵活性,并能应对更复杂的业务需求。
嵌套循环通常会增加代码的复杂度,因此在使用时要注意代码逻辑的清晰性。同时,保持代码的可读性和可维护性是编程时的重要原则。
希望通过本文的介绍和示例,你能对 Python 中的 if
判断和嵌套 for
循环有更深入的理解和掌握。 编写出更高质量的代码,提升编程能力!