首页 > 解决方案 > 为什么我的 for 循环运行次数超过我指定的次数?

问题描述

我希望这会给我 stats 字典中的 9 个键,但我得到了 27 个。为什么会发生这种情况以及如何实现我想要得到的结果?

import random

def statsGen():
    "Will generate an npc's stats"

    level = 3    
    const = random.randint(1, 20)
    str = random.randint(1, 20)
    dext = random.randint(1, 20)
    perc = random.randint(1, 20)
    intel = random.randint(1, 20)
    will = random.randint(1, 20)
    char = random.randint(1, 20)
    sp = random.randint(1, 20)
    luck = random.randint(1, 20)

    stats = {'Const':const,'Str':str,'Dext':dext,'Perc':perc,'Int':intel,'Will':will,'Char':char,'Sp':sp,'Luck':luck}

    for level in stats:
        stat1 = random.choice(list(stats))
        print(stat1)
        stat2 = random.choice(list(stats))
        print(stat2)
        stat3 = random.choice(list(stats))
        print(stat3)


statsGen()

标签: pythonpython-3.xfor-loop

解决方案


对于每次迭代,您都会打印 3 个统计信息(stat1、stat2、stat3)。因此,如果您遍历统计字典(9 个循环),它会为您提供 27 个打印的统计信息。


推荐阅读