0

だから私はテキストベースのゲームに取り組んでいて、鉱石を販売できるショップを持っています。あなたが売りたい鉱石の量があなたが持っている量よりも多いかどうかをチェックする 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()

これは簡単に私の愚かさかもしれませんが、他の誰かに見てもらうのは悪くないと思いました. ありがとうございました。

4

2 に答える 2

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
于 2013-03-18T00:22:07.373 に答える
0

入力テキストから数値が必要な場合は、 のような変換関数でラップする必要がありますint(op)

于 2013-03-18T00:22:01.630 に答える