【发布时间】:2020-02-27 07:57:31
【问题描述】:
大家好,我知道这个问题可能看起来很愚蠢,但我才刚刚开始。这是 Python 3.7。
无论如何,我已经编写了 2 个版本的代码,第二个版本可以工作,但是我添加了另一个我认为不需要的 while 循环。为什么第一个版本不起作用?它迭代一个数字列表(nums)。
这是来自问题陈述: 编写一个函数,接收一个整数列表,如果按顺序包含 007,则返回 True。
- spy_game([1,2,4,0,0,7,5]) --> 是的
- spy_game([1,0,2,4,0,5,7]) --> 是的
- spy_game([1,7,2,0,4,5,0]) --> 错误
我的第一个代码是这样的,它总是返回 False:
z = 0
for i in nums:
while z < 2:
if i != 0:
break
else:
z += 1
break
if i != 7:
break
else:
return True
return False
为什么会发生这种变化,让它发挥作用?
z = 0
for i in nums:
while z < 2:
if i != 0:
break
else:
z += 1
break
while not z < 2:
if i != 7:
break
else:
return True
return False
非常感谢!
【问题讨论】:
-
对于
[1, 0, 3, 0, 7]之类的列表,这也将返回true。而且由于您正在遍历列表,因此您根本不需要while语句 - 每个值都只是while,这很奇怪,我认为您也会得到仅在[0, 7]上进行匹配,因为当 while 循环到达零时,它会将 z 增加到 2。
标签: python loops for-loop if-statement while-loop