整数を取得し、それに "b"を付加して文字列に変換しようとすると、このエラーが発生します。
File "program.py", line 19, in getname
name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
これはこの関数に関連しています:
num = random.randint(1,25)
name = "b" + num
name = 'b' + str(num)
または
name = 'b%s' % num
s.Lottが注記しているように、ミングル演算子 '%'はPython 3以上では非推奨です。そして、 "-"の名前を [〜#〜] intercal [〜 #〜] しかし、それは私がそれについて話し、少なくとも一度前に印刷でそれを見たかった方法です-ドードーのように-それは地球の表面から消えます。
Pythonは、JavaScriptやPHPのような言語が行うように、型を自動的に変換しません。
文字列に変換するか、フォーマット方法を使用する必要があります。
name="b"+str(num)
またはprintfスタイルのフォーマット...
name="b%s" % (num,)
または新しい.format文字列メソッド
name="b{0}".format(num)
ええ、pythonには暗黙の整数から文字列への変換はありません。
代わりにstr(num)
を試してください
Python 3.6には f-strings があり、format
を使用せずに変数名を直接入力できます。
>>> num=12
>>> f"b{num}"
'b12'
name = "b{0:d}".format( num )
正しい答えはすでに与えられていますが、私はあなたにそれを伝えたいと思いますalways varを文字列として使用するつもりであれば、文字列であるかどうかに関係なく、常にstr(var)を使用してくださいか否か。
転ばぬ先の杖。