Python if语句不正确读取
问题描述:
因此,我正在研究基于文本的游戏,并且我有一个可以出售矿石的商店。我有一个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()
这可能很容易成为我自己的愚蠢,但我认为让别人去看它是无害的。谢谢。
答
当你想从输入文本中得到一个数字时,你需要把它包装在转换函数中,如int(op)
。
答
您需要将输入从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
您可能会感兴趣的:http://playfic.com/learn/ – monkut 2013-03-18 00:34:52