<p>问题的简短回答是从readast()返回一批x、y、z,然后在distance()中迭代这些相同的值,而不改变它们15次。在</p>
<p>你似乎对文件和列表有点困惑(也许?)。我在这里都做过。open()调用在文件系统中打开一个文件并向其中写入文本。你这样实例化的列表:一些\-list=[]或者其他的\-list=[1,2,3]或者其他方式。。。写入文件时,文件中的当前位置将移到末尾。您可以使用seek()将当前位置移回文件中,但列表更好,除非您有数百万个这样的东西。如果您不需要这些文件,那么您可以注释掉引用它们的行,因为我们使用这里的列表在函数之间进行通信。希望这能给你指明正确的方向。。祝你好运。在</p>
<pre><code>import random
import math
def write_ast():
asteroids = open('asteroids.txt','w')
ast_list = []
letter = 'A'
for line in range(15):
x = random.randint(1,1000)
y = random.randint(1,1000)
z = random.randint(1,1000)
asteroids.write('%s\t%s\t%s\t%s\n' % (letter, x, y, z))
ast_list.append((letter, x, y, z))
letter = chr(ord(letter) + 1)
return ast_list
def write_distance(ast_list):
distance = open('distance.txt','w')
dist_list = []
for letter, x, y, z in ast_list:
x1=x**2
y1=y**2
z1=z**2
distance_from_origin = math.sqrt(x1+y1+z1)
distance.write("%s\t%s\t%s\t%s\t%s\n" % (letter, x, y, z, distance_from_origin))
dist_list.append((letter, x, y, z, distance_from_origin))
return dist_list
ast_list = write_ast()
write_distance(ast_list)
</code></pre>