0
while True:
    race = int(input('1. Roegadyn\n'
                     '2. Hyur\n'
                     '3. Elezen\n'
                     '4. Mi\'Qote\n'
                     '5. Lalafell\n'
                     'Choose a race: '))
    if (race not in range(1,6)):
        print('\nInvalid Entry.\n')
    else:
        break

当我试图打破它时,它很容易,现在真的很明显为什么它如此糟糕。任何关于给我的查询结构完整性的建议将不胜感激。谢谢你帮助一个菜鸟。

4

2 回答 2

1

将您的条目拆分为单独的结构并将其用于适当的值。并检查异常。

rmap = {n: r for (n, r) in enumerate(['Roegadyn', 'Hyur',…], 1)}

while True:
    for n, r in sorted(rmap.items()):
        print('{}. {}'.format(n, r))
    rval = input('Choose a race: ')
    try:
        rnum = int(rval)
    except ValueError:
        pass
    else:
        if rnum in rmap:
            break
    print('Invalid Entry')
于 2013-08-08T01:25:31.010 回答
0
于 2013-08-08T08:26:08.267 回答