2015-04-03 62 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