Python基础之选择语句

一)程序结构

  1. 顺序结构
Created with Raphaël 2.2.0开始语句一......语句n结束
  1. 选择结构
Created with Raphaël 2.2.0开始条件语句块1结束语句块2yesno
  1. 循环结构
Created with Raphaël 2.2.0开始语句条件循环体语句结束yesno

二)if语句

基本语法:

Created with Raphaël 2.2.0其他语句表达式语句块其他语句yesno
1| if 表达式:
2|		语句块
  1. if为保留字
  2. 表达式可以是:
    • 一个单纯的布尔值、变量
    • 比较表达式
    • 逻辑表达式
  3. 表达式为真,则执行语句块;表达式为假,跳过语句块。
  4. 为真的情况:表达式的值为非零的数,或非空的字符串
  5. 为假的情况:
    • False
    • None
    • 数值中的零,包括整数0、浮点数0.0、虚数0,可用程序自测
    • 空序列,如空列表、空元组、空字符串、空字典
    • 自定义对象的实例,该对象的_bool_方法返回False,_len_方法返回0
  6. 注意:表达式后有冒号
  7. 语句块统一缩进:
    例如:交换a、b的值
# 三个语句为一语句块
1| if a<b:
2|  	a = a ^ b	
3|  	b = a ^ b	
4|		a = a ^ b 		
# 前两个个语句为一语句块
1| if a<b:
2|		a = a ^ b	
3|		b = a ^ b	
4| a = a ^ b 

缩进不一,程序的逻辑就不一样,易造成bug。不同情况,开发环境的提示也不一样,如上两例,没有语法错误,一般不提示。

  1. 语句块只有一条语句时,可直接写到冒号:右侧
if a>b: max=a
# 不建议如上面那样编写,考虑程序可读性,应按照习惯
if a>b:
	max = a

三)if…else语句

基本语法:

Created with Raphaël 2.2.0其他表达式语句块1其他语句块2yesno
1| if 表达式:
2|		语句块1
3| else:
4| 		语句块2
  1. 满足执行语句块1,不满足执行语句块2
  2. 注意冒号、缩进
  3. else语句不能单独使用,必须与if一起
  4. else语句根据缩进确定其属于哪个if
if a>=0:
	if a>0:
		print("a > 0")
	else:
		print("a = 0")
if a>=0:
	if a>0:
		print("a > 0")
else:
	print("a < 0")
  1. 与条件表达式转化:
# 取a的绝对值
if a>0:
	b = a
else:
	b = -a
# 条件表达式
b = a if a>0 else -a	# b=(a if a>0 else -a)

四)if…elif…else多分支语句

Created with Raphaël 2.2.0其他语句表达式1语句块1其他语句表达式2语句块2......表达式n语句块n语句块n+1yesnoyesnoyesnoyesno

基本语法:

if 表达式1:
	语句块1
elif 表达式2:
	语句块2
......
elif 表达式n:
	语句块n
else:
	语句块n+1
  1. if、elif都需要判断表达式的真假,else不需要,注意冒号
  2. elif、else都必须跟随if使用,不能单独用

五)if语句嵌套

  1. 以上三种语句均可相互嵌套
  2. 严格控制不同级别代码块的缩进量
  3. 使用布尔型变量作判断条件:
flag = True		#flag为布尔型
if flag:		#真
	语句块
if not flag:	#假
	语句块
# 不建议
if flag==True:		#真
	语句块
if flag==False:		#假
	语句块
  1. 注意“==”与“=”
if a==1:	#比较表达式
...
if a=1:		#赋值表达式,a值为1,永真
...
if 1==a:	#建议使用
...

版权声明:本文为qq_45351217原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。