提问人:TRNF 提问时间:9/29/2023 最后编辑:Bart KiersTRNF 更新时间:9/29/2023 访问量:46
如何划分列表的所有元素并将它们全部打印在单独的行上?[复制]
How to divide all elements of a list and print them all on separate lines? [duplicate]
问:
我是编码新手,必须制作一个可以计算角度的函数。我想使用 for 循环将 360 除以列表中的所有元素,然后将它们分别打印在单独的行上,但每次它只除以最后一个元素。我该如何解决这个问题?
num_sides = [3,4,5,6]
def compute_turn_angle():
for i in range(len(num_sides)):
turn_angle = 360 / num_sides[i]
return turn_angle
print(compute_turn_angle())
#This is what I get:
60.0
#But this is what I want:
120
90
72
60
答:
0赞
Stark
9/29/2023
#1
在单独的列表中进行更改,并在打印时返回该列表,为打印函数的“end”属性提供参数值。
num_sides = [3,4,5,6]
def compute_turn_angle():
turn_angle =[]
for i in range(len(num_sides)):
turn_angle[i]=(360 / num_sides[i])
return turn_angle
print(compute_turn_angle(),end='\n')
评论
0赞
NotAName
9/29/2023
这不会产生 OP 请求的确切输出。你测试过代码吗?
0赞
NotAName
9/29/2023
也没必要用丑陋的形式,做就行了range(len(num_sides))
for i in range num_sides
0赞
Stark
9/29/2023
是的,对于整体用例也有更好的方法,我们不需要新列表,我们也可以更新当前列表,但我尝试从 OP 代码中更改最小值
0赞
NotAName
9/29/2023
更好的方法不是“从 OP 代码中更改最小值”,而是展示正确的模式,即使需要更多更改。此外,更新现有列表是一种反模式,您永远不应该这样做。
0赞
Stark
9/29/2023
我也同意,仅供参考,更新一个范围仅限于函数的列表,在函数内不是反模式,如果我实际更新原始输入列表,反模式将是。
0赞
eekinci
9/29/2023
#2
之后,您可以在列表后面附加结果,以便您可以循环打印它:turn_angle = 360 / num_sides[i]
turn_angles
turn_angles.append(turn_angle)
num_sides = [3, 4, 5, 6]
def compute_turn_angles():
turn_angles = []
for i in range(len(num_sides)):
turn_angle = 360 / num_sides[i]
turn_angles.append(turn_angle)
return turn_angles
angles = compute_turn_angles()
for angle in angles:
print(angle)
如果不将结果附加到列表中,您只是覆盖列表中的最后一个结果。 始终只包括最后的计算。turn_angle
60
print(turn_angle)
之后也会做这个伎俩;)turn_angle = 360 / num_sides[i]
上一个:多个级别的函子
评论
具有的单个值。有关详细信息,请参阅链接的副本。
return
return turn_angle
turn_angle