基于文本的RPG功能错误?

时间:2013-07-10 02:02:21

标签: python text python-2.7

所以,我很努力在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

3 个答案:

答案 0 :(得分:0)

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

n = int(raw_input())

此外,您需要调用该函数,因此请使用raw_input()而不是raw_input

答案 1 :(得分:0)

n = raw_input这里不会给你带来什么。您应该根据需要使用n = int(raw_input())。我认为最好使用dictlist而不是几个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())