2D Python 彩票程序列表
2D Python List for a lottery program
我正在创建一个乐透程序,它抽取 8 个号码并检查它们是否与 100 个乐透玩家号码匹配。我已经创建了我随机生成 8 个数字并将它们存储在列表中的部分,但我不知道如何在 python 中创建一个二维列表来存储用户随机生成的数字及其 ID
例如,二维列表应如下所示
Player ID | PlayerNumber
1 | 2 3 4 5 6 7 4 23
2 | 14 12 14 30 0 13 25
3 | 21 30 2 22 23 14 19 12
4 | 21 12 22 30 24 25 28 15
8 numbers winning numbers are from a pool of 0 - 30 numbers
the Player ID pool is 1 - 100 meaning 100 players
the Lotto number pool is 0 - 30
我创建的部分抽取了8个中奖号码,但我不知道如何创建上面的table
import random
def generateRandomNumber():
randomNumber = random.randint(0,30) #can return numbers between 0 and 30 including 0 and 30
return randomNumber#return Random numbers
def drawWinningLotteryNumber():#this function draws the winning numbers
lotteryDrawNumbers = []#list containner for the generated lottery numbers
for currentLotteryNumber in range(8):#for loop to keep generating for 8 counts
randomNumber = generateRandomNumber()# call funtion to generate random numbers
lotteryDrawNumbers.append(randomNumber)# add to the back of the list
return lotteryDrawNumbers#return the list
def printWinningLotteryNumber(lotteryDrawNumbers):#ths function prints the draw numbers
for currentLotteryNumberIndex in range (len(lotteryDrawNumbers)):#for loop to run the print funtion for the length of the list
print(lotteryDrawNumbers[currentLotteryNumberIndex], end = " ")#prints the numbers
def draw():# this funtion brings to gether the draw funtion
lotteryNumbers = drawWinningLotteryNumber()#call function to draw winning numbers
print ("The 8 lottery number for today are :")
printWinningLotteryNumber(lotteryNumbers)#call funtion to print the generated numbers
def generateID():#this function creates the lotto players and their numbers
i = 0
players = []
for currentPlayers in range(100):
i = i + 1
players.append(i)
for currentPlayerIndex in range(len(players)):
print(players[currentPlayerIndex])
generateID()
draw()
可能是这样的:
from random import choices
number_of_players = 4
draws = [choices(range(0, 30), k=8) for _ in range(number_of_players)]
print("Player ID | Draw")
for player_id, draw in enumerate(draws, start=1):
print(f"{player_id:<10}|", *draw)
输出:
Player ID | Draw
1 | 6 1 5 9 16 29 12 17
2 | 25 21 8 22 5 10 28 26
3 | 8 1 18 6 18 20 1 0
4 | 28 9 28 2 21 23 17 1
>>>
我建议使用 random.choices
从 collection/population 个可能的数字中 select 你的随机数。如果您使用 random.randint
来生成您的号码,您最终可能会在给定的开奖中多次出现相同的号码(据我所知,任何给定的编号彩票球在真实的抽奖中不会出现超过一次)彩票)。
您可以使用字典 players
将 ID 与数字列表相关联。试试这个:
def generateID():#this function creates the lotto players and their numbers
players = {}
for player_id in range(1, 11):
player_list = []
for i in range(8):
player_list.append(generateRandomNumber())
players[player_id] = player_list
for player_id in players:
print("Player {} has numbers {}".format(player_id, players[player_id]))
输出:
Player 1 has numbers [24, 23, 29, 16, 14, 1, 24, 0]
Player 2 has numbers [13, 7, 13, 8, 11, 2, 14, 11]
Player 3 has numbers [1, 17, 2, 30, 8, 10, 6, 18]
Player 4 has numbers [23, 0, 0, 9, 15, 12, 5, 20]
Player 5 has numbers [7, 5, 1, 0, 13, 10, 8, 11]
Player 6 has numbers [24, 6, 2, 15, 18, 9, 6, 29]
Player 7 has numbers [17, 9, 3, 30, 29, 28, 5, 19]
Player 8 has numbers [23, 30, 9, 12, 23, 19, 15, 5]
Player 9 has numbers [15, 11, 3, 22, 20, 6, 24, 4]
Player 10 has numbers [14, 29, 6, 13, 22, 11, 25, 20]
我正在创建一个乐透程序,它抽取 8 个号码并检查它们是否与 100 个乐透玩家号码匹配。我已经创建了我随机生成 8 个数字并将它们存储在列表中的部分,但我不知道如何在 python 中创建一个二维列表来存储用户随机生成的数字及其 ID
例如,二维列表应如下所示
Player ID | PlayerNumber
1 | 2 3 4 5 6 7 4 23
2 | 14 12 14 30 0 13 25
3 | 21 30 2 22 23 14 19 12
4 | 21 12 22 30 24 25 28 15
8 numbers winning numbers are from a pool of 0 - 30 numbers
the Player ID pool is 1 - 100 meaning 100 players
the Lotto number pool is 0 - 30
我创建的部分抽取了8个中奖号码,但我不知道如何创建上面的table
import random
def generateRandomNumber():
randomNumber = random.randint(0,30) #can return numbers between 0 and 30 including 0 and 30
return randomNumber#return Random numbers
def drawWinningLotteryNumber():#this function draws the winning numbers
lotteryDrawNumbers = []#list containner for the generated lottery numbers
for currentLotteryNumber in range(8):#for loop to keep generating for 8 counts
randomNumber = generateRandomNumber()# call funtion to generate random numbers
lotteryDrawNumbers.append(randomNumber)# add to the back of the list
return lotteryDrawNumbers#return the list
def printWinningLotteryNumber(lotteryDrawNumbers):#ths function prints the draw numbers
for currentLotteryNumberIndex in range (len(lotteryDrawNumbers)):#for loop to run the print funtion for the length of the list
print(lotteryDrawNumbers[currentLotteryNumberIndex], end = " ")#prints the numbers
def draw():# this funtion brings to gether the draw funtion
lotteryNumbers = drawWinningLotteryNumber()#call function to draw winning numbers
print ("The 8 lottery number for today are :")
printWinningLotteryNumber(lotteryNumbers)#call funtion to print the generated numbers
def generateID():#this function creates the lotto players and their numbers
i = 0
players = []
for currentPlayers in range(100):
i = i + 1
players.append(i)
for currentPlayerIndex in range(len(players)):
print(players[currentPlayerIndex])
generateID()
draw()
可能是这样的:
from random import choices
number_of_players = 4
draws = [choices(range(0, 30), k=8) for _ in range(number_of_players)]
print("Player ID | Draw")
for player_id, draw in enumerate(draws, start=1):
print(f"{player_id:<10}|", *draw)
输出:
Player ID | Draw
1 | 6 1 5 9 16 29 12 17
2 | 25 21 8 22 5 10 28 26
3 | 8 1 18 6 18 20 1 0
4 | 28 9 28 2 21 23 17 1
>>>
我建议使用 random.choices
从 collection/population 个可能的数字中 select 你的随机数。如果您使用 random.randint
来生成您的号码,您最终可能会在给定的开奖中多次出现相同的号码(据我所知,任何给定的编号彩票球在真实的抽奖中不会出现超过一次)彩票)。
您可以使用字典 players
将 ID 与数字列表相关联。试试这个:
def generateID():#this function creates the lotto players and their numbers
players = {}
for player_id in range(1, 11):
player_list = []
for i in range(8):
player_list.append(generateRandomNumber())
players[player_id] = player_list
for player_id in players:
print("Player {} has numbers {}".format(player_id, players[player_id]))
输出:
Player 1 has numbers [24, 23, 29, 16, 14, 1, 24, 0]
Player 2 has numbers [13, 7, 13, 8, 11, 2, 14, 11]
Player 3 has numbers [1, 17, 2, 30, 8, 10, 6, 18]
Player 4 has numbers [23, 0, 0, 9, 15, 12, 5, 20]
Player 5 has numbers [7, 5, 1, 0, 13, 10, 8, 11]
Player 6 has numbers [24, 6, 2, 15, 18, 9, 6, 29]
Player 7 has numbers [17, 9, 3, 30, 29, 28, 5, 19]
Player 8 has numbers [23, 30, 9, 12, 23, 19, 15, 5]
Player 9 has numbers [15, 11, 3, 22, 20, 6, 24, 4]
Player 10 has numbers [14, 29, 6, 13, 22, 11, 25, 20]