2016-07-06 37 views
1

我對Python非常陌生(因爲這是我寫的第一個腳本),我只是在嘗試做出一些可行的東西。Python'函數'對象沒有屬性'統一'

我寫了以下內容:

# Roll the Dice 

from random import randint 

x = randint.uniform(1, 6) 
y = randint.uniform(1, 6) 

print str(x + y) 

這應該簡單地返回2和12之間的任意整數,但我發現了以下錯誤消息,當我嘗試運行它:

Traceback (most recent call last): 
    File "C:/FilePath/Python Testing.py", line 5, in <module> 
    x = randint.uniform(1, 6) 
AttributeError: 'function' object has no attribute 'uniform' 

我覺得這是一個超級簡單的腳本,不應該失敗,但由於我對此很陌生,我甚至不知道從何處開始故障排除。我發現this SO問題是類似的,但該決議不適合我的問題(或者我認爲)。

我通過PyCharm 2016年1月4日

使用Python 2.7.12任何幫助表示讚賞!

+1

它是'random.uniform',而不是'randint.uniform'。您必須將導入更改爲'導入隨機'或'從隨機導入統一',然後您可以使用非限定名稱。 –

+0

是的......他們認爲這是愚蠢的...非常感謝你 –

+0

你不希望'統一'來模擬骰子滾動,因爲它返回浮動。 –

回答

2

您在混合使用模塊和功能。 randint是隨機模塊中的一個功能,因爲它是統一的。加載只是randint函數,而不是加載整個模塊。見https://docs.python.org/2/library/random.html欲瞭解更多信息

# Roll the Dice 

import random 

x = random.randint(1, 6) 
y = random.randint(1, 6) 

print str(x + y) 

x = random.uniform(1, 6) 
y = random.uniform(1, 6) 

print str(x + y) 
1

uniformrandint都是在random模塊中定義的功能*。

from random import uniform 
x = uniform(1, 6) 

*不太;有一個模塊級別的全局RNG,其方法可作爲模塊級名稱訪問。

相關問題