所以我正在开发基于文本的游戏,我有一个商店,你可以在那里卖矿石。我有一个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 :(得分: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
答案 1 :(得分:0)
当您需要输入文本中的数字时,需要将其包含在转换函数中,如int(op)
。