真正有用的程序不会对所有情况给出同一个答案。今天学习条件判断,让程序根据年龄、成绩、余额或密码作出不同反应。
age = 20
if age >= 18:
print("你已经成年")
if 表示“如果”。条件后面必须有英文冒号,条件成立时执行的代码需要缩进四个空格。
二、if 与 else
age = int(input("请输入年龄:"))
if age >= 18:
print("你已经成年")
else:
print("你还未成年")
else 表示前面的条件不成立时执行的分支,它后面不需要再写条件。
三、比较运算符
| | |
|---|
> | | age > 18 |
< | | age < 18 |
>= | | age >= 18 |
<= | | age <= 18 |
== | | name == "TIAN" |
!= | | name != "TIAN" |
= 是赋值,== 才是判断是否相等。这是初学者最容易混淆的地方之一。
四、使用 elif 处理多种情况
score = int(input("请输入成绩:"))
if score >= 90:
print("等级:优秀")
elif score >= 80:
print("等级:良好")
elif score >= 60:
print("等级:及格")
else:
print("等级:不及格")
Python 从上到下检查条件,遇到第一个成立的分支后就停止。
因此判断范围时,通常应该从更严格的条件写到更宽松的条件。
五、组合多个条件
and 表示两个条件必须同时成立:
if age >= 18 and has_ticket:
print("允许进入")
or 表示至少一个条件成立:
if day == "星期六" or day == "星期日":
print("今天是周末")
not 会反转真假:
if not is_raining:
print("今天没有下雨")
六、先检查输入范围
score = int(input("请输入0到100之间的成绩:"))
if score < 0 or score > 100:
print("输入无效")
elif score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
也可以使用连续比较:
if 0 <= score <= 100:
print("成绩有效")
基础练习
今日项目:智能消费建议器
balance = float(input("请输入当前余额:"))
product = input("请输入商品名称:").strip()
price = float(input("请输入商品价格:"))
if balance < 0 or price < 0:
print("输入错误:金额不能为负数")
elif price > balance:
print(f"余额不足,无法购买{product}")
else:
remaining_balance = balance - price
if remaining_balance < 100:
print(f"可以购买{product},但购买后余额较低。")
else:
print(f"可以购买{product}。")
print(f"购买后余额:{remaining_balance:.2f}元")
查漏测试
条件判断的本质,是把现实世界的规则准确翻译成代码。