0

我已经总结了我正在努力弄清楚的一些事情的逻辑(Python新手,我已经很久没有做过任何编码了)。我有下面的代码,目的是滚动 d6limit次(在本例中为 300),然后在定义的迭代次数上生成一个文件,其中每 300 次迭代生成的骰子滚动到它自己的文件中。

我得到的是 n ( loops) 个文件,每个文件都有相同的数据。所以现在这将返回 random1.txt、random2.txt 和 random3.txt 并且它们都将具有相同的值。

显然我需要results在父while循环()的每次迭代开始时以某种方式重新初始化while loops >=1:,我只是不知道如何。

如果有人能同情一个笨拙的艺术家,我将不胜感激!这是我正在进行的一个艺术项目的一部分,如果有人好奇的话,我会用 axidraw 制作生成艺术。

import numpy as np
import os

loops = 3  # will generate n files
limit = 300    
throw = 1.0        
results = []

while loops >=1:
    loops -= 1
    while throw <= limit:   
        roll = np.random.randint(1, 7)
        throw += 1
        results.append(roll)

    n = 1
    while os.path.exists("random%s.txt" % n):
        n += 1

    listToStr = ' '.join(map(str, results))
    f = open("random%s.txt" % n, "w" )
    f.write(listToStr)
    f.close()
4

1 回答 1

0

一些错误艺术家的代码:-)

import numpy as np

nRolls = 8
for f in [1,2,3]:
    # Generate 8 rolls of the die
    rolls = np.random.randint(1,7,nRolls)
    # Save like a CSV
    np.savetxt(f'random{f}.txt', [rolls], delimiter=',', fmt='%d')

random1.txt

5,2,3,5,4,6,6,1

random2.txt

1,6,6,1,1,4,2,1

random3.txt

5,4,4,4,6,3,1,5
于 2021-05-15T08:29:37.570 回答