Python Lottery number and checker
我试图为一行中的任意数字创建一个随机数生成器,然后重复这些随机数,直到达到"目标"数字。用户将在序列中输入数字的数量,并输入他们要拍摄的序列。程序将反复运行随机数,直到目标序列被击中,然后程序将吐出所需的重复次数。我的问题是,它一直持续下去,似乎从来没有达到中断函数,因为num不等于目标或什么。到目前为止,我有这个,我觉得我很接近
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #Module to get amount of numbers in the sequence def getRange(): Range =int(input("How many digits in your number?")) return Range #Target Sequence input def getTarget(): Target= [] Target =input("What is your target sequence?") return Target def lotteryNo(Range): import random integer = [] for number in range(0 , Range): integer.append(random.randint(0, 9)) return integer def printDigits(Range,Target): print("Your target list is",Target) for rep in range(10000000): num=(lotteryNo(Range)) print(num) if num == Target: rep=rep + 1 print("The number of repetitions is",rep) break else: rep=rep+1 def main(): Range=getRange() Target=getTarget() printDigits(Range,Target) main() #End |
比较的问题是,您测试的是
看起来您希望
您可能需要类似于
还有一个与当前问题无关的建议:python的通用命名约定是将
您的问题是,其中一个数字是列表,另一个是输入的字符串。
更改目标以获得
1 2 3 | def getTarget(): Target =int(input("What is your target sequence?")) return Target |
把lotteryno换成
1 2 3 4 5 6 | def lotteryNo(Range): import random integer = 0 for number in range(0 , Range): integer += random.randint(0, 9) * (10**number) return integer |
号
现在,您的