关系运算符
if 语句
实际应用中的程序,大多不是一撮而就的,而是根据条件不同存在很多分支。
最基本的条件分支结构是if...else...语句即如果。。。否则。。。
在python当中,if condition1:(注意最后的冒号:)称为“语句头”。冒号:之后另起一行缩进的是“语句体”,语句体的行数不限,但至少有一行,否则需要用pass填充(即什么也不做)。
缩进是Python复合语句的关键,初学者经常因缩进不当而导致报错。关于缩进的习惯可以分为两个派别:Tab党,和Space党,即用Tab键或空格键来控制缩进。(我本人常年坚持使用Tab)
if之后必须是一个布尔表达式(如 condition1),当它为 True 时,执行其对应的语句体(branch1),否则向下跳转到后一个语句头(elif)。如果所有的 if 都没有被满足,则执行最后一个 else对应的语句体。
每个if分支所属的程序体都需要缩进,否则会产生语法错误,这与C/C++/Java等使用大括号 {} 的语言不同。
其实我个人认为,使用大括号的代码可读性更高,而且不容易在传播过程中失真。
下面写一个小程序判断一个数是奇数还是偶数
循环
Python只支持两种循环:for 循环和 while 循环。
在语法结构上和 if/else 有些接近,比如语句头需要加冒号(:),语句体需要缩进。
for 循环
在上一课中,我们介绍过对字符串的in和not in运算符:in运算符并非字符串的专利,很多数据类型都具备这样的性质,可以作为“迭代器”。
迭代器
组成 for 循环的一个关键部分就是迭代器。最常用的迭代器其实是列表(list)。字典(dictionary)也可以作为迭代器,迭代对象就是键(key)。
这些可以作为迭代器的数据容器,在之后的几节会详细介绍他们的属性,下面先来看一个简单的小例子:
迭代器共有4个元素,分别是4个汉字。for循环迭代了四次,每次取一个字,并执行print()函数。
range()函数
range()函数可以生成特定形式的数值迭代数列,经常配合 for 循环使用。range()读取三个参数,分别对应三种情况:
range(a):一个参数,这个参数就是数列的上限(开区间,不包含这个数本身),下限默认为0。
range(a, b):两个参数分别指定了上下限。下限(a)是闭区间,也包含在其中;而上限(b)则是开区间,不参与计算。
range(a, b, c):三个参数。第三个参数叫步长,前两个例子没有第三个参数,因此都是以默认值 1 为步长。本例中我们人为指定了步长。输出了 10 以内的偶数。值得再次提醒的是,这里的“10以内”不包括10。注意,如果 range(a, b) 的参数 a>b,那么返回的将是一个空数组。
如果步长为负数,会返回什么样的结果呢?
看下图
while 循环
while 循环会持续反复执行循环内语句,直到condition == False。
每次执行语句之后,都会重新检查条件是否为真,如果为假则跳出循环。
下面出一个编程小练习:
找出 100 以内三的倍数,放入列表 numbers 中。
numbers = []
列表添加元素地方法是:numbers.append()
>>>> 编程区 <<<<
>>>> 编程区 <<<<
下篇文章我们公布答案。