このコードを入力しましたが、何が問題なのかわかりません。
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
整数を文字列に変換したにもかかわらず、「「int」オブジェクトを暗黙的に str に変換できません」というメッセージが表示され続けます
この初心者を助けてください。
このコードを入力しましたが、何が問題なのかわかりません。
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
整数を文字列に変換したにもかかわらず、「「int」オブジェクトを暗黙的に str に変換できません」というメッセージが表示され続けます
この初心者を助けてください。
これを試して:
>>> 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
、同じ機能の入力です...)
ブロックの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は、より新しい文字列フォーマット方法について言及しました。