首页 > 解决方案 > 每次循环完成时如何重新分配变量?

问题描述

这两个版本我都试过了:

import random 
def r(n):
    random.seed(1234)
    for i in range(n):
        x=random.uniform(-1,1)
        y=random.uniform(-1,1)
        return (x,y)

import random 
def r(n):
    random.seed(1234)
    while n>0:
        n-=1
        x=random.uniform(-1,1)
        y=random.uniform(-1,1)
        return (x,y)

但两者都只产生 1 分。我希望让它产生n随机点(x,y)并让它打印出所有n点。

标签: python

解决方案


您只需要将结果累积在一个列表中并返回该列表。这有效:

import random 
def r(n):
    random.seed(1234)
    results = []
    for i in range(n):
        x=random.uniform(-1,1)
        y=random.uniform(-1,1)
        results.append((x,y))
    return results

results = r(10)
print(results)

出去:

[(0.9329070713842775, -0.11853480164929464), 
(-0.9850170598828256, 0.8219519248982483), 
(0.878537994727528, 0.16445514611789824), 
(0.3431269629759701, -0.8321235463258321), 
(0.5329618655835926, -0.5263804492737645), 
(-0.9383719565467801, 0.577545434472567), 
(-0.3078220688057538, 0.24656295007833706), 
(0.23163139020723045, -0.7028907225834249), 
(-0.6338187051801367, -0.7711740606226247), 
(-0.9707624390261818, -0.026496918790483326)]

推荐阅读