3 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
TA贡献1813条经验 获得超2个赞
python 中的循环有两个控制语句:continue
和break
。continue 跳过迭代的其余部分并从顶部开始,break 完全离开循环。所以你在这里想要的是break
有条件的else
。
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
TA贡献1836条经验 获得超13个赞
你犯了一个小错误。您可以使用 if 条件来计算零i != '1',但您还应该添加 else 来在第一次遇到时中断循环'1',否则您的循环将继续计算所有零。
这是正确的解决方案:
code = '00000000101100110001111110110011'
num_zero_before_1 = 0
for i in code:
if i != '1':
num_zero_before_1+=1
else:
break
print(num_zero_before_1)
![?](http://img1.sycdn.imooc.com/5458626a0001503602200220-100-100.jpg)
TA贡献1836条经验 获得超4个赞
难道不应该用while循环来代替for... in循环吗?
该解决方案应满足练习假设:
iterator = 0
while True:
if code[iterator] != '1':
iterator += 1
else:
break # it stops the loop, goes out of it
print(iterator) # number of zero before '1'
然而,这个解决方案更短更容易,也许对你有用:
iterator = 0
while code[iterator] != '1':
iterator += 1
print(iterator) # number of zero before '1'
添加回答
举报