如何在python彩票模拟器中保存RAM?

2024-09-26 18:06:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个Python的Powerball模拟器,我有问题,它填满了我的RAM。我怎样才能使它使用更少的内存?我很想知道,从一个很长的时间里,我一直在想如何填满这个程序。谢谢。在

from __future__ import division
import random
import time

print "welcome to powerball simulator 1, sans power play. run play_lotto(*amount of jackpots to stop at*)"
time.sleep(5)

def lotto_ticket():
    ticket = [random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 35)]
    return ticket

def drawing():
    lotto_drawing = [random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 59), random.randint(1, 35)]
    return lotto_drawing

def check_ticket(list1, list2):
    compare = set(list1) & set(list2)
    return len(compare)

def play_lotto(amount_of_jackpots):
    money = 100
    times_played = 0
    tiers_won = {'tier_1': 0, 'tier_2': 0, 'tier_3': 0, 'tier_4': 0, 'tier_5': 0, 'tier_6': 0, 'tier_7': 0}
    GrandPrizes = 0
    while GrandPrizes != amount_of_jackpots:
        ticket = lotto_ticket()
        draw = drawing()
        money -= 2
        times_played += 1
        total_times_won = tiers_won['tier_1'] + tiers_won['tier_2'] + tiers_won['tier_3'] + tiers_won['tier_4'] + tiers_won['tier_4'] + tiers_won['tier_5'] + tiers_won['tier_6'] + tiers_won['tier_7']
        print 'Money: ',money
        if ticket[5] == draw[5]:
            print 'you win $4, matching powerball'
            money += 4
            tiers_won['tier_1'] +=1
            print 'Times teir one has been won: ',tiers_won['tier_1']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 1 and ticket[5] == draw[5]:
            print 'you win $4, one matching number and matching powerball '
            money += 4
            tiers_won['tier_2'] +=1
            print 'Times teir two has been won: ',tiers_won['tier_2']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 2 and ticket[5] == draw[5]:
            print 'you win $7, two matching numbers and powerball'
            money += 7
            tiers_won['tier_3'] +=1
            print 'Times teir three has been won: ',tiers_won['tier_3']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 3:
            print 'you win $7, three matching numbers'
            money += 7
            tiers_won['tier_4'] +=1
            print 'Times teir four has been won: ',tiers_won['tier_4']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 3 and ticket[5] == drawing[5]:
            print 'you win $100, three matching and powerball'
            money += 7
            tiers_won['tier_5'] +=1
            print 'Times teir five has been won: ',tiers_won['tier_5']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 4:
            print 'you win $100, four matching numbers'
            money += 100
            tiers_won['tier_6'] +=1
            print 'Times teir six has been won: ',tiers_won['tier_6']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 4 and ticket[5] == draw[5]:
            print 'you win $10000, four maching and powerball'
            money += 10000
            tiers_won['tier_7'] +=1
            print 'Times teir seven has been won: ',tiers_won['tier_7']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 5:
            print 'you win $1000000, five matching'
            money += 1000000
            tiers_won['tier_8'] +=1 
            print 'Times teir eight has been won: ',tiers_won['tier_8']
            print 'Lotto entries: ', times_played
            print tiers_won
        elif check_ticket(ticket, draw) == 5 and ticket[5] == draw[5]:
            print 'you win the jackpot, $250,000,000!'
            money += 2500000
            GrandPrizes += 1
            print 'Times teir nine has been won: ',GrandPrizes
            print 'Total wins: ', tiers_won['tier_1'] + tiers_won['tier_2'] + tiers_won['tier_3'] + tiers_won['tier_4'] + tiers_won['tier_5'] + tiers_won['tier_6'] + tiers_won['tier_7'] + tiers_won['tier_8'] + GarndPrizes
            print 'Lotto entries: ', times_played
            print 'Win percentage: ', total_times_won/times_played
        else:
            print 'you lose'
            print 'win percentage: ',total_times_won/times_played
            print 'Entries: ', times_played

Tags: youcheckrandomticketwintierprintdraw
1条回答
网友
1楼 · 发布于 2024-09-26 18:06:48

所发生的是,您的程序在循环的每次迭代中都会输出许多行输出,而您无疑是在一个保存每行输出的shell中运行代码。您必须找到运行代码的另一种方法,或者在不同的位置放置输出(如文件)。在

相关问题 更多 >

    热门问题