python流程控制函数_python流程控制

python if条件控制

if 语句 直接上实例

>>> x = int(input("Please enter an integer: "))

Please enter an integer: 42

>>> if x < 0: //如果

... x = 0

... print('Negative changed to zero')

... elif x == 0: //或者 如果

... print('Zero')

... elif x == 1: //或者 如果

... print('Single')

... else: //或者

... print('More')

...

More

这里要记住 if和else的组合,如果有多条件时,elseif 简写成elif.

python for 语句

for 子元素 in 集合,如

>>> # Measure some strings:

... words = ['cat', 'window', 'defenestrate']

>>> for w in words:

... print(w, len(w))

...

cat 3

window 6

defenestrate 12

遍历某个集合的同时修改该集合的内容,很难获取想要的结果。要在遍历时修改集合的内容,应该遍历该集合的副本或创建新的集合:

# Strategy: Iterate over a copy

for user, status in users.copy().items():

if status == 'inactive':

del users[user]

# Strategy: Create a new collection

active_users = {}

for user, status in users.items():

if status == 'active':

active_users[user] = status

上述代码,在for循环嵌套了if条件语句,这是控制语句的嵌套。

range() 函数

内置函数 range() 常用于遍历数字序列,该函数可以生成算术级数:

>>> for i in range(5):

... print(i)

...

0

1

2

3

4

前面章节有range()函数的用法,再来个实例:

>>> for i in range(5, 10)

5, 6, 7, 8, 9

>>> for i in range(0, 10, 3)

0, 3, 6, 9

>>> for i in range(-10, -100, -30)

-10, -40, -70

range() 和 len() 组合在一起,可以按索引迭代序列:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']

>>> for i in range(len(a)):

... print(i, a[i])

...

0 Mary

1 had

2 a

3 little

4 lamb

如果只输出 range,会出现意想不到的结果:

>>> print(range(10))

range(0, 10)

range() 返回对象的操作和列表很像,但其实这两种对象不是一回事。迭代时,该对象基于所需序列返回连续项,并没有生成真正的列表,从而节省了空间。

这样的对象称为可迭代对象 iterable,函数或程序结构可从该对象中获取连续项,直到所有元素全部迭代完毕。for 语句就是这样的架构,sum() 是一种把可迭代对象作为参数的函数:

>>> sum(range(4)) # 0 + 1 + 2 + 3

6

后文将介绍更多返回可迭代对象,或把可迭代对象当作参数的函数。 最后,介绍一种用 range 生成列表解决方案:

>>> list(range(4))

[0, 1, 2, 3]

break 和 continue 语句

break 语句和 C 中的类似,用于跳出最近的 for 或 while 循环。

循环语句支持 else 子句;for 循环中,可迭代对象的元素全部循环完毕时,或 while 循环的条件为假时,执行该子句,break 语句终止循环时,不执行该子句。 请看下面这个查找素数的循环示例:

>>> for n in range(2, 10):

... for x in range(2, n):

... if n % x == 0:

... print(n, 'equals', x, '*', n//x)

... break

... else:

... # loop fell through without finding a factor

... print(n, 'is a prime number')

...

2 is a prime number

3 is a prime number

4 equals 2 * 2

5 is a prime number

6 equals 2 * 3

7 is a prime number

8 equals 2 * 4

9 equals 3 * 3

与 if 语句相比,循环的 else 子句更像 try 语句的 else 子句: try 语句的 else 子句在未触发异常时执行,循环的 else 子句则在未运行 break 时执行。

continue 语句也借鉴自 C 语言,表示继续执行循环的下一次迭代:

>>> for num in range(2, 10):

... if num % 2 == 0:

... print("Found an even number", num)

... continue

... print("Found an odd number", num)

Found an even number 2

Found an odd number 3

Found an even number 4

Found an odd number 5

Found an even number 6

Found an odd number 7

Found an even number 8

Found an odd number 9

pass 语句

pass 语句不执行任何操作。语法上需要一个语句,但程序不实际执行任何动作时,可以使用该语句。例如:

循环语句的pass用法

>>> while True:

... pass # Busy-wait for keyboard interrupt (Ctrl+C)

...

这段代码创建了一个最小的类:

>>>

类的pass用法

>>> class MyEmptyClass:

... pass

...

pass 还可以用作函数或条件子句内的占位符,让开发者聚焦更抽象的层次。此时,pass 直接就被忽略了:

>>>

函数的pass用法

>>> def initlog(*args):

... pass # Remember to implement this!

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值