2013-03-18 60 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