python3中 for循环容易出现的问题

python3 for循环的使用误区

作为一个先接触 C语言,C++,java等高级语言,再使用python的小白(菜鸡)来说会遇到一些奇奇怪怪的bug ,今天在刷LeetCode的时候,就遇到了一个关于python中for 循环的误区,如有错漏,希望我有幸能得到大佬们的指正,也欢迎大家能与我多多交流讨论。
如果你执行下列代码:

j = 0
for i in range(5):
	i += 1
	j += i
print( j)

按照 C 的 想法来来编写代码的话,就会写出以下代码:

for(int i = 0; i < 5; i++){
 		i ++;
 		j += i
 		
}
print(j)

按照我的想法,这两个输出一定会一致,实际上这两个输出完全不同。
python:

15

C:

9

其实查过python的文档就知道,在python for i in x 循环中 改变i的值不会影响到下一次循环因为range函数产生了一个迭代器(python2 为一个列表)。
产生这个bug的原因 纯粹是我太菜了,把 python的循环想成和c一样了,从而产生了这个bug,谨以此来记录这次错误,以防下次再犯,也希望能提醒和我出现同样错误的语言小(da)白(佬)们(未来的大佬),并希望大家都能早点变成自己心中的大佬的模样,共勉!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值