为什么我的 "while" 函数会导致无限循环?
Why is my "while" function causing an infinite loop?
我正在尝试创建一个函数来将列表中的所有值加倍。但是,当我 运行 时,我得到了一个无限循环。这是我的代码:
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
return ll
因为你的 I 在这个 while 循环中实际上从未增加过。如果你真的想这样做,你可以在函数的末尾添加一个 i += 1
def double_values_in_list ( ll ):
i = 0
while (i<len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i += 1
return ll
print(double_values_in_list([1, 2]))
但是,您不需要执行很多额外的步骤,您可以简单地 运行 一个 pythonic for 循环来使事情变得容易得多
def double_values_in_list (ll):
return [x*2 for x in ll]
print(double_values_in_list([1, 2]))
您不会在 while 循环内的任何时候递增 i
因此您的 i
将始终保持 0 因为你在开始时用 0 初始化它因此 i
将总是小于你的列表的长度 ll
因此 无限循环 .
考虑像这样替换你的方法
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i = i + 1
return ll
我正在尝试创建一个函数来将列表中的所有值加倍。但是,当我 运行 时,我得到了一个无限循环。这是我的代码:
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
return ll
因为你的 I 在这个 while 循环中实际上从未增加过。如果你真的想这样做,你可以在函数的末尾添加一个 i += 1
def double_values_in_list ( ll ):
i = 0
while (i<len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i += 1
return ll
print(double_values_in_list([1, 2]))
但是,您不需要执行很多额外的步骤,您可以简单地 运行 一个 pythonic for 循环来使事情变得容易得多
def double_values_in_list (ll):
return [x*2 for x in ll]
print(double_values_in_list([1, 2]))
您不会在 while 循环内的任何时候递增 i
因此您的 i
将始终保持 0 因为你在开始时用 0 初始化它因此 i
将总是小于你的列表的长度 ll
因此 无限循环 .
考虑像这样替换你的方法
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i = i + 1
return ll