使用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)
我似乎无法获得答案
答案 0 :(得分:3)
循环具有两个控制语句:continue
和break
。 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'