在python中打印循环时,如何获得唯一的随机输出?

时间:2019-06-10 23:45:00

标签: python loops random

所以我想要一个脚本给我一组10个简单多项式来简化。让我们忽略当前输出不是有效多项式的事实。我想用随机整数,变量和运算符打印10,但是当我循环它们时,我只会遇到10次相同的问题。每次如何获得唯一的设置?

我很难获得一个唯一的术语,但是通过为每个术语创建一个唯一的术语(term0,term1)等解决了这个问题。

import random

def int():
    interger = random.randint(2,10)
    return interger

def variable():
    letter  = ["x","y",""]
    variable = random.choice(letter)
    return variable

def op():
    op  = ["+","-","+"]
    operation = random.choice(op)
    return operation

term0 = op(), int(), variable()
term1 = op(), int(), variable()
term2 = op(), int(), variable()
term3 = op(), int(), variable()

for x in range(10):
    print(*term0,*term1,*term2,*term3,sep='',)

我希望为每个循环获得唯一的输出,但是目前我只得到10次相同的结果。

2 个答案:

答案 0 :(得分:2)

在循环内调用随机选择函数。这样,元素将在每次迭代中随机选择一次,而不是在循环之前选择一次:

for x in range(10):
    term0 = op(), int(), variable()
    term1 = op(), int(), variable()
    term2 = op(), int(), variable()
    term3 = op(), int(), variable()
    print(*term0,*term1,*term2,*term3,sep='',)

答案 1 :(得分:0)

您没有 not 生成十个多项式。您为一个多项式生成了四个项,然后打印了相同数据十次。如果需要新值,则需要在循环内而不是外部调用函数。

for x in range(10):
    term0 = op(), int(), variable()
    term1 = op(), int(), variable()
    term2 = op(), int(), variable()
    term3 = op(), int(), variable()

    print(*term0, *term1, *term2, *term3, sep='',)