Python基础教程5–流程控制-条件语句

原文链接: http://www.juzicode.com/archives/427

Python中有2种主要的流程控制语句,一种是条件语句,一种是循环语句。以下图为例,条件语句用来判断某个条件是否为真,如果为真就执行代码段1,如果为假就执行代码段2:

条件语句内的一段代码叫做代码块,在C/C++语言中,一个代码块一般用{}包含起来,在Python中代码块是通过缩进来表示的,同一层缩进里的代码就表示一个代码块。在循环语句、函数的定义中都通过缩进来表示同一个代码块。在下图中,12行是顶格写的一个if语句,这个if语句后面的13,14都是4个空格符后开始的,所以13,14行是12行下的一个代码块,同样的,17和18行是16行下的一个代码块。在同一个代码块里,缩进的长度必须要是一样的,不同代码块之间可以不一样,但是通常为了代码的可读性,相同层级间应该要保持一致。

通常缩进可以用tab键实现,但是使用空白符号更符合大家的习惯。当遇到写代码块时,在Python的交互式界面写程序就显得有点困难,通常使用代码编辑器来编辑代码更方便些。在notepad++中可以通过设置用多个空格代替一个tab键的方法减少多次输入空格符。

条件与数据类型

条件语句中if或者elif后面紧跟的是一个条件值,这个条件值可以是前面接触到各种数据类型,其中最基本的是bool型,if后如果bool型值为True,则执行if代码段的内容;其他的数据类型,int为0,float为0.0,str为’’空字符串,list,tuple,set,dict等为空时等价于条件为False,其他则等价于True,部分代码如下,完整的代码见本文github的代码例程。

if True:    
    print('bool类型条件为真')    
    print('www.juzicode.com')
else:    
    print('bool类型条件为假')    
    print('WWW.JUZICODE.COM')     
f = 0.0
#f = 0.1
if f:    
    print('float类型条件为真')    
    print('www.juzicode.com')
else:    
    print('float类型条件为假')    
    print('WWW.JUZICODE.COM')          
s = ''
s = 'xyz'
if s:    
    print('str类型条件为真')    
    print('www.juzicode.com')
else:    
    print('str类型条件为假')    
    print('WWW.JUZICODE.COM')   
lst = list() 
#lst = [1,2]
if lst:    
    print('list类型条件为真')    
    print('www.juzicode.com')
else:    
    print('list类型条件为假')    
   print('WWW.JUZICODE.COM')         
结果流程控制实验:if-else
bool类型条件为真
www.juzicode.com

float类型条件为假
WWW.JUZICODE.COM

str类型条件为真
www.juzicode.com

list类型条件为假
WWW.JUZICODE.COM

基本语句类型if-else

最基本的条件语句是if-else结构,注意if和else后面跟的冒号,一定要确保是英文格式的冒号,这里也是初学者经常犯错的地方:

 if 条件为真:
    执行代码段1
else:
    执行代码段2 

 a = input('请输入:')
if a == 'Q':    
    print('输入的字符为Q')
else:    
    print('输入的字符不为Q') 
结果#第1次输入A:
请输入:A
输入的字符不为Q 

#第2次输入Q:
请输入:Q
输入的字符为Q

单个条件if

单个条件语句,if-else的精简版本,只使用if。

a = input('请输入:')
if a == 'Q':    
    print('输入的字符为Q')
print('结束')
结果流程控制实验:if 
请输入:X
结束   #这里没有输入Q,不执行if语段的代码,直接打印结束了。 

流程控制实验:if
请输入:Q
输入的字符为Q
结束 

多个条件if-elif-else

在多条件语句中,首先从if后面开始判断,如果满足if后面的条件,则执行if下一层的代码段并跳出该if-elif-else代码段,否则依次向后判断elif后面的条件,如果任一条件满足,执行该elif下的代码段后,跳出本if-elif-else代码段,这其中elif是可以有多个的。

a = input('请输入:')
if a == 'Q':    
    print('输入的字符为Q')
elif a == 'X':    
    print('输入的字符为X') 
elif a == 'Z':    
    print('输入的字符为Z')     
else:    
    print('输入的字符不为Q,也不为X,也不为Z')
结果流程控制实验:if-elif-else
请输入:U
输入的字符不为Q,也不为X,也不为Z

示例代码: https://github.com/juzicode00/py3study/tree/master/05-condition

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注