控制流if、while、for语句学习
if elif else语句
if语句是一种最常见的控制流语句类型。它用于判断一个条件,如果为True,则执行紧跟其后的代码块。
一条if语句可以跟上一个或多个elif块以及一个“滴水不漏”的else块(如果所有条件都为False)。
if ... :
Print(“”)
elif... :
Print(‘’)
...(Tab键缩进的一整块代码块)
elif... :
...
...
...
else...(条件判断True or False):
.....
....
....
如果任何一个条件为True,则其后的elif或else块就不会执行。对于用and或or组成的符合条件,各条件是按从左到右的顺序求值的,而且是短路的。
范例:
>>>a = 5, b = 7
>>>c = 8 , d = 4
>>>if ad:
Print(“Make it”)
Make it
在本例子中,比较运算c>d是不会被计算的,因为第一个比较运算为True。
for循环
For循环用于对集合(比如列表或元组)或迭代器进行迭代,for循环的标准语法是:
for value in collection:
#对value做一些处理
continue关键字 用于使for循环提前进入下一次迭代(即跳过代码块的剩余部分)。
看看下面这段代码,其功能是对列表中的整数求和并跳过None值。
>>> sequence = [1,2,None,4,None,5] #单词sequence:序列、数列
>>> total = 0
>>> for value in sequence:
if value is None :
continue #该次循环执行到此,不执行该循环(改代码块)剩下的total += value部分,提前进入下一次循环
total += value
>>> print(total)
12
>>>
break关键字用于使for循环完全退出。下面这段代码用于对列表的元素求和,遇到2就退出:
>>> sequence = [1,2,None,4,None,5]
>>> total = 0
>>> for value in sequence:
if value ==2 :
break
total += value
>>> print(total)
1
>>>
后面我们还会看到,如果集合或迭代器的元素是序列类型(比如元组或列表),那么还可以非常方便地将这些元素拆散成for循环语句中的多个变量:
for a,b,c in iterator: #for循环中一共有3个变量a , b , c,iterator:迭代器、迭代程序的意思
#做一些处理(前面按Tab键)
while循环
While循环定义了一个条件和一个代码块,只要条件不为false或者循环没有被break显示终止,则代码块将一直不断的执行下去:
>>> x = 256
>>> total = 0
>>> while x > 0 :
if total > 500 :
break
total += x
>>> print(x)
256
>>> print(total)
512
>>>
for循环和while循环的区别:
两者从表达能力上说是等价的,即两者能够完成的事情是一样的。
其次,由于for语句将初始化,循环条件和每次循环后对循环变量的修改放在一起,比较清晰直观。因此for语句常用于能够预先判断循环次数的循环或遍历中。如遍历一个数组,或者执行某操作若干次之类。此时用for语句较优。
while语句的历史更久,表达方式上更自由灵活,常用于无法事先判断循环次数的循环。譬如经典的计算C风格字符串的长度的代码,又如后根遍历二叉树的非递归实现。此时用while语句会使程序更清晰。
总之一句话,两者从表达能力上说是等价的,for语句常用于能够预先判断循环次数的循环或遍历中(比如遍历一个数组、列表、元组或者执行某操作若干次之类),while常用于无法事先判断循环次数的循环(比如计算字符串的长度的代码)。
pass
pass是Python中的空操作语句,它可以被用在那些没有任何功能的代码块中。由于Python是根据空白符划分代码块的,所以它的存在是很有必要的。
if x<0:
print(“negative”)
elif x==0:
#TODO:在这里放点代码
pass
else :
print(“positive”)
在开发一个新功能时,常常会将pass用作代码中的占位符:
def f(x,y,z):
#TODO:实现这个函数!
pass