Python 3.x 循环仅将最后一个结果添加到列表中

Python 3.x 循环仅将最后一个结果添加到列表中,python-3.x,while-loop,Python 3.x,While Loop,我正在尝试运行一个小型赌场轮盘赌结果模拟器。因此,我想了解赌场应该有多大的一家银行,以避免因玩家下注规模而破产。 请参阅下面的代码: from random import choices bankroll = 500 bet = 50 lose = -50 population = [bet, lose] weights = [0.4865, 0.5135] game_count = 1 winning_game_count = [] bankrupt_game_count = []

我正在尝试运行一个小型赌场轮盘赌结果模拟器。因此,我想了解赌场应该有多大的一家银行,以避免因玩家下注规模而破产。 请参阅下面的代码:

from random import choices

bankroll = 500
bet = 50
lose = -50

population = [bet, lose]
weights = [0.4865, 0.5135]

game_count = 1

winning_game_count = []
bankrupt_game_count = []


for i in range(10000):
    while bankroll != 0 and game_count < 5000:
        result = int(choices(population, weights)[0])
        bankroll -= result
        game_count += 1
        if game_count > 4999:
            winning_game_count.append('won')
        elif bankroll == 0:
            bankrupt_game_count.append('lost')

print(winning_game_count)
print(bankrupt_game_count)
来自随机导入选择的

资金=500
赌注=50
损失=-50
人口=[打赌,输]
权重=[0.4865,0.5135]
游戏计数=1
赢得比赛次数=[]
破产游戏计数=[]
对于范围(10000)内的i:
而资金0且游戏计数小于5000:
结果=整数(选项(总体、权重)[0])
资金-=结果
游戏计数+=1
如果游戏计数>4999:
获胜游戏计数。追加('WIND')
elif资金==0:
破产\u游戏\u计数。追加('lost'))
打印(获胜游戏计数)
打印(破产游戏计数)

我只得到上一次迭代的结果,而我想得到所有游戏(5000个游戏)的总和和
资金
导致0的游戏数。我迷路了。

您只得到上一次迭代的结果,因为您只运行了1次迭代。 您需要在每次迭代之间重置控制循环条件的变量:

for i in range(10000):
    bankroll=500
    game_count = 1 
    while bankroll != 0 and game_count < 5000:
范围(10000)内的i的
:
资金=500
游戏计数=1
而资金0且游戏计数小于5000:

由于只运行1次迭代,因此只能获得上一次迭代的结果。 您需要在每次迭代之间重置控制循环条件的变量:

for i in range(10000):
    bankroll=500
    game_count = 1 
    while bankroll != 0 and game_count < 5000:
范围(10000)内的i的
:
资金=500
游戏计数=1
而资金0且游戏计数小于5000: