【问题标题】:Python printing random numbers in functionsPython在函数中打印随机数
【发布时间】:2019-02-02 09:48:30
【问题描述】:

我正在尝试做一个掷骰子的模拟器,我还没有走多远,我已经遇到了问题。

这是我的代码:

#Dice roll simulation

from random import *

#The minimum and maximum numbers on the dice
min = 1
max = 6

#The function for rolling the dice. Should print a number between 1 and 6...
def roll (min, max):
number = random.randint(min, max)
    print(number)
    return

roll(min, max)

函数“roll”应该打印出一个介于 1 和 6 之间的随机数,但是,每当我运行程序时,我都会收到以下错误消息:

C:\Users\Sebastian\PycharmProjects\minigames\venv\Scripts\python.exe C:/Users/Sebastian/PycharmProjects/minigames/diceroll.py Traceback (最近一次通话最后):文件 “C:/Users/Sebastian/PycharmProjects/minigames/diceroll.py”,第 15 行, 在 滚动(最小,最大)文件“C:/Users/Sebastian/PycharmProjects/minigames/diceroll.py”,第 11 行, 卷中 number = random.randint(min, max) AttributeError: 'builtin_function_or_method' 对象没有属性 'randint'

进程以退出代码 1 结束

【问题讨论】:

  • 从调用中删除随机数,只使用randint,如果不是,也缩进函数中的第一行,但假设有错别字
  • 尝试 import random 或将 random 留在函数调用中

标签: python-3.x


【解决方案1】:

random 模块包含randint 方法,因此:

  1. from random import * 替换为import random
  2. 按照 Ab Bennt 的建议,将 random.randint 替换为 randint

【讨论】:

    【解决方案2】:

    为什么你的代码失败了?

    问题在于您的import 声明。

    如何纠正?

    您的代码包含from random import * 作为第一条语句。这将导入 random.py 中存在的所有项目。因此下面的代码将起作用。

    from random import *
    print(randint(1,6))
    

    另一种选择是导入模块如下。

    import random
    print(random.randint(1,6))
    

    在上述两种方法中,较好的做法是使用第二种。原因是当你的代码增长时,很容易识别被调用函数的来源。

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 1970-01-01
      • 2013-10-24
      • 2023-03-03
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2021-12-15
      • 2022-12-17
      相关资源
      最近更新 更多