Python if语句读取不正确

2024-09-30 16:33:49 发布

您现在位置: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()

这很容易是我自己的愚蠢,但我想让别人看看也没什么坏处。非常感谢。在


Tags: youinput数量rawifhavelowermenu
2条回答

当您需要输入文本中的数字时,需要将其包装在转换函数中,如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

相关问题 更多 >