HOWTO · Python
TypeError: Can't Multiply Sequence by Non-Int of Type STR を Python で解決する
このチュートリアルでは、TypeError: シーケンスを非 int 型 str エラーで乗算できません。
このページの内容
Python はさまざまなデータ型を提供しており、str データ型は提供されているものの 1つです。 Python の文字列は、引用符、一重引用符または二重引用符で囲まれた一連の Unicode 文字を表します。
このチュートリアルは、TypeError: シーケンスを非 int 型 'str' で乗算できません エラーに焦点を当て、解決策を提供することを目的としています。
Python での TypeError: Can't Multiply Sequence by Non-Int of Type Str の原因
TypeError: 'str' 型の非 int でシーケンスを乗算できません エラーは通常、最初に指定された文字列を浮動小数点または整数に変換せずに文字列を別の文字列と乗算すると発生します。
Python では、文字列を別の文字列で乗算するプロセスは許可されていません。 文字列と整数値の乗算のみが許可されます。 ただし、このエラーを解決する簡単な方法があります。
このエラーは、文字列の内容を整数値に変換することで解決できます。 数値を格納する文字列と、別の数値を保持する別の文字列の例を見てみましょう。
x = "10"
y = "15"
現在、これらの文字列を掛け合わせるとエラーになります。
x = "10"
y = "15"
z = x * y
print(z)
上記のコードは、次の出力を提供します。
Traceback (most recent call last):
File "/tmp/sessions/d1292bc9a03e82de/main.py", line 3, in <module>
z = x*y
TypeError: can't multiply sequence by non-int of type 'str'
両方の値を Int 値に変換して、TypeError: Can't Multiply Sequence by Non-Int of Type Str を解決する
このエラーを解決するには、両方の文字列値を整数値に変換してから、乗算プロセスを完了します。
次のコードは、両方の値を int 値に変換して、TypeError: シーケンスを非 int 型 'str' で乗算できません エラーを解決します。
x = "10"
y = "15"
z = int(x) * int(y)
print(z)
上記のコードは、次の出力を提供します。
150
単一の文字列値を Int 値に変換して TypeError: Can't Multiply Sequence by Non-Int of Type Str を解決する
または、文字列値のいずれかを int 値に変換し、もう一方をそのまま使用することもできます。 ただし、文字列として取得された変数の値が n 回表示されるため、結果は異なります。ここで、n は、int に変換された文字列の値になります。
次のコードは、単一の文字列値を int 値に変換して、TypeError: シーケンスを非 int 型 'str' で乗算できません エラーを解決します。
x = "10"
n = "15"
z = x * int(n)
print(z)
上記のコードは、次の出力を提供します。
101010101010101010101010101010