Python if for else elif while break loop pass 控制流工具

本文介绍Python中的if语句与多种条件判断方式,以及for循环语句的使用,包括序列遍历、修改序列注意事项、range()函数生成序列、遍历索引、迭代与可遍历对象概念、else子句应用、continue与pass语句的用法。通过实例演示了如何在编程中灵活运用这些核心语法元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


if 语句:
1、if ... elif ... elif ... else ,其中 else 是可选的,if 和 elif 有相同的缩进,在一行最后有一个冒号

for 语句:
2、跟 C 和 Pascal 有些区别,Python 的 for 语句按照 item 在序列中排列顺序遍历中的所有 item

>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
...     print(w, len(w))
...
cat 3
window 6
defenestrate 12

3、如果你需要修改你正在遍历的序列,推荐首先制作序列的一个副本 copy
>>> for w in words[:]:  # Loop over a slice copy of the entire list.
...     if len(w) > 6:
...         words.insert(0, w)
...
>>> words
['defenestrate', 'cat', 'window', 'defenestrate']

4、range() 函数

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4

给定的 终点 end point 从来不是产生的序列的一部分,range(10) 产生 0~9

5、可以指定序列的开始数字,公差默认为 1,也可以指定 等差数列 的公差
range(5, 10)
   5 through 9

range(0, 10, 3)
   0, 3, 6, 9

range(-10, -100, -30)
  -10, -40, -70

6、为了遍历序列的索引,可以结合 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

7、range() 返回的不是一个 list,而是一个 object,当你遍历它时,他会按照预订的顺序返回,to save space。所以当你输入下面的语句时,会出现奇怪的结果:
>>> print(range(10))
range(0,10)

8、我们说一个 对象 object 是 可遍历的 iterable,也就是说,适用于那些需要获得连续 item 直到最后一个的函数的对象。我们看到 for 语句是一个 iterator,函数 list()是另外一个,它从 iterable 中创建 lists
>>> list(range(5))
[0, 1, 2, 3, 4]

9、Python 中,else 子句更多地与 循环语句,或者 try 语句一起使用。跟前者使用表示没有 break 执行,跟 try 语句一起使用,表示没有异常发生
一个寻找素数的算法:
>>> 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

10、continue 子句的用法跟在 C 语句中完全一样

11、pass 语句什么也不做,用于一个 block 在语法上需要一个语句,但是没有必要执行任何操作时
>>> while True:
...     pass  # Busy-wait for keyboard interrupt (Ctrl+C)
...

12、pass 也可作为一个占位符,允许你保持思考更抽象的层次
>>> def initlog(*args):
...     pass   # Remember to implement this!
...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值