【问题标题】:Text Based RPG Functioning Error?基于文本的 RPG 功能错误?
【发布时间】:2013-07-07 19:59:00
【问题描述】:

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

【问题讨论】:

    标签: python text python-2.7


    【解决方案1】:

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

    n = int(raw_input())
    

    另外,你需要调用函数,所以使用raw_input() 而不仅仅是raw_input

    【讨论】:

      【解决方案2】:

      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'
      

      【讨论】:

        【解决方案3】:

        第一个问题是这样的:

        n = raw_input
        

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

        另外,一旦你调用了这个函数,你必须把它转换成一个整数,因为raw_input返回一个字符串。

        因此,你想要:

        n = int(raw_input()).

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-09
          • 1970-01-01
          • 2014-10-08
          • 2017-04-09
          • 2011-04-02
          • 2012-08-28
          • 1970-01-01
          相关资源
          最近更新 更多