1

因此,我在 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

4

3 回答 3

0

您需要将原始输入转换为 int:

n = int(raw_input())

此外,您需要调用该函数,所以使用raw_input()而不仅仅是raw_input

于 2013-07-10T02:09:23.613 回答
0

n = raw_input这里不会给你带来任何东西。你应该n = int(raw_input())根据你的需要使用。而且我认为你最好使用 adictlist而不是几个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'
于 2013-07-10T02:32:01.573 回答
0

第一个问题是这样的:

n = raw_input

你从来没有真正调用过这个函数。raw_input相反,您正在分配to的引用n(如,n 现在是函数,而不是函数的结果)。

此外,一旦调用该函数,就必须将其转换为整数,因为raw_input返回一个字符串。

因此,您想要:

n = int(raw_input()).

于 2013-07-10T03:36:19.510 回答