所以我在做一个抽奖机
import random
def lottoDraw1():
draw1 = random.randint(1,49)
def lottoDraw2():
draw2 = random.randint(1,49)
if draw2 == draw1:
lottoDraw2()
我得到一个错误,“NameError:name'draw1'未定义”
如果我插入:
draw1 = 0
在代码之前,答案总是0。
即使在我定义要更改draw1
之后。在
我做错什么了?在
Tags:
您需要将
draw1
作为全局变量然而,这不是一个好的方法,这是另一个话题。
What are Python namespaces all about 这个问题问的是名称空间,这基本上就是你遇到的问题。在lottodraw1中,您只更改draw1的本地版本,因此draw1的全局值保持不变(在您的示例中为0)。因此,您将始终在其他任何地方使用
draw1 = None
。我的方法是制作一个绘图数组,并有一个通用的绘图函数:
现在你只需调用draw,它将添加一个新绘制的不存在的数字。
正如Jean François Fabre指出的,更好的版本是使用集合,它更快,但只允许唯一值:
^{pr2}$相关问题 更多 >
编程相关推荐