我正在编写一个Python程序,其中我需要有一个if-else用例来选择1到9之间的一个数字,每个数字都被分配给一个类。关于如何使代码更短有什么建议吗?
import randint
variable1 = randint(1, 9)
if variable1 >= 9:
print ("Your class is Tiefling")
else:
if variable1 >= 8:
print ("Your class is Half-Orc")
else:
if variable1 >= 7:
print ("Your class is Half-Elf")
else:
if variable1 >= 6:
print ("Your class is Gnome")
else:
if variable1 >= 5:
print ("Your class is Dragonborn")
else:
if variable1 >= 4:
print ("Your class is Human")
else:
if variable1 >= 3:
print ("Your class is Halfling")
else:
if variable1 >= 2:
print ("Your class is Elf")
else:
if variable1 >= 1:
print ("Your class is Dwarf")发布于 2017-04-30 20:45:43
使用字典的不完整版本:
val_msg = {3: 'Your class is Halfling',
2: 'Your class is Elf',
1: 'Your class is Dwarf'}
from random import randint
variable1 = randint(1, 3)
print(val_msg[variable1])请注意,randint生成整数,我将其用作字典的键。
如果您需要做更复杂的事情,您可以将函数放入字典并调用它们(当然,您也可以使用此处的list-based解决方案执行相同的操作):
def do_halfling_stuff():
print('Your class is Halfling')
def do_elf_stuff():
print('Your class is Elf')
def do_dwarf_stuff():
print('Your class is Dwarf')
val_func = {3: do_halfling_stuff,
2: do_elf_stuff,
1: do_dwarf_stuff}
variable1 = randint(1, 3)
func = val_func[variable1]
func()https://stackoverflow.com/questions/43706473
复制相似问题