目前难以搞清楚这个。我知道我很近,但我无法弄清楚我哪里出错了。 我希望输出显示一个字符串,其中偶数对应于'? - '奇数对应于'? - ',并将所有字符串连接在一起。例如。 star_wars_iteration(3)应该返回'? - ? - ? - ' 但是,我没有加起来,它只返回一次。
def star_wars_iteration(num_enemy_ships):
counter = 1
result = ''
while counter in range(1,num_enemy_ships + 1):
if counter % 2 == 0:
return '?--'
elif counter % 2 == 1:
return '?-'
result = result + counter
counter = counter + 1
答案 0 :(得分:2)
return
一旦到达就会停止该功能。您也会混淆while
和for
。你想要的是:
def star_wars_iteration(num_enemy_ships):
result = ''
for counter in range(1,num_enemy_ships + 1):
if counter % 2 == 0:
result += '?--'
elif counter % 2 == 1:
result += '?-'
return result
或者,如果您想使用while
,请使用while counter <= num_enemy_ships :
(使用in range(...)
也可以正常工作但效率不必要)并确保counter = counter + 1
行内部 while
阻止。
注意:更简洁和pythonic:
def star_wars_iteration(num_enemy_ships):
return ''.join('?-' if counter % 2 else '?--' for counter in range(1,num_enemy_ships + 1))
答案 1 :(得分:0)
为什么不使用Pythonic迭代器和范围函数来实现它们不需要增加范围内的起始值和结束值:
def star_wars_iteration(num_enemy_ships):
return "".join('?-' if index % 2 else '?--' for index in range(num_enemy_ships))