Python程序的控制结构

来自CloudWiki
Cloud17讨论 | 贡献2018年2月13日 (二) 03:45的版本 (创建页面,内容为“*有了合适的数据类型和数据结构之后,还要依赖于选择和循环结构来实现特定的业务逻辑。 *一个完整的选择结构或循环结构…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
  • 有了合适的数据类型和数据结构之后,还要依赖于选择和循环结构来实现特定的业务逻辑。
  • 一个完整的选择结构或循环结构可以看作是一个大的“语句”,从这个角度来讲,程序中的多条“语句”是顺序执行的。

条件表达式

  • 在选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。

关系运算符

  • Python中的关系运算符可以连续使用,这样不仅可以减少代码量,也比较符合人类的思维方式。
>>> print(1<2<3)                 #等价于1<2 and 2<3
True
>>> print(1<2>3)
False
>>> print(1<3>2)
True
  • 在Python语法中,条件表达式中不允许使用赋值运算符“=”,避免了误将关系运算符“==”写作赋值运算符“=”带来的麻烦。在条件表达式中使用赋值运算符“=”将抛出异常,提示语法错误。
>>> if a=3:                       #条件表达式中不允许使用赋值运算符
SyntaxError: invalid syntax
>>> if (a=3) and (b=4):	
SyntaxError: invalid syntax

逻辑运算符

  • 逻辑运算符and和or具有短路求值或惰性求值的特点,可能不会对所有表达式进行求值,而是只计算必须计算的表达式的值。
  • P4-1.png
  • 以“and”为例,对于表达式“表达式1 and 表达式2”而言,如果“表达式1”的值为“False”或其他等价值时,不论“表达式2”的值是什么,整个表达式的值都是“False”,丝毫不受“表达式2”的影响,因此“表达式2”不会被计算。
  • 在设计包含多个条件的条件表达式时,如果能够大概预测不同条件失败的概率,并将多个条件根据“and”和“or”运算符的短路求值特性来组织顺序,可以大幅度提高程序运行效率。
  • 代码:
>>> 3 and 5
5
>>> 3 or 5
3
>>> 0 and 5
0
>>> 0 or 5
5
>>> not 3
False
>>> not 0
True

选择结构

  • 常见的选择结构有单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,也可以构造跳转表来实现类似的逻辑。
  • 循环结构和异常处理结构中也可以带有“else”子句,可以看作是特殊形式的选择结构。

单分支选择结构

  • 语法:
if 表达式:
    语句块 
  • P4-2.png
  • 例子:
x = input('Input two number:')
a, b = map(int, x.split())
if a > b:
   a, b = b, a    #序列解包,交换两个变量的值
print(a, b)

双分支选择结构

  • P4-3.png
  • 语法:
if 表达式:
    语句块1
else:
    语句块2
  • 例子:
>>> chTest = ['1', '2', '3', '4', '5']
>>> if chTest:
	  print(chTest)
else:
	  print('Empty')

['1', '2', '3', '4', '5']