Python 模块';随机';没有属性';随机';

Python 模块';随机';没有属性';随机';,python,Python,我已经阅读了stackoverflow的一些其他问题,他们需要做的就是将文件名更改为其他名称,但我的文件名已经不同了: import random x = random.random() print(x) 我得到的错误如下: Traceback (most recent call last): File "math.py", line 1, in <module> import random File "/anaconda3/lib/python3.6/rand

我已经阅读了stackoverflow的一些其他问题,他们需要做的就是将文件名更改为其他名称,但我的文件名已经不同了:

import random

x = random.random()

print(x)
我得到的错误如下:

Traceback (most recent call last):
  File "math.py", line 1, in <module>
    import random
  File "/anaconda3/lib/python3.6/random.py", line 42, in <module>
    from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
  File "/Users/pgao/Documents/Python Project/math.py", line 3, in <module>
    x = random.random()
AttributeError: module 'random' has no attribute 'random'
回溯(最近一次呼叫最后一次):
文件“math.py”,第1行,在
随机输入
文件“/anaconda3/lib/python3.6/random.py”,第42行,在
从数学导入日志为_log,exp为_exp,pi为_pi,e为_e,ceil为_ceil
文件“/Users/pgao/Documents/Python Project/math.py”,第3行,在
x=random.random()
AttributeError:模块“random”没有属性“random”

请帮我回答这个简单的问题,我最近在自学python语言。谢谢

问题在于,
random
模块导入了
math
模块,由于您将自己的源文件命名为
math.py
,因此将导入该模块


将源文件重命名为其他文件。

相反,您成功地将文件命名为
random.py
,而不是
math.py
,这也是一个内置的,
random
导入的文件,从而击中了自己的脚


回溯是完全正确的(感谢您包含它!)。当
random
试图找出它的定义时,它会导入
math
,解析为原始文件。然后,您的原始文件尝试(再次)找出它是什么,但是有一个占位符用于
random
(到目前为止只计算了42行),并且它没有任何
random.random
属性。

尝试执行
random.uniform(0,1)
可能。这将产生一个介于0和1之间的随机浮点。或者
random.randint(lower,higher)
其中lower和higher是随机整数的整数。您的文件名为
math.py
,它将被导入,而不是标准库的数学模块。重命名它,不要在任何文件中使用标准模块的名称。嗨,谢谢你的完整解释,这对我的错误帮助很大。它起作用了。谢谢。