作者henry8168 (番薯猴)
看板Python
标题[问题] for loop 的 index 存取问题
时间Tue Jun 26 14:56:52 2018
刚发现一件我误会很久的事情,假设我有段程式码:
for i in range(5):
print(i)
i += 1
我执行的预期结果是
0
2
4
结果却是
0
1
2
3
4
https://imgur.com/V0glZVM.png
这跟 C++ 的理解真的差很多,请问我该怎麽让它出现预期的结果?
因为这本来是写在判断某个条件发生时,要 iterator 跳过下次的执行用的。
写 next(i) 无法达到目的,因为 i 是 int type。
请教各位大神。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.17.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1529996216.A.A47.html
※ 编辑: henry8168 (60.248.17.229), 06/26/2018 15:00:03
1F:→ djshen: 你写i in range(5)那当然每次都是从range(5)拿一个出来阿 06/26 15:01
for i in range(5)
的逻辑应该是
for i in [0,1,2,3,4]
对吧。那这样只能用 while loop 来写吗?
※ 编辑: henry8168 (60.248.17.229), 06/26/2018 15:02:55
3F:→ djshen: 看看range的文件 06/26 15:03
谢谢 确实跟 C++ 的 for 差很多
4F:推 andy19960407: 可以加上每次跳多少的参数吧 06/26 15:39
可是不是每次都要跳两个,而是碰到特定条件才会跳。
如果只能用 while loop,那真的超丑的,初始、回圈、i 加几,就三行了ˊˋ
※ 编辑: henry8168 (60.248.17.229), 06/26/2018 15:56:37
5F:→ kobe8112: 设一个下次要跳过的bool旗标,每次for开头看旗标, 06/26 16:58
7F:→ kobe8112: 如果要跳过,就先把旗标改为false,这次直接continue 06/26 16:58
8F:→ neil987: 看for 的部分 06/26 16:59
9F:→ kobe8112: 我是北七,没看到已经有人回一样意思的文了XDDD 06/26 16:59
10F:→ moyun: for i in range(0,6,2): 06/27 01:44
11F:→ moyun: print(i) 06/27 01:44
12F:→ moyun: 输出结果就会是 06/27 01:44
13F:推 tmdggyygan: 初音 07/02 11:20