Python条件语句详解:if、else、switch都有了

导读:条件语句是指根据条件表达式的不同计算结果,使程序流转至不同的代码块 。Python中的条件语句有——if语句、if… else…语句 。
作者:黄传禄 张克强 赵越
来源:华章科技
Python条件语句详解:if、else、switch都有了

文章插图
 
01 if条件语句if语句用于检测某个条件是否成立 。如果成立,则执行if语句内的程序;否则,跳过if语句,执行后面的内容 。if语句的格式如下 。
if(表达式):     语句1 else:     语句2if语句的执行过程如下:如果表达式的布尔值为真,则执行语句1;否则,执行语句2 。其中的else子句可以省略,表达式两侧的括号也可以省略 。
在讲解if语句之前,先介绍一下Python中的控制台输入函数 。在C语言中,使用scanf()和getchar()捕获用户输入,而JAVA语言的System.in包提供了控制台输入的方法 。Python也提供了类似功能的函数——input(),用于捕获用户的原始输入并将其转为字符串 。input()函数的声明如下 。
input([prompt]) -> string参数prompt是控制台中对于输入的提示文字,提示用户输入,返回值为字符串 。如果输入的是数字,返回的还是字符串,那么使用前需要调用int()做一下字符串和数字类型的转换 。下面这段代码说明了字符串和数字类型的转换 。
x = input("x:")x = int(x)x = x + 1如果不调用int()把字符串转换为数字,而直接计算表达式x = x + 1,将提示如下错误 。
TypeError: Can't convert 'int' object to str implicitly下面这段代码演示了if语句的执行流程 。
1# 执行if语句内的程序2a = input("a:")3a = int(a)4b = input("b:")5b = int(b)6if(a > b):7    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语句,执行后面的内容 。
1# 跳过if语句2a = input("a:")3a = int(a)4b = input("b:")5b = int(b)6if(a > b):7    print (a, " > ", b)8print (a, " < ", b)【代码说明】
  • 假设a=1、b=2,第6行代码中变量a的值小于变量b的值,因此,程序跳转执行第8行代码 。
  • 第8行代码输出结果:1<2 。
【例3-1】把上面的代码改写成if… else…结构 。
【例3-1.py】
1# if… else…语句2a = input("a:")3a = int(a)4b = input("b:")5b = int(b)6if(a > b):7    print (a, " > ", b)8else:9    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中已经去除 。
02 if…elif…else判断语句if…elif…else语句是对if…else…语句的补充 。当程序的条件分支很多时,可以使用这种语句 。if…elif…else语句相当于C、Java中的if…elseif…else语句 。该语句的格式如下 。
if(表达式1): 语句1elif(表达式2): 语句2…elif(表达式n): 语句nelse: 语句mif…elif…else语句的执行过程:首先判断表达式1的值是否为真 。如果为真,则执行语句1 。否则,程序流转到elif子句,判断表达式2的值是否为真 。如果表达式2的值为真,则执行语句2 。否则,程序进入下面一个elif子句,以此类推 。如果所有的表达式都不成立,则程序执行else子句的代码 。其中的else子句可以省略,表达式两侧的括号也可以省略 。


推荐阅读