在乐透号码猜测器中实现匹配计数器

Implementing a match counter into a lotto number guesser

我是 python 的新手,在 github 中发现了某人的彩票模拟。在玩了一会儿之后,我想添加一个计数器,计算你的号码在总平局中的匹配次数。

不知道是不是我自己写的代码,好像实现不了。我已经尝试了一些 python 的计数器模块,但似乎并不正确。

这是我的代码:

import random
import time

### TODO - Refactor GetDrawNumbers (add timers)
### TODO - Refactor CheckNumbers

def GetDrawNumbers():
    drawNumbers = []
    for i in range(6):
        x = None
        while (x == None or x in drawNumbers):
            x = random.randint(1, 49)
        drawNumbers.append(x)
    return drawNumbers

def CheckNumbers(myTicket, actualNumbers):
    numbersMatched = 0
    for number in myTicket:
        if number in actualNumbers:
            numbersMatched += 1
    return numbersMatched

### Script starts here

startTime = time.perf_counter()

myNumbers = [4, 8, 15, 16, 23, 42]

for draw in range(2000):
    drawNumber = draw + 1
    thisWeeksDraw = GetDrawNumbers()
    numbersMatched = CheckNumbers(myNumbers, thisWeeksDraw)
    ##print("Week " + str(drawNumber) + " numbers : " + str(thisWeeksDraw) + " (" + str(numbersMatched) + " matched)")
    if numbersMatched == 4:
        print("Week " + str(drawNumber) + " numbers : " + str(thisWeeksDraw) + " (" + str(numbersMatched) + " matched)")

count = numbersMatched
print("Total matches: " + str(count))

endTime = time.perf_counter()
elapsedTime = endTime - startTime

print("Completed in " + str(elapsedTime) + " seconds!")

如果有人知道实现计数器的方法,计算程序获得 3、4、5 或 6 次正确匹配的次数,我会非常放心!并不是说这个项目非常重要,而是解决这个问题对我和我的学习过程来说都是一个里程碑!

提前致谢并致以最良好的祝愿!

我添加了对 numbersMatched 值的检查,并在计数器大于或等于 3 时递增一个计数器,这怎么样?

import random
import time

### TODO - Refactor GetDrawNumbers (add timers)
### TODO - Refactor CheckNumbers

def GetDrawNumbers():
    drawNumbers = []
    for i in range(6):
        x = None
        while (x == None or x in drawNumbers):
            x = random.randint(1, 49)
        drawNumbers.append(x)
    return drawNumbers

def CheckNumbers(myTicket, actualNumbers):
    numbersMatched = 0
    for number in myTicket:
        if number in actualNumbers:
            numbersMatched += 1
    return numbersMatched

### Script starts here

startTime = time.perf_counter()

myNumbers = [4, 8, 15, 16, 23, 42]

countOfThreeOrMoreMatched = 0
for draw in range(2000):
    drawNumber = draw + 1
    thisWeeksDraw = GetDrawNumbers()
    numbersMatched = CheckNumbers(myNumbers, thisWeeksDraw)
    ##print("Week " + str(drawNumber) + " numbers : " + str(thisWeeksDraw) + " (" + str(numbersMatched) + " matched)")
    if numbersMatched >= 3:
        countOfThreeOrMoreMatched += 1
    if numbersMatched == 4:
        print("Week " + str(drawNumber) + " numbers : " + str(thisWeeksDraw) + " (" + str(numbersMatched) + " matched)")

print(f"Count with 3 or more matches {countOfThreeOrMoreMatched}")
count = numbersMatched
print("Total matches: " + str(count))

endTime = time.perf_counter()
elapsedTime = endTime - startTime

print("Completed in " + str(elapsedTime) + " seconds!")