<p>因此,我在一个简单的python脚本中遇到了这个问题,我正在为一个任务工作。我将制作一个模拟彩票的小脚本,并编写了以下代码:</p>
<pre><code>import random
def drawNumbers(nlist, n):
drawnlist = []
i = 0
while i < n:
if i == 0:
drawnlist.append(nlist[random.randint(0,33)])
i+=1
else:
r = random.randint(0,33)
dup = False
for x in drawnlist:
if x == r:
dup = True
if dup == False:
drawnlist.append(nlist[r])
i+=1
return drawnlist
def compList(drawlist, guesslist):
count = 0
for j in drawlist:
for h in guesslist:
if j == h:
count +=1
return count
def winnings(right, altright):
altcorrect = False
if altright > 0:
altcorrect = True
if right == 7:
return 2749455
elif right == 6:
if altcorrect:
return 102110
else:
return 3385
elif right == 5:
return 95
elif right == 4:
if altcorrect:
return 45
else:
return 0
a=0
tot = 0
while a <100:
numbers = []
i = 1
while i <= 34:
numbers.append(i)
i+=1
myGuess = []
i = 0
while i <7:
if i == 0:
myGuess.append(random.randint(1,34))
i+=1
else:
r = random.randint(1,34)
dup = False
for x in myGuess:
if x == r:
dup = True
if dup == False:
myGuess.append(r)
i+=1
tot += winnings(compList(drawNumbers(numbers,7),myGuess),compList(drawNumbers(numbers,3),myGuess))
a+=1
print(tot)
</code></pre>
<p>对于一次迭代来说,它似乎工作得很好,但是,当我像现在一样增加<code>a</code>值为100时,我得到一个错误,说我不能将一个“<code>int</code>”对象和一个“<code>None</code>”对象相加。当我修改代码并打印“winnings”而不是每次迭代的总和时,函数有时会返回“None”而不是数字。然而,我似乎不能用较少的迭代次数来重新创建它,所以我的问题是:这段代码是相关的,还是调用函数“太快”不会创建一个数字?我知道这个问题看起来很奇怪,但我对整个编程和python本身都是新手,我不知道如何调试这个问题。你知道吗</p>