
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中已经去除。