1. ホーム
  2. パイソン

Pythonビギナーエラーです。TypeError: サポートされていないオペランドタイプ(複数可) for +: 'int' および 'str'

2022-02-09 02:52:40

から取得した。 https://blog.csdn.net/foryouslgme/article/details/51536882

神々の目には、印刷は単純な機能かもしれませんが、新人のために、自己学習の過程で、様々な問題が発生します、良い教師や学習のアイデアがない場合、それは学習コストはかなり高くなる可能性がありますので、私は神々が&quotの初心者を軽蔑しないことを望む、愚か&quot、問題は、すべての後に、すべての結局、私たちは経験豊富だ。


次のようなコードです。

>>> a = 1
>>> print(a)
1
>>> b = 2
>>> print(a + b)
3
>>> type(a)
<type 'int'>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

このとき、次のような効果を印刷したくなる。

>>> print(str(a) + '*' + str(b) + '=' + str(a * b))
1 * 2 = 2

  • 1
  • 2

しかし、なぜ'str'が追加されたのかが分からず、以下のようなエラーが発生します。

>>> print(a + '*' + b + '=' + a * b)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

  • 1
  • 2
  • 3
  • 4

実際、エラーメッセージは十分明確で、 "Type error: Operation type of integer and string is not supported"、ここで説明すべき最も重要なことは "+" で、 "+" には Python には二つの役割があり、一つは数学演算子で、整数や浮動小数点型などの数学間の加算演算に使用されます。もうひとつは文字列の連結に使われます。そのため、数学演算と文字列連結がある状況で"+"が登場すると、コンピュータはどちらが文字列連結でどちらがその間の数学演算になるのか見当がつかないのです。

いくつか挙げると

>>> print('a' + 2)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print(2 + "a")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'