簡體   English   中英

在Python中產生隨機錯誤時出錯

[英]Error when making random errors in Python

 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" 

我正在嘗試在正在制作的游戲中使用此代碼,但我不斷收到錯誤消息:

**Traceback (most recent call last):
  File "Untitled.py", line 9, in <module>
    queendamage = random.randint((queendamagenum))
TypeError: randint() takes exactly 3 arguments (2 given)**

3個參數(給定2個)是什么意思? 我以為只需要一個最小值和最大值?

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

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

但是您正在傳遞一個元組:

>>> random.randint((0, 10))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: randint() takes exactly 3 arguments (2 given)

您可以使用參數拆包( *運算符)將元組變成randint的一系列參數,如果您喜歡:

>>> queendamagenum = 1, 20
>>> random.randint(*queendamagenum)
8

至於錯誤消息說“ 3個參數(給定2個)”的事實,這是因為randint實際上是一個生活在random.Random實例中的方法,而不是一個函數。 方法自動獲取傳遞給它們的參數(傳統上稱為“ self”),該參數是實例本身。 因此,您應該將“ 3個參數(給定2個)”轉換為“ 2個非自身參數(給定1個)”,並且只將其傳遞給1個元組,這樣才有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM