在Python中发生随机错误时出错

在Python中发生随机错误时出错,python,variables,random,Python,Variables,Random,我试图在我正在制作的游戏中使用此代码,但我不断收到错误: import random import time loop = [1,2,3,4,5,6,7,8,9,10] queenstrength = 100 queendamagenum = 1,20 print "The queens health is currently: ",queenstrength while queenstrength > 0: queendamage = random.randint((queen

我试图在我正在制作的游戏中使用此代码,但我不断收到错误:

import random
import time
loop = [1,2,3,4,5,6,7,8,9,10]
queenstrength = 100
queendamagenum = 1,20
print "The queens health is currently: ",queenstrength

while queenstrength > 0:
    queendamage = random.randint((queendamagenum))
    print""
    print "queen damage:", queendamage
    queenstrength = queenstrength - queendamage
    print queenstrength
    time.sleep(1)

print""
print"finished"
给出3个参数2是什么意思?我以为它只需要一个最小值和一个最大值?

接受一个最小值和一个最大值,如下所示:

**Traceback (most recent call last):
  File "Untitled.py", line 9, in <module>
    queendamage = random.randint((queendamagenum))
TypeError: randint() takes exactly 3 arguments (2 given)**
但你传递的是一个元组:

>>> import random
>>> random.randint(0,10)
1
至于错误消息说给出了3个参数2,这是因为randint实际上是一个生活在random.random实例中的方法,而不是一个函数。方法自动获得一个传递给它们的参数,该参数传统上称为self,即实例本身。因此,您应该将3个参数2转化为2个非自参数1,并且只传递1个元组,这样才有意义。

接受最小值和最大值,如下所示:

**Traceback (most recent call last):
  File "Untitled.py", line 9, in <module>
    queendamage = random.randint((queendamagenum))
TypeError: randint() takes exactly 3 arguments (2 given)**
但你传递的是一个元组:

>>> import random
>>> random.randint(0,10)
1

至于错误消息说给出了3个参数2,这是因为randint实际上是一个生活在random.random实例中的方法,而不是一个函数。方法自动获得一个传递给它们的参数,该参数传统上称为self,即实例本身。因此,您应该将3个参数2转化为2个非自参数1,并且只传递1个元组,这样才有意义。

+1。顺便说一句,第三个参数是隐含的;random.randint实际上是一个隐藏单例对象上的实例方法。@larsmans:嘿,我不能像你一样快速键入五位数的karma类型::^+1。顺便说一句,第三个参数是隐含的;random.randint实际上是一个隐藏的单例对象上的实例方法。@larsmans:嘿,我不能像你们五位数的karma类型一样快::^