2013-03-18 2 views
0

Итак, я работаю над текстовой игрой, и у меня есть магазин, где вы можете продавать руды. У меня есть проверка if, если количество руды, которую вы хотите продать, больше, чем у вас. Независимо от того, какой номер я набираю, говорит, что мне не хватает.Python если утверждения корректно не читаются

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

ответ

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

Смежные вопросы