所以,我很努力在Python 2.7上使用基于文本的RPG游戏,但我在角色菜单中遇到了一个问题。这是它的样子:
def raceselect(n):
if n==0:
print "(name) the Human."
if n==1:
print "(name) the Dwarf."
if n==2:
print "(name) the Elf."
if n==3:
print "(name) the Halfling."
n = raw_input
raceselect(n)
当提示选项时,0,1,2和3都用作上一屏幕上的raw_input答案。但是,当脚本运行时,会显示选项,并显示输入框,但是当一个数字被回答时,脚本就会结束。我不能为我的生活找出导致这种情况的原因,除非事实是我在脚本中使用了(name)和raw_input,这是我怀疑的。请帮忙!
- Crux_Haloine
答案 0 :(得分:0)
您需要将原始输入转换为int:
n = int(raw_input())
此外,您需要调用该函数,因此请使用raw_input()
而不是raw_input
答案 1 :(得分:0)
n = raw_input
这里不会给你带来什么。您应该根据需要使用n = int(raw_input())
。我认为最好使用dict
或list
而不是几个if
:
def raceselect(n):
races = {0: 'Human', 1: 'Dwarf', 2: 'Elf', 3: 'Halfing'}
if n in races:
print '(name) the %s' % races[n]
else:
print 'wrong input'
答案 2 :(得分:0)
第一个问题是:
n = raw_input
你永远不会实际调用该函数。相反,您正在将raw_input
的引用分配给n
(因为,n现在是函数,而不是函数的结果)。
此外,一旦调用该函数,就必须将其转换为整数,因为raw_input
会返回一个字符串。
因此,你想:
n = int(raw_input())
。