Python缩进不清楚

时间:2019-05-29 06:50:42

标签: python indentation

试图了解缩进在Python中的工作原理。

var = 100                
if ( var == 100 ) :                      
    print ("Value of expression is 100")                 
    print ("Good bye!")
print("AM I out?")

输出:

Value of expression is 100
Good bye!
AM I out?

考虑到if条件给出的缩进,不是只应该打印以下输出吗?

Value of expression is 100   
Good bye!

为什么即使最后一条语句没有缩进,也要打印最后一条语句?

3 个答案:

答案 0 :(得分:3)

Python逐行执行程序,

var = 100                                 # First assign var = 100
if ( var == 100 ) :                       # Executed your if condition
    print ("Value of expression is 100")                 
    print ("Good bye!")
print("AM I out?")                        # Executed your last line

如果您不想在使用if时执行最后一行, 将print("AM I out?")保留在else块中。

if ( var == 100 ) :                       
        print ("Value of expression is 100")                 
        print ("Good bye!")
else:
        print("AM I out?")

关于身份:

用来了解您的程序,特定的块语句属于特定的对象(类,函数,if条件,循环)

答案 1 :(得分:0)

if块包含两个缩进的打印语句,仅在满足条件时才执行。与print('AM I out?')处于同一级别的if语句只是该块后面的语句。它不受条件的影响。如果该语句位于else块中,则不会被触发。

答案 2 :(得分:0)

所有缩进级别都是序列。它一个接一个地执行。

缩进的所有内容都取决于缩进之前的行。

在您的情况下,您有以下三项内容的序列:赋值,然后是有条件的(可能执行或可能不执行自己的两件事情的序列),然后是打印。

为了确保某些作为条件语句的一部分执行,您需要引入一个else分支:

var = 100                
if var == 100:                  
    print ("Value of expression is 100")                 
    print ("Good bye!")
else:
    print("AM I out?")

在这里,您需要执行以下两项操作:一项分配和一项有条件的。该条件语句在正分支中具有两个打印序列,在负分支中具有一个打印序列。