Python if else条件语句

if 分支既可作为语句使用,也可作为表达式使用。下面先介绍 if 分支作为语句使用的情形。

if 语句可使用任意表达式作为分支条件来进行分支控制。Python 的 if 语句有如下三种形式

第一种形式:

if expression:

    statements...

第二种形式:

if expression:

    statements...

else:

    statements...

第三种形式:

if expression:

    statements...

elif expression:

    statements...

...//可以有零条或多条elif语句

else:

    statement...

在上面 if 语句的三种形式中,第二种形式和第三种形式是相通的,如果第三种形式中的 elif 块不出现,则变成了第二种形式。

if 分支语句的执行过程:如果 if 条件为“真”,程序就会执行 if 条件后面的多条语句;否则就会依次判断 elif 条件,如果 elif 条件为“真”,程序就会执行 elif 条件后面的多条语句……如果前面所有条件都为“假”,程序就会执行 else 后的代码块(如果有)。

在上面的条件语句中,if expression:、elif expression:及 else:后缩进的多行代码被称为代码块,一个代码块通常被当成一个整体来执行(除非在运行过程中遇到return、break、continue等关键字),因此这个代码块也被称为条件执行体。

代码块一定要缩进,否则就不是代码块。例如如下程序:

s_age = input("请输入您的年龄:")

age = int(s_age)

if age > 20 :

print("年龄已经大于20岁了")

上面程序的 if 条件与下面的 print 语句位于同一条竖线上,这样在 if 条件下就没有受控制的代码块了。因此,上面程序执行时会报出如下错误:

IndentationError: expected an indented block

if 条件后的条件执行体一定要缩进。只有缩进后的代码才能算条件执行体。从编程习惯来看,Python 通常建议缩进 4 个空格。

Python是一门很“独特”的语言,它的代码块是通过缩进来标记的(大部分语言都使用花括号或 end 作为代码块的标记),具有相同缩进的多行代码属于同一个代码块。如果代码莫名其妙地乱缩进,Python 解释器会报错。

虽然 Python 语法允许代码块随意缩进 N 个空格,但同一个代码块内的代码必须保持相同的缩进,不能一会缩进 2 个空格,一会缩进 4 个空格。

如下代码:

s_age = input("请输入您的年龄:")

age = int(s_age)

if age > 20 :

    print("年龄已经大于20岁了")

    print("20岁以上的人应该学会承担责任...")

上面程序中第 2 个 print 语句缩进了 5 个空格,在这样的情况下,Python 解释器认为这条语句与前一条语句(缩进了 4 个空格)不是同一个代码块(这就是游标卡尺笑话的由来),因此 Python 解释器会报错。运行上面代码,将会报出如下错误:

IndentationError : unexpected indent

把代码改为如下形式:

s_age = input("请输入您的年龄:")

age = int(s_age)

if age > 20 :

    print("年龄已经大于20岁了")

  print("20岁以上的人应该学会承担责任...")

上面程序中第二条 print 语句只缩进了 3 个空格,它与前一条 print 语句(缩进了 4 个空格)同样不属于同一个代码块,因此 Python 解释器还是会报错。运行上面代码,则会报出如下错误:

IndentationError: unindent does not match any outer indentation level

通过上面介绍可以看出,Python 代码块中的所有语句必须保持相同的缩进,既不能多,也不能少

你可能感兴趣的:(Python if else条件语句)