零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

3.2.1 if条件语句

if语句用于检测某个条件是否成立。如果成立,则执行if语句内的程序;否则,跳过if语句,执行后面的内容。if语句的格式如下。


01     if(表达式): 
02         语句1 
03     else: 
04         语句2

if语句的执行过程如下:如果表达式的布尔值为真,则执行语句1;否则,执行语句2。其中的else子句可以省略,表达式两侧的括号也可以省略。

在讲解if语句之前,先介绍一下Python中的控制台输入函数。在C语言中,使用scanf()和getchar()捕获用户输入,而Java语言的System.in包提供了控制台输入的方法。Python也提供了类似功能的函数——input(),用于捕获用户的原始输入并将其转为字符串。input()函数的声明如下。


input([prompt]) -> string

参数prompt是控制台中对于输入的提示文字,提示用户输入,返回值为字符串。如果输入的是数字,返回的还是字符串,那么使用前需要调用int()做一下字符串和数字类型的转换。下面这段代码说明了字符串和数字类型的转换。


01     x = input("x:")
02     x = int(x)
03     x = x + 1

如果不调用int()把字符串转换为数字,而直接计算表达式x=x+1,将提示如下错误。


TypeError: Can't convert 'int' object to str implicitly

下面这段代码演示了if语句的执行流程。


01     # 执行if语句内的程序
02     a = input("a:")
03     a = int(a)
04     b = input("b:")
05     b = int(b)
06     if(a > b):
07         print (a, " > ", b)

【代码说明】

·第2行代码定义了变量a。

·第3行将用户输入的a转换为int类型。

·第4行代码定义了变量b。

·第5行将用户输入的b转换为int类型。

·第6行代码判断变量a、b的大小。

·对于第7行代码,假设a=2、b=1,输出结果:2>1。

如果不满足if语句内的条件,程序将跳过if语句,执行后面的内容。


01     # 跳过if语句
02     a = input("a:")
03     a = int(a)
04     b = input("b:")
05     b = int(b)
06     if(a > b):
07         print (a, " > ", b)
08     print (a, " < ", b)

【代码说明】

·假设a=1、b=2,第6行代码中变量a的值小于变量b的值,因此,程序跳转执行第8行代码。

·第8行代码输出结果:1<2。

【例3-1】把上面的代码改写成if…else…结构。

【例3-1.py】


01     # if… else…语句
02     a = input("a:")
03     a = int(a)
04     b = input("b:")
05     b = int(b)
06     if(a > b):
07         print (a, " > ", b)
08     else:
09         print (a, " < ", b)

【代码说明】

·假设a=1、b=2,第6行代码中变量a的值小于变量b的值。因此,程序跳转到else子句。

·第9行代码输出结果:1<2。

注意 else子句后需要加一个冒号,使Python解释器能识别出else子句对应的代码块。Java程序员可能会不习惯这种语法,往往会忽略else子句后的冒号。在Python 2中还可用raw_input()函数接收用户输入,其功能与Python 3的input()相同。而Python 2中的input()接收的值不转换为字符串类型,而是保留原始类型,它在Python 3中已经去除。