为什么这个简单的辊式模具代码不能“打印”任何东西?

时间:2019-10-11 22:34:24

标签: python

教科书中的示例代码是逐个单词编写的,但是当我按Shift + Enter时,没有输出,我也不知道为什么。

我已经尝试将n = 10放入括号中,并再次将值10赋给变量。

import random

def rollDie():
    return random.choice([1,2,3,4,5,6])

def rollN(n):
    result = ''
    for i in range(n):
         result = result + str(rollDie())
    print(result)

我没有收到任何输出或错误消息。它说如果我运行rollN(10),我应该从1-6中获得10个随机整数,但是我什么也得不到。

4 个答案:

答案 0 :(得分:2)

您没有调用rollN()函数。试试这个:

import random

def rollDie():
    return random.choice([1,2,3,4,5,6])

def rollN(n):
    result = ''
    for i in range(n):
         result = result + str(rollDie())
    print(result)

def main():
    rollN(10)

if __name__ == "__main__":
    main()

答案 1 :(得分:0)

“我尝试过将n = 10,”

这里的问题是您有两个 已定义 的函数,但它们从未被 执行 。因此,即使通过在函数参数中设置n = 10,该函数仍未真正被调用。

答案 2 :(得分:0)

尝试

import random
def rollDie(m):
    return random.choices(range(m))[0]

def rollN(n,m=6):
    print(" ".join(map(str,[rollDie(m) for i in range(n)])))

print(rollN(10))

答案 3 :(得分:0)

此代码的问题在于,您正在定义函数,但未在任何地方调用它们。试试这个:

import random

def rollDie():
    return random.choice([1,2,3,4,5,6])

def rollN(n):
    result = ''
    for i in range(n):
         result = result + str(rollDie())
    print(result)

rollN(10)

如果您愿意,可以将代码缩短为:

import random

def rollN(n):
    result = ''
    for i in range(n):
        result = result + str(return random.choice([1,2,3,4,5,6]))
    print(result)

rollN(10)