除了使用def之外,还有更好的方法来重复代码吗?

时间:2015-12-17 09:53:46

标签: python-3.x space-efficiency

我有

    print(randint(0,12))

除了全部复制或使用

之外,还有一种更简单的方法可以在一行中执行这三次
    def RandNum(number):
        print(randint(0,12))

所以我只能用一种方法快速运行第一段代码而不是继续使用。

    (RandNum("number"))

什么时候需要随机数?

感谢。我希望找到尽可能多的替代方法。

4 个答案:

答案 0 :(得分:2)

希望这会有所帮助!!

from random import randint

def RandNum(number):
    l = []
    for _ in range(number):
        l.append(randint(0,12))
    print " ".join(map(str, l))

RandNum(3)

答案 1 :(得分:1)

所以你希望随机randint只执行3次。这就是

from random import randint
timesexecuted = int(0)
while timesexecuted < 3:
    print(randint(0,12))
    timesexecuted = timesexecuted + 1

#after this anything you want happen next.

当您循环次数较多时,此方法最有效,例如,您希望执行print(randint(0,12))数百次,此方法可能最容易编写。

解释

timesexecuted设置为int(0),因为没有循环运行,我们需要定义timesexecuted。我们需要运行循环3次才能执行此操作,在循环中,我们将{1}添加到timesexecuted,因此一旦timesexecuted + 1最多为3(从0开始, 1循环,现在是1,在另一个循环后,变为2,第三循环,现在是3)。由于我们将循环置于timesexecuted下,因为while timesexecuted < 3:现在为3,因为循环已运行3次,timesexecuted不再为真,循环将不再运行。 timesexecuted < 3也可以更改为任意数字,如果循环多次,这种方法可能是最好的。 (例如,使用3)将该程序循环200次

希望我帮助过。

答案 2 :(得分:1)

如果您使用的是python 3,则可以使用print()函数和三个数字列表。可选参数sep具有空格的默认值,因此如果需要三个以空格分隔的数字,则无需定义它。

print(*[random.randint(0, 12) for _ in range(3)])

答案 3 :(得分:0)

首先,有没有理由不能复制'randint'?这是最有效的解决方案,但确实涉及一些打字:

number1 = random.randint(0,12)

如果您不介意使用某个功能(我建议使用),请尝试使用以下功能设置变量:

def RandNum():
        return random.randint(0,12)

number1 = RandNum()
number2 = RandNum()

这将使数字随机,但在整个程序中保持不变。 祝你的计划好运!

P.S。 return命令停止该函数并“返回”主程序。例如如果我有代码:

def function():
        return 3
        return 2
        return 1

主程序只返回3个。