如果if语句为true,则停止循环

时间:2020-09-21 08:16:46

标签: python python-3.x

使用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)

我似乎无法获得答案

3 个答案:

答案 0 :(得分:3)

python中的

循环具有两个控制语句:continuebreak。 Continue跳过其余的迭代过程,并从顶部开始,直到中断完全离开循环。因此,您要在break条件下else

答案 1 :(得分:1)

您犯了一个小错误。您正在使用if条件使用i != '1'来计数零,但是每当遇到第一个'1'时,您还应该添加else来中断循环,否则循环将继续计数所有零。
这是正确的解决方案:

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)

答案 2 :(得分:1)

您不应该使用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'