Python if..else 语句
决策是计算机编程的最基本概念之一。 Python 中的决策操作和其他语言中的常见流程控制语句大致相同,并进行了一些修改。 if
控制语句是使用基于特定条件来执行代码的最基本和最知名的语句之一。
在本文中,我们将介绍 Python 中的 if
语句的基础用法。
if
语句
Python 中的 if
语句的最基本形式如下:
if EXPRESSION:
STATEMENT
if
语句以 if
关键字开头,后跟条件表达式。
在 EXPRESSION
后面必须跟 (:
) 结尾。如果 EXPRESSION
计算结果为 True
,则执行 STATEMENT
。如果 EXPRESSION
计算结果为 False
,则忽略 STATEMENT
,什么也不执行。 STATEMENT
可以是任何语句,包括多个语句或其他嵌套 if
语句。如果想要不执行任何语句,请使用 pass
语句。
该 STATEMENT
块以缩进开始,以第一条未缩进的行结束。大多数人选择使用4空格或者2空格缩进。官方的 Python 代码样式指南建议每个缩进级别使用4个空格,并避免混合使用制表符和空格进行缩进。
让我们看下面的示例脚本,该脚本检查给定数字是否大于5。
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
将代码保存在文件中,然后从命令行运行它:
python test.py
该脚本将提示您输入一个数字。例如,如果输入 10 ,则条件表达式的计算结果为 True
(10 大于 5) ,并且 print
函数将被执行。
10 is greater than 5.
Python 支持标准比较操作:
a == b
- 如果a
和b
相等,则为 true 。a != b
- 如果a
和b
不相等,则为 true 。a > b
- 如果a
大于b
,则为 true 。a >= b
- 如果a
等于或大于b
,则为 true 。a < b
- 如果a
小于b
,则为 true 。a <= b
- 如果a
等于或小于b
,则为 true 。
您还可以使用 in
关键字来检查可迭代值(字符串,列表,元组,字典等)中是否存在某个值:
s = 'linuxize'
if 'ze' in s:
print('True.')
这是使用字典的另一个示例:
d = {'a': 2, 'b': 4}
if 'a' in d:
print('True.')
当在字典上使用时, in
关键字检查字典是否具有特定的键。
要对条件表达式取反,请使用逻辑 not
运算符:
number = int(input('Enter a number: '))
if not number < 5:
print(number, 'is greater than 5.')
if..else
语句
一条 if..else
语句计算条件并根据结果执行两个语句之一。
Python 中的 if..else
语句采用以下形式:
if EXPRESSION:
STATEMENT1
else:
STATEMENT2
如果 EXPRESSION
计算为 True
,将执行 STATEMENT1
。否则,如果 EXPRESSION
返回 False
,将执行 STATEMENT2
。
else
关键字必须以 :
结束,并与 if
关键字在同一缩进级别。
让我们在前面的示例脚本中添加一个 else
子句:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
else:
print(number, 'is equal or less than 5.')
如果运行代码并输入数字,则脚本将根据数字是大于还是小于等于 5 来打印不同的消息。
if..elif..else
声明
elif
关键字是 else if
的缩写。
Python 中的 if..elif..else
语句采用以下形式:
if EXPRESSION1:
STATEMENT1
elif: EXPRESSION2:
STATEMENT2
else:
STATEMENT3
如果 EXPRESSION1
计算为 True
,将执行 STATEMENTS1
。如果 EXPRESSION2
计算结果为 True
,将执行 STATEMENTS2
。如果所有表达式都不为 True
,则执行 STATEMENTS3
。
elif
关键字必须以 :
结尾,并与 if
关键字在同一缩进级别。 elif
语句中可以有一个或多个子句。 else
子句是可选的。如果未使用 else
子句,并且所有表达式的求值为 False
,则不会执行任何语句。
条件被顺序判断。一旦有条件返回后 True
,将不执行其余条件,并且程序控制移至 if
语句的末尾。
让我们在前面的脚本中添加一个 elif
子句:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
elif number < 5:
print(number, 'is less than 5.')
else:
print(number, 'is equal to 5.')
与大多数编程语言不同, Python 没有 switch
或者 case
语句。多个 elif
语句的序列可以代替 switch
或者 case
。
嵌套 if
语句
Python 允许您在 if
语句内嵌套 if
语句。通常,您应始终避免过度缩进,并尝试使用 elif
而不是嵌套 if
语句
以下脚本将提示您输入三个数字,并在数字中显示最大的数字。
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2:
if number1 > number3:
print(number1, 'is the largest number.')
else:
print(number3, 'is the largest number.')
else:
if number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
输出结果如下所示:
Enter the first number: 455
Enter the second number: 567
Enter the third number: 354
567 is the largest number.
多种条件
or
和 and
逻辑运算符使您可以在 if
语句中组合多个条件。
这是可打印三个数字中最大的数字脚本的另一个版本。在此版本中, if
我们使用逻辑 and
运算符和来代替嵌套语句 elif
。
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2 and number1 > number3:
print(number1, 'is the largest number.')
elif number2 > number3 and number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
结论
if
, if..else
和 if..elif..else
语句,可以通过评估给定的条件来控制 Python 的执行流程。