2015-04-03 58 views
0

{崇高文本2:編譯問題蟒蛇

import random 

random.seed(0) 

def rollDie(): 
    """returns a randomly chosen int between 1 and 6""" 
    return random.choice([1,2,3,4,5,6]) 
} 

那麼我有一個問題是,當我用「CTRL + B」編譯這條巨蟒文件,並嘗試通過蟒蛇控制檯執行功能rollDie() ,它給了我一個錯誤。

Traceback (most recent call last): File "", line 1, in NameError: name 'rollDie' is not defined

但是,當我使用execfile('lecture1.py')即我的文件名在控制檯。然後它執行得很好。只是當我使用ctrl + B(正常構建)時,它會引發回溯錯誤。我知道這是一個輕微的錯誤,但似乎無法得到它。

我想要的是正常構建我的文件,然後從控制檯正常調用函數,而不是使用execfile命令再次編譯。

+0

什麼是大括號。你沒有在你提供的例子中調用函數。 - »rollDie()應該是你的最後一行。 – reticentroot 2015-04-03 01:29:05

+0

這實際上是我在堆棧溢出時的第一個問題,因此字體有點不對。代碼中沒有這樣的大括號。我遇到了使用崇高文本的問題 – 2015-04-04 05:22:42

+0

我用崇高的2運行了你的代碼,我剛剛添加了一個打印rollDie()到最後 – reticentroot 2015-04-04 05:24:44

回答

0

我試過了,它工作得很好。需要注意的事項 - >在使用選擇時不需要提供種子,它將「隨機地」從列表中選取一個元素。使用range()您可以生成一個與[1,2,3,4,5,6]相同的列表。記住,如果你寫的範圍()不會生成1-6。range(1,6)最後一個數字被排除。最後,如果你寫一個方法並且想要使用它,記得要「調用」它。

from random import choice 

def roll_die(): 
    return choice(range(1,7)) 
print roll_die() 
+0

哦,這是我的不好。我知道我的代碼沒有問題,我舉了一個例子。我遇到了Sublime文本的問題。我想使用它的解釋器,但我正面臨着這個問題,我需要編譯和使用該函數,但不能。 – 2015-04-04 05:21:15