web-dev-qa-db-ja.com

Pythonの文字列と整数から文字列を作成する

整数を取得し、それに "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
42
Kudu
name = 'b' + str(num)

または

name = 'b%s' % num

s.Lottが注記しているように、ミングル演算子 '%'はPython 3以上では非推奨です。そして、 "-"の名前を [〜#〜] intercal [〜 #〜] しかし、それは私がそれについて話し、少なくとも一度前に印刷でそれを見たかった方法です-ドードーのように-それは地球の表面から消えます。

44
msw

Pythonは、JavaScriptやPHPのような言語が行うように、型を自動的に変換しません。

文字列に変換するか、フォーマット方法を使用する必要があります。

name="b"+str(num)

またはprintfスタイルのフォーマット...

name="b%s" % (num,)

または新しい.format文字列メソッド

name="b{0}".format(num)
8
JAL

ええ、pythonには暗黙の整数から文字列への変換はありません。

代わりにstr(num)を試してください

3
Alan

Python 3.6には f-strings があり、formatを使用せずに変数名を直接入力できます。

>>> num=12
>>> f"b{num}"
'b12'
name = "b{0:d}".format( num )
1
S.Lott

正しい答えはすでに与えられていますが、私はあなたにそれを伝えたいと思いますalways varを文字列として使用するつもりであれば、文字列であるかどうかに関係なく、常にstr(var)を使用してくださいか否か。

転ばぬ先の杖。

1
whaley