本文带您了解Linux平台下Python if语句、if..else语句、if..elif..else语句、嵌套if语句。Python支持其他语言中的常见流程控制语句,并进行了一些修改,if控制语句是最基本,最著名的语句之一,用于根据特定条件执行代码。在本文中,我们将介绍Python中if语句的基础。安装Python请参考在CentOS 7/CentOS 8发行版上安装Python 3.8.1版本的方法。
Python 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),并且将执行打印功能:
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关键字来检查可迭代值(字符串、列表、元组、字典[dictionary]等)中是否存在值:
s = 'ywnz'
if 'ze' in s:
print('True.')
这是使用字典的另一个示例:
d = {'a': 2, 'b': 4}
if 'a' in d:
print('True.')
当在字典上使用in关键字时,它将检查字典是否具有特定的键。
要否定条件表达式,请使用逻辑非运算符:
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子句。
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语句中组合多个条件。
这是脚本的另一个版本,可打印三个数字中最大的数字,在此版本中,我们将使用逻辑和运算符和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 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执行的流程。
相关主题