2013-07-10 55 views
1

所以,我很努力地在Python 2.7上進行基於文本的RPG遊戲,但是我在字符菜單中遇到了一個問題。這裏是什麼樣子:基於文本的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上的答案。但是,當腳本運行時,會顯示選項,並顯示輸入框,但是如果答覆了某個數字,腳本就會結束。我不能爲了我的生活找出是什麼導致了這一點,除非我在腳本的前面使用(名稱)和raw_input,這是我懷疑的事實。請幫忙!

--Crux_Haloine

回答

0

你需要把原料輸入到INT:

n = int(raw_input()) 

此外,您還需要調用的函數,所以使用raw_input()而不僅僅是raw_input

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' 
0

第一個問題是這樣的:

n = raw_input 

你從來沒有真正調用該函數。相反,您正將raw_input的參考分配給n(因爲n現在是函數,而不是函數的結果)。

此外,一旦你調用函數,你必須將它轉換爲一個整數,因爲raw_input返回一個字符串。

因此,你想:

n = int(raw_input())