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

目前成都创新互联已为上千多家的企业提供了网站建设、域名、网页空间、网站运营、企业网站设计、获嘉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
- if(表达式):
 - 语句1
 - else:
 - 语句2
 
if语句的执行过程如下:如果表达式的布尔值为真,则执行语句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)
 
【代码说明】
如果不满足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)
 
【代码说明】
【例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)
 
【代码说明】
注意:else子句后需要加一个冒号,使Python解释器能识别出else子句对应的代码块。Java程序员可能会不习惯这种语法,往往会忽略else子句后的冒号。在Python 2中还可用raw_input()函数接收用户输入,其功能与Python 3的input()相同。而Python 2中的input()接收的值不转换为字符串类型,而是保留原始类型,它在Python 3中已经去除。
if…elif…else语句是对if…else…语句的补充。当程序的条件分支很多时,可以使用这种语句。if…elif…else语句相当于C、Java中的if…elseif…else语句。该语句的格式如下。
- if(表达式1): 语句1
 - elif(表达式2): 语句2
 - …
 - elif(表达式n): 语句n
 - else: 语句m
 
if…elif…else语句的执行过程:首先判断表达式1的值是否为真。如果为真,则执行语句1。否则,程序流转到elif子句,判断表达式2的值是否为真。如果表达式2的值为真,则执行语句2。否则,程序进入下面一个elif子句,以此类推。如果所有的表达式都不成立,则程序执行else子句的代码。其中的else子句可以省略,表达式两侧的括号也可以省略。
下面【例3-2】中的这段代码通过判断学生的分数,确定学生成绩的等级。
【例3-2.py】
- 1# if elif else语句
 - 2score = float( input("score:")) # 接收用户输入并将其转换为float类型,当输入为小数时,使用int转换会报错
 - 3if 90 <= score <= 100:
 - 4 print("A")
 - 5elif 80 <= score < 90:
 - 6 print("B")
 - 7elif 60 <= score < 80:
 - 8 print("C")
 - 9else:
 - 0 print("D")
 
【代码说明】
if语句的嵌套是指if语句中可以包含一个或多个if语句。嵌套的格式如下所示。
- if(表达式1):
 - if(表达式2): 语句1
 - elif(表达式3): 语句2
 - …
 - else: 语句3
 - elif(表达式n):
 - …
 - else:
 - …
 
下面【例3-3】中的这段代码是一个嵌套的条件语句。如果x的值大于0,则y的值等于1;如果x的值等于0,则y的值等于0;如果x的值小于0,则y的值等于-1。
【例3-3.py】
- 1x = -1
 - 2y = 99
 - 3if(x >= 0):
 - 4 if(x > 0):#嵌套的if语句
 - 5 y = 1
 - 6 else:
 - 7 y = 0
 - 8else:
 - 9 y = -1
 - 0print ("y =", y)
 
【代码说明】
嵌套语句可以组合出很多写法,但是要注意把所有的分支情况都考虑到。下面的这种写法是错误的。
- 1# 错误的嵌套语句
 - 2x = -1
 - 3y = 99
 - 4if(x != 0): # 如果x不等于0
 - 5 if(x > 0): #嵌套的if语句
 - 6 y = 1
 - 7else:
 - 8 y = 0
 - 9print ("y =", y)
 
【代码说明】
注意:编写条件语句时,应该尽可能避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。
switch语句用于编写多分支结构的程序,类似于if…elif…else语句。C语言中switch语句的结构如下所示。
- switch(表达式) {
 - case 常量表达式1: 语句1
 - case 常量表达式2: 语句2
 - …
 - case 常量表达式n: 语句n
 - default: 语句m
 - }
 
switch语句表示的分支结构比if…elif…else语句更清晰,代码可读性更高,但是Python并没有提供switch语句,而是可以通过字典实现switch语句的功能。
实现方法分为两步。首先,定义一个字典。字典是由键值对组成的集合。其次,调用字典的get()获取相应的表达式。
下面【例3-4】中的这段代码通过算术运算的符号,获取算术运算表达式。
【例3-4.py】
- 1# 使用字典实现switch语句
 - 2from __future__ import division# 导入division模块
 - 3x = 1
 - 4y = 2
 - 5operator = "/"
 - 6result = { # 定义字典
 - 7"+" : x + y,
 - 8"-" : x - y,
 - 9"*" : x * y,
 - 10"/" : x / y
 - 11}
 - 12print (result.get(operator))
 
【代码说明】
另一种使用switch分支语句的方案是创建一个switch类,处理程序的流转。这种实现方法比较复杂,涉及面向对象、for循环、中断语句、遍历等知识,实现步骤分为4步。
下面【例3-5】中的这段代码实现了switch语句的功能。
【例3-5.py】
- 1class switch(object):# 定义switch类
 - 2 def __init__(self, value):# 初始化需要匹配的值value
 - 3 self.value = value
 - 4 self.fall = False # 如果匹配到的case语句中没有break,则fall为True
 - 5
 - 6 def __iter__(self):# 定义__iter__()方法
 - 7 yield self.match # 调用match方法 返回一个生成器
 - 8 raise StopIteration# 用StopIteration 异常来判断for循环是否结束
 - 9
 - 10 def match(self, *args): # 模拟case子句的方法
 - 11 if self.fall or not args: # 如果fall为True,则继续执行下面的case子句
 - 12 # 或case子句没有匹配项,则流转到默认分支
 - 13 return True
 - 14 elif self.value in args: # 匹配成功
 - 15 self.fall = True
 - 16 return True
 - 17 else: # 匹配失败
 - 18 return False
 - 19
 - 20operator = "+"
 - 21x = 1
 - 22y = 2
 - 23for case in switch(operator): # switch只能用于for... in...循环中
 - 24 if case('+'):
 - 25 print (x + y)
 - 26 break
 - 27 if case('-'):
 - 28 print (x - y)
 - 29 break
 - 30 if case('*'):
 - 31 print (x * y)
 - 32 break
 - 33 if case('/'):
 - 34 print (x / y)
 - 35 break
 - 36 if case(): # 默认分支
 - 37 print ""
 
【代码说明】
                当前文章:Python条件语句详解:if、else、switch都有了
                
                转载注明:http://www.csdahua.cn/qtweb/news32/199832.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网