0

このコードを入力しましたが、何が問題なのかわかりません。

if guess != number:
    number = str(number)
print('Nope. The number I was thinking of was ' + number)

整数を文字列に変換したにもかかわらず、「「int」オブジェクトを暗黙的に str に変換できません」というメッセージが表示され続けます

この初心者を助けてください。

4

2 に答える 2

1

これを試して:

>>> number='5'
>>> if raw_input('enter number:')!=number:
...    print('Nope. The number I was thinking of was {}'.format(number))

または:

>>> number=5
>>> if int(raw_input('enter number:'))!=number:
...    print('Nope. The number I was thinking of was {}'.format(number))

format メソッドを使用すると、2 つの文字列を連結していないため、出力するために明示的な型変換を行う必要はありません。ただし、if ステートメントで文字列と文字列、または int と int を比較していることを確認する必要があります。

(Python 3 を使用している場合はraw_input、同じ機能の入力です...)

于 2013-02-21T22:28:10.683 に答える
0

ブロックのprint中に入れるだけです。if

if guess != number:
    number = str(number)
    print('Nope. The number I was thinking of was ' + number)

元のコードでは、推測が正しかったとしても出力されました。つまり、ifブロックは実行numberされず、整数のままでした。

文字列への変換を避けるために、文字列フォーマットを使用することもできnumberます。

print('Nope. The number I was thinking of was %d' % number)

drawkは、より新しい文字列フォーマット方法について言及しました。

于 2013-02-21T22:56:15.583 に答える