哎呀,说起 Python 里的 if else 语句,这可太重要了!重要到什么程度呢?这么说吧,如果没有这玩意儿,你的程序就跟个只会往前冲的愣头青一样,不懂变通,没法根据实际情况做任何决定。但凡你想让你的代码“活”起来,能“思考”(当然是模拟的思考),能应对各种突发状况,那 if else 绝对是你绕不过去的坎儿,而且是第一个大坎儿!它就是编程世界里最基础的“决策树”。

你想啊,咱们平时生活,哪分哪秒不在做判断?早上起床,拉开窗帘一看,“哇,天气真好!”—— 这时候你会决定穿T恤出门;但如果看到外面阴沉沉的,甚至飘雨,“哎呀,得穿外套带伞了!”。看到了吗?“看天气”就是条件,“穿T恤”或“穿外套带伞”就是根据条件做出的不同动作。程序也是一样,它需要根据某个条件是“真”还是“假”来选择执行哪条路。

Python 里,实现这种“看天吃饭”的功能,最基本、最直接的方式就是通过 if 语句 和它的好搭档 elseelif。那 python if else 语句怎么写 呢?别急,咱们一步一步来,保证给你讲得明明白白,就像唠家常一样。

首先,咱们聊最简单的——只有 if

有时候,我们只想在满足某个条件的时候做一件事儿,条件不满足?那就不做呗,程序继续往下走,好像啥都没发生过一样。这时候,光一个 if 语句 就够了。

它的基本骨架长这样:

“`python
if 条件:
# 如果条件是真的(True),就执行这里面的代码
# 注意:这里的代码块需要缩进!
print(“条件成立,我被执行了!”)

如果条件是假的(False),这里的代码会被跳过,程序直接从这里继续执行。

print(“我是不受if条件影响的,我总会被执行。”)
“`

这里的“条件”呢,通常是一个表达式,它计算出来的结果必须是布尔值,也就是 TrueFalse。比如 a > 10name == "Alice"is_ready (如果 is_ready 本身就是 True 或 False 变量)。

举个具体例子?假设你写了个小程序,想看看用户的年龄是不是大于等于18岁,如果是,就打印一句欢迎词。

“`python
age = 20

if age >= 18:
print(“欢迎你,成年人!”)

print(“程序继续执行。”)
“`

运行这段代码,因为 age 是20,20 >= 18True,所以会打印“欢迎你,成年人!”。然后继续打印“程序继续执行。”。

要是把 age 改成16呢?

“`python
age = 16

if age >= 18:
print(“欢迎你,成年人!”) # 这行代码因为条件不满足,会被完全跳过

print(“程序继续执行。”)
“`

这回,16 >= 18Falseif 后面的代码块就不会执行了。程序直接跳到最后一行,只打印“程序继续执行。”。

看,这就是 if 的威力——让代码有了选择性,迈出了“智能化”的第一步。

这里有个 超!级!重!要! 的点,也是刚上手 Python 的朋友最容易栽跟头的地方——缩进

你看到了吗?在 if 条件: 的下一行,需要执行的代码前面都有几个空格(通常是4个空格或者一个Tab键,建议统一用4个空格)。这个缩进可不是为了好看,它是 Python 语法的一部分!它告诉解释器,“嘿,这一块儿缩进的代码是属于上面那个 if 语句的,只有当 if 的条件满足时,才执行这一坨!” 如果缩进错了,或者同一块代码里缩进不一致,Python 会直接给你一个 IndentationError,程序崩给你看,没商量!这跟其他一些语言用花括号 {} 包围代码块完全不一样。所以,写 Pythonif else 语句,以及后面会遇到的循环、函数等等,缩进就是你的命根子,必须小心呵护!

好了,光有 if 有时候不够啊。就像刚才穿衣服的例子,不仅仅是“天气好才穿T恤”,还得考虑“天气不好怎么办”。如果条件不满足,我希望程序能执行另一套动作,这时候,else 就派上用场了!

if else 语句 的结构是这样的:

“`python
if 条件:
# 如果条件是真的(True),执行这里的代码块
print(“条件满足时执行”)
else:
# 如果条件是假的(False),执行这里的代码块
# else 后面没有条件,它是 if 条件不满足时的“退路”
print(“条件不满足时执行”)

print(“整个if else判断结束,继续执行”)
“`

来个经典的例子,判断一个数是奇数还是偶数。一个数是偶数,当且仅当它能被2整除;否则,它就是奇数。

“`python
number = 10

if number % 2 == 0: # % 是取余运算符,== 是等于运算符
print(f”{number} 是偶数”)
else:
print(f”{number} 是奇数”)

print(“判断结束”)
“`

如果 number 是10,10 % 2 等于0,0 == 0True,所以打印“10 是偶数”。
如果 number 是7,7 % 2 等于1,1 == 0Falseelse 块的代码会被执行,打印“7 是奇数”。

你看,有了 else,我们的程序就能处理两种对立的情况了,是不是更灵活了?

生活中的选择题可不止 A 卷和 B 卷那么简单,有时候是 A、B、C、D、甚至更多选项!比如给考试分数评等级:90分以上是优秀,80-90是良好,60-80是及格,60分以下是不及格。这种情况,光靠 ifelse 就不够用了,你需要引入 elif(它是 else if 的缩写,在 Python 里就这么写)。

if elif else 语句 的结构是这样的:

“`python
if 条件1:
# 如果条件1是真的,执行这里的代码
pass # pass 语句只是一个占位符,表示这里啥也不干
elif 条件2: # elif 后面跟着一个新的条件
# 如果条件1是假的,并且条件2是真的,执行这里的代码
pass
elif 条件3: # 可以有任意数量的 elif
# 如果条件1、2都是假的,并且条件3是真的,执行这里的代码
pass
else: # else 是可选的,作为所有前面条件都不满足时的“最终退路”
# 如果上面所有条件(if 和所有 elif)都是假的,执行这里的代码
pass

print(“多条件判断结束”)
“`

这里的重点是,Python 会从上往下依次检查 ifelif 的条件。一旦找到第一个满足条件的,它就会执行对应的代码块,然后!然后整个 if elif else 语句就结束了,程序会直接跳到最后一个 else 块的后面继续执行,不再检查后续的 elifelse

这很重要!意味着条件是有优先级的,写在前面的先判断。顺序错了可能会导致结果不对。

来写写那个分数评级的例子:

“`python
score = 75

if score >= 90:
print(“成绩:优秀!干得漂亮!”)
elif score >= 80: # 注意这里,因为上面 >=90 没满足,才会到这里。如果 score 是95,上面就执行了,这里根本不会看。
print(“成绩:良好,继续努力!”)
elif score >= 60:
print(“成绩:及格,悬崖勒马!”)
else:
print(“成绩:不及格,有点危险!”)

print(“评级完成。”)
“`

如果 score 是75:
* 75 >= 90False
* 跳到第一个 elif75 >= 80False
* 跳到第二个 elif75 >= 60True。执行打印“成绩:及格,悬崖勒马!”。
* 执行完这个 elif 块后,整个 if elif else 结束,跳到 print("评级完成。") 执行。

如果 score 是92:
* 92 >= 90True。执行打印“成绩:优秀!干得漂亮!”。
* 整个 if elif else 立即结束,跳到 print("评级完成。") 执行。后面的 elifelse 根本不会被看一眼。

看到了吗?用 if elif else,我们就能 elegantly (优雅地) 处理多种相互排斥的情况了。

除了基本的结构,写 Python if else 语句 还有一些小细节和进阶用法可以聊聊。

比如,条件表达式里除了刚才用的比较运算符(><==!=>=<=),我们还经常用逻辑运算符 andornot 来组合或否定条件。

  • and: 两个条件都为真,结果才为真。if 条件1 and 条件2:
  • or: 两个条件中至少一个为真,结果就为真。if 条件1 or 条件2:
  • not: 对条件取反。if not 条件: (如果条件为假,not 条件就为真)

例子:判断一个数是否在某个范围内(比如 1 到 10 之间,包含边界)。

“`python
num = 5

if num >= 1 and num <= 10:
print(f”{num} 在 1 到 10 之间。”)
else:
print(f”{num} 不在 1 到 10 之间。”)
“`

判断一个人是不是未成年或者老年人(假设未成年小于18,老年人大于等于60):

“`python
person_age = 70

if person_age < 18 or person_age >= 60:
print(“这个人可能是未成年或老年人。”)
else:
print(“这个人是青壮年。”)
“`

再提一个 Python 里很方便(有时候也让人迷惑)的特性:真值测试 (Truth Value Testing)。在 if 语句里,条件不一定非得是那种明确的布尔表达式。很多其他类型的值在需要布尔判断的时候,会被自动当作 TrueFalse

  • 以下值会被认为是 False
    • None
    • False 本身
    • 数字 0 (整型、浮点型、复数)
    • 空的序列 (字符串 "", 列表 [], 元组 (), 字典 {})
    • 空的集合 set()
  • 其他绝大多数值都被认为是 True。比如非零数字、非空的字符串/列表/字典等。

这使得你可以写出更简洁的代码,比如:

“`python
my_list = [1, 2, 3]

my_list = [] # 换成空列表试试

if my_list: # 列表非空时,my_list 被视为 True
print(“列表不为空,里面有东西!”)
else:
print(“列表是空的。”)
“`

这种写法在判断某个容器(列表、字符串等)是不是空的时候特别常用,比写 len(my_list) > 0 或者 my_list != [] 要简洁得多。但是用的时候心里得清楚它的逻辑,不然容易出错。

哦对了,还有一个小小的花样,叫做条件表达式(或者有人叫它三元运算符)。它能把一个简单的 if else 判断,压缩到一行里,通常用来根据条件给变量赋值。

格式是这样的:值1 if 条件 else 值2。如果条件为真,整个表达式的结果是 值1;如果条件为假,结果是 值2

例子:根据年龄判断是否成年,并把结果存到一个变量里。

python
current_age = 25
status = "成年" if current_age >= 18 else "未成年"
print(f"年龄 {current_age} 对应的状态是:{status}")

这段代码的效果跟下面的 if else 块是完全一样的:

python
current_age = 25
if current_age >= 18:
status = "成年"
else:
status = "未成年"
print(f"年龄 {current_age} 对应的状态是:{status}")

怎么样?一行搞定!不过呢,我个人的经验是,这种条件表达式虽然写起来短,但只适用于非常简单的判断。如果条件比较复杂,或者要执行的操作不止一个,老老实实写规规矩矩的 if else 块会更清晰易读。毕竟代码是写给人看的(顺带让机器执行),可读性有时候比简洁性更重要。

有时候,你可能会遇到需要在某个 ifelifelse 块内部再进行判断的情况,这就叫做嵌套判断

“`python
weather = “晴朗”
temperature = 28

if weather == “晴朗”:
print(“今天天气真好!”)
if temperature > 25: # 在“晴朗”这个大条件下,再判断温度
print(“有点热,注意防暑。”)
else:
print(“气温适宜,适合出门。”)
elif weather == “阴天”:
print(“天阴沉沉的。”)
else:
print(“可能是雨天或别的天气。”)
“`

嵌套判断可以实现更精细的逻辑控制,但层级太多(比如三层、四层甚至更多缩进)的代码会变得非常难以阅读和维护。遇到这种情况,通常需要考虑重构代码,比如把内部的判断提取成一个单独的函数,或者改变逻辑结构。这是后话了,等你熟悉了基础判断再慢慢琢磨。

说句大实话,刚开始接触 if else 这些东西,可能会觉得有点绕,特别是那个缩进,简直是初学者的“第一道鬼门关”。我当年也是在这里被搞得晕头转向。一会儿少个空格,一会儿多按了个 Tab,程序就报错,一脸懵圈。但咬牙坚持过去,把缩进的规矩刻到脑子里,你就会发现,Python 用缩进来组织代码块,其实挺直观的,就像写大纲一样,层层递进。

if else 语句 就像编程世界的“岔路口”。程序走到这里,会根据你设定的条件选择走哪条路。正是这些无数个大大小小的岔路口,构成了程序复杂的行为和逻辑。掌握了它们,你就掌握了控制程序流程最基本的钥匙。从简单的是非判断,到多条件的复杂决策,都离不开 ifelifelse 这三剑客的配合。

所以,别小看这几个简单的关键词和缩进规则。它们是你写出能“思考”、能“反应”的程序的基础。多练练,多写点小程序,比如根据输入的年份判断是不是闰年,根据身高体重计算BMI指数然后给出建议,模拟简单的猜数字游戏……这些小练习都能帮你把 if else 语句怎么写 练得炉火纯青,变成你的肌肉记忆。一旦这部分基础打牢了,后面学别的控制流语句(比如循环)或者更复杂的逻辑,都会变得轻松很多。

加油,朋友!你正在学习让计算机变得“聪明”的最核心技能之一!这趟编程之旅,有 if else 保驾护航,肯定会越来越精彩!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。