当前位置: 首页 > 图灵资讯 > 行业资讯> Python if else条件语句详解

Python if else条件语句详解

发布时间:2025-10-30 16:16:57

if 分支采用布尔表达式或布尔值作为分支条件进行控制。Python 的 if 分支可以作为语句或表达式使用。先介绍一下。 if 使用分支作为句子。

if 可以使用任何表达式作为分支条件来控制句子。Python 的 if 语句有以下三种形式:

第一种形式:

ifexpression:
statements...

第二种形式:

ifexpression
statements...
else:
statements...

第三种形式:

ifexpression:
statements...
elifexpression:
statements...
...//可以有零或多个elif语句
else:
statement...

在上面 if 在句子的三种形式中,第二种形式与第三种形式相连,如果在第三种形式中 elif 如果块不出现,它将成为第二种形式。对于上面的 if 分支语句的执行过程非常简单,即如果 if 如果条件是“真”,程序将执行 if 条件背后的多个句子;否则,将依次判断 elif 条件,如果 elif 如果条件是“真”,程序将执行 elif 条件背后的多个句子...如果前面的所有条件都是“假的”,程序就会执行 else 后代码块(如有)。在上述条件语句中,if expression:、elif expression:及 else:后缩进的多行代码称为代码块,代码块通常作为一个整体执行(除非在操作过程中遇到return、break、continue等关键词),所以这个代码块也叫条件执行体。Python是一种非常“独特”的语言,它的代码块是通过缩进来标记的(大多数语言使用花括号或 end 作为代码块的标记),具有相同缩进的多行代码属于同一代码块。如果代码莫名其妙地缩进,Python 解释器会报错(正如前面所说,Python 非自由格式语言)。

例如,以下程序:

s_age=input("输入您的年龄:")
age=int(s_age)
ifage>20:
#只有当age>20:00,以下代码块只能通过整体缩进来执行
#整体缩进的句子是一个整体,要么一起执行,要么不一起执行
print("20岁以上已经20岁了。")
print("20岁以上的人应该学会承担责任...")

运行上述代码,如果输入年龄小于 20、将看到以下操作结果:

请输入您的年龄:18

从上面的代码可以看出,如果输入年龄小于 那么程序就没有任何输出,整个缩进的句子作为一个整体都不会执行。

如果输入年龄大于上述代码,则操作上述代码 20、将看到以下操作结果:

请输入您的年龄:24
20岁以上已经20岁了。
20岁以上的人应该学会承担责任...

从上面的代码可以看出,如果输入的年龄大于 20 ,程序将执行整体缩进的代码块。

代码块必须缩进,否则不是代码块。例如,以下程序:

s_age=input("输入您的年龄:")
age=int(s_age)
ifage>20:
print("20岁以上已经20岁了。")

上面程序的 if 条件如下 print 语句位于同一条垂直线上,因此在同一条垂直线上 if 在这种情况下,没有受控制的代码块。因此,在执行上述程序时,会出现以下错误:

IndentationError:expectedanindentedblock

if 必须缩进条件后的条件执行体。只有缩进的代码才能被视为条件执行体。

接下来,读者会有一个问题:代码块(条件执行器)应该缩进多少?这是随机的。您可以缩进 1 个空格、2 个空格、3 个空格…… 或 1 个 Tab 所有这些都符合语法要求。但从编程习惯的角度来看,Python 通常建议缩进 4 个空格。

有些时候,Python 解释器不会报错,但这并不意味着程序没有错误。例如,以下代码:

s_age=input("请输入您的年龄:")
age=int(s_age)
ifage>20:
print("20岁以上的年龄已超过20岁")
print("20岁以上的人应该学会承担责任...")

解释上述程序的执行情况,程序不会报告任何错误。但如果输入小于一个 20 年龄,可以看到以下操作过程:

请输入您的年龄:12
20岁以上的人应该学会承担责任...
从操作过程中可以看出,我们输入的年龄明显小于20岁,但操作结果仍将打印为“20岁以上……”。为什么?这就是为什么 print 句子没有缩进。假如这行代码没有缩进,那么 Python 这个代码不会被视为条件执行体,它不会受到影响 if 无论用户输入什么年龄,控制条件,print 句子总是执行的。

如果忘记正确缩进,程序的运行结果很可能超出我们的预期。例如,以下程序:

#定义变量B并赋值它
b=5
ifb>4:
#如果b>4.执行以下条件执行体,只有一行代码作为代码块
print("b大于4")
else:
#否则,执行以下条件的执行体只有一行代码作为代码块
b-=1
#对于下面的代码,它不再是条件执行的一部分,所以它总是执行的
print("b不大于4")

在上述代码中,最后一行代码总是执行的,因为这行代码没有缩进,所以它不属于 else 以后的条件执行体,else 只有后期执行条件 b -= 1 这一行代码。

如果要让 print("b不大于4") 语句也处于 else 在控制下,这行代码需要缩进 4 个空格。

if、else、elif 后条件执行器必须使用相同的缩进代码块作为整个代码块作为条件执行器。当if后有多个句子作为条件执行器时,如果忘记缩进一行代码,就会导致语法错误。查看以下代码:

#定义变量c并赋值它
c=5
ifc>4:
#如果c>4.执行以下执行体,将只有c-一行代码作为执行体
c-=1
#以下是一行不属于执行体的普通代码
print("c大于4")
#这里的else将没有if语句,因此编译错误
else
#否则,执行以下执行器,只有一行代码作为代码块
print("c不大于4")

因为在上面的代码中 if 后条件执行体的最后一句话没有缩进,所以系统只缩进 c-= 1 当一行代码作为条件执行体时 c-=1 句子执行后,if 句子就结束了。后面的句子。 print("c大于4") 自己是一行普通代码,不再属于条件执行体,导致 else 没有if语句,导致编译错误。

操作上述代码时,您将看到以下错误:

SyntaxError:invalidsyntax

不要随意缩进

需要注意的是,尽管如此 Python 语法律允许代码块随意缩进 N 一个空间,但同一代码块中的代码必须保持相同的缩进,不能缩进一段时间 2 一个空间,缩进一段时间 4 个空格。

例如,以下代码:

s_age=input("输入您的年龄:")
age=int(s_age)
ifage>20:
print("20岁以上已经20岁了。")
print("20岁以上的人应该学会承担责任...")

在上述程序中排名第一 2 个 print 语句缩进了 5 在这种情况下,一个空格,Python 解释器认为这个句子与前一个句子(缩进) 4 一个空间)不是同一个代码块(这是游标卡尺笑话的由来),所以 Python 解释器将报告错误。操作上述代码时,将报告以下错误:

IndentationError:unexpectedindent

将代码改为以下形式:

s_age=input("输入您的年龄:")
age=int(s_age)
ifage>20:
print("20岁以上已经20岁了。")
print("20岁以上的人应该学会承担责任...")

第二条在上述程序中 print 句子只缩进了 3 一个空格,它和前一个一样 print 句子(缩进 4 空格)也不属于同一代码块,所以 Python 解释器仍然会报告错误。如果操作上述代码,将报告以下错误:

IndentationError:unindentdoesnotmatchanyouterindentationlevel

从以上介绍可以看出,Python 代码块中的所有句子都必须保持相同的缩进,既不能多也不能少。

别忘了冒号

从 Python 从语法解释器的角度来看,Python 冒号准确地表示,代码块的开始点不仅在条件执行体中,而且后面的循环体、方法体和类别都遵守规则。

假如程序忘记了冒号,那么 Python 解释器无法识别代码块的开始点。例如,以下程序:

age=24
ifage>20
print("20岁以上已经20岁了。")
print("20岁以上的人应该学会承担责任...")

上面 if 条件结束后,我忘了写冒号,所以 Python 不知道条件执行体的开始点。操作上述程序,将报告以下错误:

SyntaxError:invalidsyntax
if 条件的类型

从前面的例子可以看出,Python 执行 if 句子时,会判断 if 条件是 True 还是 False 。那么 if 只能使用条件吗? bool 表达式的类型呢?

不是。if 条件可以是任何类型,以下值作为 bool 解释器将表达式视为表达式 False 处理:

False、None、0、""、()、[]、{}

从上面的介绍可以看出,除了上面的介绍, False 本身,各种代表“空”的东西 None、空字符串、空元组、空列表和空字典将被视为 False 处理。

例如,以下代码:

s=""
ifs:
print('S不是空字符串')
else:
print('s是空字符串')
#定义空列表
my_list=[]
ifmy_list:
print('my_list不是空列表')
else:
print('my_list是空列表')
#定义空字典
my_dict={}
ifmy_dict:
print('my_dict不是空字典')
else:
print('my_dict是空字典')

从上面的粗体字代码可以看出,这些 if 分别使用条件 str 类型、list 类型、dict 因为这些,类型 str、list、dict 都是空值,所以 Python 会把它们当成 False 处理。

相关文章

Python if else条件语句详解

Python if else条件语句详解

2025-10-30
Python pass语句及其作用

Python pass语句及其作用

2025-10-30
Python(for和while)循环嵌套及用法

Python(for和while)循环嵌套及用法

2025-10-30
Python超级详细的raise用法

Python超级详细的raise用法

2025-10-30
Python函数默认参数设置

Python函数默认参数设置

2025-10-29
Python os模块及用法

Python os模块及用法

2025-10-29