【Python 第7课】if


继续上次的程序。我们已经能让程序程序判断我们输入的值了,但这程序还是有点呆,不管怎样都要把话说三遍。因为到目前为止,我们的程序都是按照顺序从上到下一行接一行地执行。有同学发来问题了:怎么能让它根据我们输入的结果来选择执行呢?

答案就是: if

 

if,英文翻译过来就是 如果

来看一张图(纯手绘,渣画质)

解释一下:程序顺序往下执行遇到 if 语句的时候,会去判断它所带条件的真假

 

“如果”条件为True,就会去执行接下来的内容。“如果”条件为False,就跳过。

 

语法为:

if 条件:
    选择执行的语句

 

特别说明:条件后面的冒号不能少,同样必须是英文标点

特别特别说明:if 内部的语句需要有一个统一的缩进(就是指每一行开头的空格),一般用4个空格。缩进表示这些代码属于这个 if 条件内部,是一个“代码块”。python用这种方法替代了其他很多编程语言中的大括号{}。

你也可以选择1/2/3...个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。

如果 if 中的代码块又再包含一个 if,那就需要再进一步缩进一次。一个代码中的缩进需要统一,比如每次都是增加4个空格。

 

上栗子:

# coding: gbk
age = int(input())
if age >= 18:
    print("你是个成年人了!")

 

注意1:这里的代码请新建一个代码文件后,在其中编写并运行,否则无法换行及缩进(参见之前 IDE 课中的说明)

注意2:由于代码中有中文,所以我们在开头加上了一行编码申明(同样参见之前 IDE 课中的说明)

 

试试看:当你输入一个大于等于18的数字时就会有输出,否则什么也没有。想想是为什么?

 

所以现在,我们的游戏可以这样改写:

num = 10
print ('Guess what I think?')
answer = int(input())
if answer<num:
    print ('too small!')
if answer>num:
    print ('too big!')
if answer==num:
    print ('BINGO!')

 

 

if 在编程语言中被称为“控制流语句”,用来控制程序的执行顺序。还有其他的控制流语句,后面的课程中我们会陆续介绍。

 

#======== 课后作业 ========#

 

有不少同学强烈要求布置作业。好吧,满足你们。还记得之前那个“你觉得我是什么人?(Who do you think I am)”的程序吧?(不记得的请戳 4. 输入

改写一下,只有你回答某些好话的时候,程序才会回复 “Oh yes”,其他都不理你。甚至说某些词的时候,它还要反驳你。

至于用哪些词哪些条件,你们自己设定吧。

 

#======== 课外的话 ========#

 

学会了if,有一个好处,就是你能听懂下面这个笑话了:

 

老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,就买一个。”

当晚,程序员老公手捧一个包子进了家门……

老婆怒道:“你怎么就买了一个包子?!”

老公答曰:“因为看到了卖西瓜的。”

 

来源:Crossin的编程教室