当 if 语句为 true 时停止 for 循环

使用 while 和 if 语句来计算第一个 1 之前有多少个 0(从左到右)。


code = '00000000101100110001111110110011'


num_zero_before_1 = 0


for i in code:

  if i != '1':

    num_zero_before_1+=1


print(num_zero_before_1)

我似乎无法得到答案


慕勒3428872
浏览 105回答 3
3回答

慕姐8265434

python 中的循环有两个控制语句:continue和break。continue 跳过迭代的其余部分并从顶部开始,break 完全离开循环。所以你在这里想要的是break有条件的else。

开心每一天1111

你犯了一个小错误。您可以使用 if 条件来计算零i != '1',但您还应该添加 else 来在第一次遇到时中断循环'1',否则您的循环将继续计算所有零。这是正确的解决方案:code = '00000000101100110001111110110011'num_zero_before_1 = 0for i in code:    if i != '1':        num_zero_before_1+=1    else:        breakprint(num_zero_before_1)

HUH函数

难道不应该用while循环来代替for... in循环吗?该解决方案应满足练习假设:iterator = 0while 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 = 0while code[iterator] != '1':    iterator += 1print(iterator)  # number of zero before '1'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python