在Python编程中,条件控制让程序能够根据不同情况做出决策。就像生活中的选择一样,程序也需要根据条件执行不同的操作。
条件语句通过检查条件的真假来决定执行哪段代码。如果条件为真,执行一块代码;如果条件为假,可能执行另一块代码或者什么都不做。
Python中使用if、elif和else来构建条件语句:
if 条件1:
# 条件1为真时执行的代码
elif 条件2:
# 条件2为真时执行的代码
else:
# 所有条件都为假时执行的代码需要注意的几点:
每个条件后面必须有冒号
执行代码需要缩进(通常是4个空格)
elif可以没有,也可以有多个
else可以省略
来看一个基础例子:
age = 18
if age >= 18:
print("你已经成年了")
print("可以考驾照了")如果age大于等于18,会执行缩进的两行print语句。
当有两种可能情况时,使用if-else:
score = 85
if score >= 60:
print("考试及格")
else:
print("考试不及格")当有多种情况需要判断时,使用if-elif-else:
temperature = 25
if temperature > 30:
print("天气很热")
elif temperature > 20:
print("天气温暖")
elif temperature > 10:
print("天气凉爽")
else:
print("天气寒冷")条件判断中常用的比较运算符:
a = 10
b = 5
print(a > b) # 大于:True
print(a < b) # 小于:False
print(a >= b) # 大于等于:True
print(a <= b) # 小于等于:False
print(a == b) # 等于:False
print(a != b) # 不等于:True可以组合多个条件:
age = 25
has_license = True
# and:两个条件都满足
if age >= 18 and has_license:
print("可以开车")
# or:至少满足一个条件
if age < 12 or age > 65:
print("可以享受优惠")
# not:条件取反
is_raining = False
if not is_raining:
print("天气晴朗,可以出门")score = float(input("请输入成绩:"))
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 70:
grade = "中等"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
print(f"你的成绩等级是:{grade}")username = input("请输入用户名:")
password = input("请输入密码:")
correct_username = "admin"
correct_password = "123456"
if username == correct_username and password == correct_password:
print("登录成功!")
else:
print("用户名或密码错误")在if语句内部还可以包含其他if语句:
num = int(input("请输入一个数字:"))
if num % 2 == 0:
print("这是一个偶数")
if num % 4 == 0:
print("而且能被4整除")
else:
print("但不能被4整除")
else:
print("这是一个奇数")
if num % 3 == 0:
print("而且能被3整除")简单的条件判断可以用一行代码完成:
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 输出:成年
score = 85
result = "及格" if score >= 60 else "不及格"
print(result) # 输出:及格Python 3.10引入了match-case语句,类似于其他语言的switch语句:
def get_day_type(day):
match day:
case "周一" | "周二" | "周三" | "周四" | "周五":
return "工作日"
case "周六" | "周日":
return "周末"
case _:
return "无效输入"
print(get_day_type("周六")) # 输出:周末import random
target = random.randint(1, 100)
attempts = 0
print("猜数字游戏开始!数字在1-100之间")
while True:
guess = int(input("请输入你猜的数字:"))
attempts += 1
if guess == target:
print(f"恭喜!你猜对了,用了{attempts}次")
break
elif guess < target:
print("猜小了,再试试")
else:
print("猜大了,再试试")height = float(input("请输入身高(米):"))
weight = float(input("请输入体重(公斤):"))
bmi = weight / (height ** 2)
if bmi < 18.5:
category = "体重过轻"
elif bmi < 24:
category = "正常范围"
elif bmi < 28:
category = "超重"
else:
category = "肥胖"
print(f"你的BMI是:{bmi:.2f}")
print(f"体重状况:{category}")amount = float(input("请输入购物金额:"))
if amount >= 500:
discount = 0.8 # 8折
discount_text = "8折"
elif amount >= 300:
discount = 0.9 # 9折
discount_text = "9折"
elif amount >= 100:
discount = 0.95 # 95折
discount_text = "95折"
else:
discount = 1.0 # 无折扣
discount_text = "无折扣"
final_amount = amount * discount
saved = amount - final_amount
print(f"原价:{amount:.2f}元")
print(f"折扣:{discount_text}")
print(f"实付:{final_amount:.2f}元")
print(f"节省:{saved:.2f}元")缩进要一致:使用4个空格,不要混用空格和Tab键
条件要明确:确保条件表达式返回True或False
避免过度嵌套:太深的嵌套会让代码难以阅读
使用括号:复杂的条件可以用括号明确优先级
# 好的写法
if (age >= 18 and has_license) or is_emergency:
print("可以开车")
# 避免太深的嵌套
if condition1:
if condition2:
if condition3:
# 这样嵌套太深,考虑重构要掌握条件控制,建议:
从简单的if语句开始练习
理解比较运算符和逻辑运算符
多写实际应用的小程序
注意代码的缩进和格式
记住,条件控制是编程的基础。通过条件判断,程序才能根据不同情况做出智能决策。开始可能觉得简单,但随着程序复杂度的增加,合理的条件判断会变得很重要。多练习,你会越来越熟练。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!