我需要撰寫一個模擬彩票的程式。該程式應該有一個代表彩票的七個數字的串列。然后它應該生成七個亂數。比較數字后,proram 應輸出三個匹配數字、四個匹配數字等的獎品。
我不確定如何做最后一點,我需要檢查是否有三個、四個、五個等匹配的數字,并根據匹配的數字數量輸出獎品。
uj5u.com熱心網友回復:
這可以通過集合來完成:
import random
winning_numbers = {random.randint(0, 99) for _ in range(8)}
ticket_numbers = {1, 2, 3, 8, 9, 10, 11}
matches = winning_numbers & ticket_numbers
prizes = {
0: 0,
1: 1,
2: 10,
3: 100,
4: 1_000,
5: 10_000,
6: 100_000,
7: 1_000_000
}
print(matches)
print(prizes[len(matches)])
輸出:
{1, 2, 3}
100
uj5u.com熱心網友回復:
程式:
from random import randint
win_ticket = [randint(0, 10) for _ in range(7)]
received_ticket = [randint(0, 10) for _ in range(7)]
result = list()
for i in range(len(win_ticket)):
if i in received_ticket:
result.append(i)
print(f'Winner ticket: {win_ticket}')
print(f'Received ticket: {received_ticket}')
print(f'Amount win nums: {len(result)}\nWin nums: {result}')
輸出:
Winner ticket: [1, 4, 0, 5, 2, 1, 10]
Received ticket: [4, 0, 9, 8, 5, 10, 3]
Amount win nums: 4
Win nums: [0, 3, 4, 5]
uj5u.com熱心網友回復:
嘗試這個:
import random
numbers = list(range(1, 20)) # Numbers from 1 to 19
ticket = list(sorted(random.sample(numbers, 7)))
print('Your ticket is', ticket)
lottery = list(sorted(random.sample(numbers, 7)))
print('The winning numbers are', lottery)
matching = []
for i in ticket:
if i in lottery:
matching.append(i)
print(len(matching), 'number(s) match (' str(matching) ')')
輸出:
Your ticket is [5, 6, 7, 12, 13, 15, 17]
The winning numbers are [1, 3, 6, 7, 8, 15, 19]
3 number(s) match ([5, 6, 15])
uj5u.com熱心網友回復:
自己做功課
seq = 4727523
win_seq = 4729897
def comp(input_seq, checklen):
#compare 3:
print(str(input_seq)[0:checklen])
if str(input_seq)[0:checklen] in str(win_seq):
print("win {}".format(checklen))
if checklen < 7:
checklen = 1
comp(input_seq, checklen)
comp(seq, 3)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491949.html
