2013-03-18 118 views
0

因此,我正在研究基於文本的遊戲,並且我有一個可以出售礦石的商店。我有一個if語句來檢查你想賣的礦石數量是否大於你的數量。無論我輸入什麼號碼,都說我沒有足夠的人數。Python if語句不正確讀取

copore = 100 #testing 
    op = raw_input(p) 
    if op.lower() == "copper": 
     print""" 
You have %r copper ore. 
How much would you like to sell? 
     """ % copore 
     op = raw_input(p) 
     if op.lower() > copore: 
      print""" 
You do not have that much copper ore. 
You have %r copper ore. 
      """ % copore 
      menu() 
     elif op.lower() <= copore: 
      copore = copore - op 
      gold = gold + (op * 2) 

      print""" 
You sell your copper ore for 2 gold each. 
You now have %r copper ore. 
and %r gold. 
      """ % (copore, gold) 
      menu() 
     else: 
      print""" 
That is not a valid number 
      """ 
      menu() 

這可能很容易成爲我自己的愚蠢,但我認爲讓別人去看它是無害的。謝謝。

+0

您可能會感興趣的:http://playfic.com/learn/ – monkut 2013-03-18 00:34:52

回答

0

當你想從輸入文本中得到一個數字時,你需要把它包裝在轉換函數中,如int(op)

5

您需要將輸入從raw_input轉換爲整數。沒有轉換它,你正在做一個字符串和整數比較。

>>> a = raw_input("Test amount:") 
Test amount:10 
>>> type(a) 
<type 'str'> 
>>> a > 10 
True 
>>> a > 100 
True 
>>> b = int(a) 
>>> b > 100 
False 
+0

謝謝你,我完全忘了這一點。 – SamH 2013-03-18 00:24:30