学习记录,欢迎指出错误
流程控制
Python中流程控制语句有
-
if
语句 -
for
语句 -
while
语句
if语句
在Python中if语句的一般形式为:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
.
.
.
else:
statement_block_3
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 用elif代替了else if,所以if语句的关键字为:if – elif – else。
- 在Python中没有switch – case语句。
for语句
在Python中for语句的一般形式为:
for <variable> in <sequence>:
<statements>
else:
<statements>
- for循环可以遍历任何序列的项目
while语句
在Python中while语句一般形式为
while 判断条件
语句
- 在Python中没有do...while循环
在for和while语句中,可使用break
和continue
语句及循环中的else
子句
- break语句可以跳出for和while的循环体。如果你从for或while循环中终止,任何对应的循环else块将不执行。
- continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
- 循环语句可以有else子句,它在穷尽列表(以for循环)或条件变为假(以while循环)循环终止时被执行,但循环被break终止时不执行。
- pass语句什么都不做,它只在语法上需要一条语句但程序不需要任何操作时使用。
range()语句
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
>>> for n in range(3):
print(n)
0
1
2
指定区间
>>> for n in range(2,6):
print(n)
2
3
4
5
指定区间并指定增量
>>> for n in range(0, 10, 3):
print(n)
0
3
6
9
可以是负数,又叫做“步长”
>>> for n in range(0, -10, -3):
print(n)
0
-3
-6
-9
递归函数
- 在函数内部,可以调用其他函数。如果一个函数在内部调用自己本身,这个函数就是递归函数。
- 递归函数的有点是定义简单,逻辑清晰,使用递归函数需要注意防止栈溢出。
在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。 - 通过尾递归解决递归调用栈溢出。
尾递归是指,在函数返回的时候,调用自己本身,并且return
语句不能包含表达式。这样,递归本身不管调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。