《Python编程快速上手》3、通过试验了解控制流
[复制链接]
我们已经了解了单条指令的基本知识。接下来控制流,其实就是逻辑判断,“控制流语句”可以决定在什么条件下执行哪些 Python 语句。
就像如下的流程图,通常有不止一种方法从开始走到结束。计算机程序中的代码行也是这样。流程图用菱形表示这些分支节点,其它步骤用矩形表示。开始和结束步骤用带圆角的矩形表示。
在学习流程控制语句之前,我们要了解一下布尔值、比较操作符和布尔操作符。
“布尔”数据类型只有两种值:True 和 False。Boolean(布尔)的首字母大写,因为这个数据类型是根据数学家 George Boole 命名的。在作为 Python 代码输入时,布尔值 True 和 False 不像字符串,两边没有引号,它们总是以大写字母 T 或 F 开头,后面的字母小写。在交互式环境中输入下面内容,其中有些指令是故意弄错的,它们将导致出错信息。在Python中True 和 False是两个特殊的存在,他们不能作为变量名,却可以存储在变量中。
比较操作符有如下:
比较操作符和其他语言基本上是一致的,通过比较后可以输出布尔值;<、>、<= 和 >= 操作符仅用于整型和浮点型值,== 和 != 操作符实际上可以用于所有数据类型的值。
布尔操作符(and、or 和 not)用于比较布尔值,输出也是一个布尔值。and 和 or 操作符总是接受两个布尔值(或表达式),所以它们被认为是“二元”操作符。and只有两个布尔值全为True时输出True,or是只要有一个True就会输出True。not 操作符只作用于一个布尔值(或表达式),实际上就是取反。
我们可以将比较操作符形成的表达式和布尔操作符进行混合使用,计算规则如下:在所有算术和比较操作符求值后,Python 先求值 not 操作符,然后是 and 操作符,然后是 or 操作符。
接下来就是控制流
控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。
条件实际上就是布尔表达式的判断,根据条件是 True 还是 False,来决定做什么。几乎所有的控制流语句都使用条件。
子句就是判断后执行的代码,与其他语言不同的是,Python是通过缩进的方式划分(C语言中是通过符号)
name = 'Mary'
password = 'wordfish'
if name == 'Mary':
print('Hello Mary')
if password == 'swordfish':
print('Access granted.')
else:
print('Wrong password.')
输出如下:
最常见的控制流语句是 if 语句,判断为True就执行子句,else 语句只能和if 语句共同使用,if 语句判断为False执行else 语句下的子句。elif 语句是“否则如果”,总是跟在 if 或另一条 elif 语句后面。它提供了另一个条件,仅在前面的条件为 False 时才检查该条件。
利用 while 语句,可以让一个代码块一遍又一遍的执行。只要 while 语句的条件为 True,while 子句中的代码就会执行。
如下测试:
spam = 0
while spam < 1000:
print('Please enter the number:\n')
spam = int(input())
print('The number exceeds 1000 and the program ends\n')
结果如下:
当输入数字不小于1000时,程序结束。
有时候while会造成“无限循环”,我们单线程的硬件一般也是通过这种方式实现持续运行,break 语句可以帮助我们推出循环。continue 语句可以让我们不执行后面的语句,从而回到循环开始的地方重新执行。
for 循环和 range() 函数可以实现有限次数的循环:
for num in range(10):
print('cycle-index: '+str(num))
效果如下:
range(0, 10, 2)函数有几种形式:只有一个参数时是限值,步进为1,两个参数时是开始值和限值,步进为1;三个参数时是开始值、限值、步进值。(注意限值是无法达到的)
Python中有一些标准库可以使用,例如math 模块,math 模块有数学运算相关的函数,random 模块有随机数相关的函数等等。
下面是随机数的使用方法:
import random
for num in range(5):
print('random: '+str(random.randint(1, 100)))
首先我们要加载对应的标准库才能使用,效果如下:
到这里我们对于控制流相关的基础知识进行了全面的了解,并且通过实验进行了实践,连接具体的使用,这里可以看到,大多数的内容和其他语言是相同的,只不过在表象形式上尤其独特的特点,之前就在缩进方式上吃过小苦。
|