Python

Python 知识量:10 - 41 - 150

4.2 条件语句><

if/else语句- 4.2.1 -

在程序中进行决策时(例如:在某一时刻决定执行那条语句),需要使用条件语句,即if语句。

最常见的条件语句就是if/else语句。以下是一个应用if/else语句编写的用户登录判断的程序:让用户输入密码。如果密码正确就显示登录;如果错误就给出提示。最后显示程序执行完毕。

# if.py
pwd = input('Please input the password:')
if pwd == 'pnotes':
    print('Logging on ...')
else:
    print('Incorrect password.')
print('All done.')

如果输入pnotes,执行的结果为:

>>> 
======================= RESTART: D:\PythonTestFile\if.py =======================
Please input the password:pnotes
Logging on ...
All done.

if/else语句具有以下重要特点:

  • 总是以关键字if开头,其后是一个布尔逻辑表达式,称为if条件,条件后面是一个冒号。以上3项必须位于同一行。

  • 从if到同一行的冒号(:)这部分称为语句头。

  • 如果if条件为True,将执行其后的print('Logging on ...'),并跳过else代码块。

  • 如果if条件为False,将执行print('Incorrect password.'),而print('Logging on ...')将被跳过。

  • 不论if条件如何,都将执行print('All done.')

  • else代码块是可选的,可根据需求决定是否包含它。

if/elif语句- 4.2.2 -

if/elif语句是if语句的扩展版本,重要的特点是可以包含多个条件,用于复杂的决策。以下是一个判断数字区间的程序:

# elif.py
number = int(input('Please input a number(0-50):'))
if number <= 10:
    print('0-10')
elif 10<number<=20:
    print('11-20')
elif 20<number<=30:
    print('21-30')
elif 30<number<=40:
    print('31-40')
elif 40<number<=50:
    print('41-50')
print('All done.')

根据输入不同,运行的结果可能为:

====================== RESTART: D:\PythonTestFile\elif.py ======================
Please input a number(0-50):21
21-30
All done.

在number获取用户输入的数字后,程序会对if/elif语句自上而下检查每一个条件,如果满足某个条件,就执行紧跟其后的下一行程序,然后将跳出整个if/elif语句,执行最后的print语句。

条件表达式- 4.2.3 -

if语句有一种简写方式,称为条件表达式,以下是一个示例:

# expression.py
number = int(input('Please input a number(0-100):'))
mark = 'Big' if number>50 else 'Small'
print(mark)

如果输入51,执行结果为:

>>> 
=================== RESTART: D:\PythonTestFile\expression.py ===================
Please input a number(0-100):51
Big

如果输入50,执行结果为:

>>> 
=================== RESTART: D:\PythonTestFile\expression.py ===================
Please input a number(0-100):50
Small

以上条件表达式代码等价于以下代码:

# expression.py
number = int(input('Please input a number(0-100):'))
if number>50:
    mark = 'Big'
else:
    mark = 'Small'
print(mark)

条件表达式虽然相对简洁,但最大的问题是它更加难以理解,因此建议只在非常必要的情况下才使用它。

代码块与缩进- 4.2.4 -

Python的一个非常重要的特点是使用缩进来标识代码块。如果要标识同一个代码块,就必须要以同样的程度缩进代码块的每一行。也就是说,对于连续的、具有相同缩进量的代码行,Python将其视为同一个代码块,如同在它们外面加了一对花括号。例如以下代码:

# part.py
number = int(input('Please input a number(0-100):'))
if number>50:
    mark = 'Big'
    print(mark)
    print('execute if part')
else:
    mark = 'Small'
    print(mark)
    print('execute else part')
print('All done')

如果输入51,运行结果为:

>>> 
====================== RESTART: D:\PythonTestFile\part.py ======================
Please input a number(0-100):51
Big
execute if part
All done

在以上代码中,mark = 'Big'、print(mark)和print('execute if part')具有相同的缩进量,因此,它们是同一个代码块,当满足if条件时,它们将同时执行。

在Python中,缩进不止使编码更加美观,而且被赋予了这一特殊含义和功能,成为必须遵守的规则,这其实是有积极意义的。