Python 使用 if、elif、else 关键字来实现条件判断,根据不同的条件执行不同的代码块。Python 的条件控制特点:
if 语句
基本语法
示例
# 示例 1:简单的 if 语句age = 18if age >= 18: print("你已经成年了!")# 示例 2:多行代码块score = 85if score >= 60: print("恭喜你通过考试!") print(f"你的分数是:{score}") print("继续加油!")# 示例 3:条件表达式可以是任何返回布尔值的表达式name = "Alice"if name: # 非空字符串为 True print(f"欢迎,{name}!")
if...else 语句
基本语法
if 条件表达式: 执行语句块1else: 执行语句块2
示例
# 示例 1:判断奇偶数number = 7if number % 2 == 0: print(f"{number} 是偶数")else: print(f"{number} 是奇数")# 示例 2:判断成绩是否及格score = 55if score >= 60: print("及格")else: print("不及格")# 示例 3:判断用户权限is_admin = Falseif is_admin: print("欢迎管理员!您拥有所有权限。")else: print("欢迎普通用户!")
if...elif...else 语句
基本语法
if 条件表达式1: 执行语句块1elif 条件表达式2: 执行语句块2elif 条件表达式3: 执行语句块3else: 执行语句块4
示例
# 示例 1:成绩等级判断score = 85if score >= 90: grade = "A"elif score >= 80: grade = "B"elif score >= 70: grade = "C"elif score >= 60: grade = "D"else: grade = "F"print(f"你的成绩等级是:{grade}")# 示例 2:季节判断month = 3if month in [12, 1, 2]: season = "冬季"elif month in [3, 4, 5]: season = "春季"elif month in [6, 7, 8]: season = "夏季"elif month in [9, 10, 11]: season = "秋季"else: season = "无效月份"print(f"{month}月是{season}")# 示例 3:多条件判断age = 25has_license = Trueif age < 18: print("未成年,不能考驾照")elif age >= 18 and not has_license: print("已成年,可以去考驾照")elif age >= 18 and has_license: print("已有驾照,可以开车")else: print("其他情况")
嵌套条件语句
条件语句可以嵌套使用,即在一个条件语句内部再使用另一个条件语句。
示例
# 示例 1:嵌套 if 语句age = 20has_ticket = Trueif age >= 18: if has_ticket: print("可以进入电影院观看电影") else: print("请先购买电影票")else: print("未成年人需要家长陪同")# 示例 2:复杂的嵌套判断score = 85attendance = 95if score >= 60: print("笔试通过") if attendance >= 80: print("出勤率达标") if score >= 90 and attendance >= 90: print("获得优秀学生称号") else: print("表现良好") else: print("出勤率不达标,需要改进")else: print("笔试未通过,需要补考")
条件表达式(三元运算符)
Python 支持简洁的条件表达式,也称为三元运算符。
基本语法
示例
# 示例 1:简单的三元运算age = 20status = "成年人" if age >= 18 else "未成年人"print(status) # 输出:成年人# 示例 2:求两个数的最大值a, b = 10, 20max_value = a if a > b else bprint(f"最大值是:{max_value}")# 示例 3:判断奇偶number = 7result = "偶数" if number % 2 == 0 else "奇数"print(f"{number} 是{result}")# 示例 4:嵌套三元运算(不推荐,可读性差)score = 85grade = "A" if score >= 90 else ("B" if score >= 80 else "C")print(f"等级:{grade}")
实战案例
案例 1:用户登录系统
# 模拟用户登录username = "admin"password = "123456"input_user = input("请输入用户名:")input_pwd = input("请输入密码:")if input_user == username: if input_pwd == password: print("登录成功!欢迎回来!") else: print("密码错误,请重试。")else: print("用户名不存在。")
案例 2:BMI 计算器
# BMI 身体质量指数计算weight = float(input("请输入您的体重(kg):"))height = float(input("请输入您的身高(m):"))bmi = weight / (height ** 2)print(f"您的 BMI 指数是:{bmi:.2f}")if bmi < 18.5: print("体重过轻")elif 18.5 <= bmi < 24: print("体重正常")elif 24 <= bmi < 28: print("体重过重")elif 28 <= bmi < 32: print("肥胖")else: print("严重肥胖")
案例 3:简单计算器
# 简单计算器num1 = float(input("请输入第一个数字:"))operator = input("请输入运算符(+、-、*、/):")num2 = float(input("请输入第二个数字:"))if operator == "+": result = num1 + num2 print(f"{num1} + {num2} = {result}")elif operator == "-": result = num1 - num2 print(f"{num1} - {num2} = {result}")elif operator == "*": result = num1 * num2 print(f"{num1} * {num2} = {result}")elif operator == "/": if num2 != 0: result = num1 / num2 print(f"{num1} / {num2} = {result}") else: print("错误:除数不能为零!")else: print("无效的运算符!")
案例 4:年份判断(闰年)
# 判断闰年year = int(input("请输入年份:"))if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print(f"{year} 是闰年")else: print(f"{year} 不是闰年")
注意事项
缩进很重要:Python 使用缩进来区分代码块,缩进错误会导致语法错误。
条件表达式的值:
- 数字 0、空字符串
""、空列表 []、空字典 {}、None 等都被视为 False
比较运算符:
== :等于!= :不等于> :大于< :小于>= :大于等于<= :小于等于
逻辑运算符:
and :与(两个条件都为真)or :或(至少一个条件为真)not :非(取反)
成员运算符: