入力をint
の値にキャストするという簡単な修正点があるという点で、これまでの答えは正しいです。しかし、このエラーはちょっと不思議です。
TypeError: can't multiply sequence by non-int of type 'str'
となります。
ここで起こっていることは、文字列が文字列であることをPythonが理解していることです。これは、例えば'a'
のような単一の文字であっても、あるいは文字がない場合でも当てはまります。例えば、''
のように、一般的にはPythonで基本文字種を使用しません。
そして、それは、Pythonであなたが順序掛けることができていることが判明 - リストやタプルまたはそのようないくつかを - そのシーケンスをn回繰り返すように数値n
によって:あなたが行うことができます
>>> [1, 2, 3] * 5
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
ので、文字列を使用してこの:
>>> "abc" * 3
'abcabcabc'
いますが、別のシーケンスによるシーケンスを乗算することはできません。
>>> [1, 2, 3] * ['a', 'b', 'c']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'list'
と予想されるように、我々は文字列で、文字列を乗算しようとしている同じエラーを取得:
>>> "abc" * "def"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'
は、両方の文字列が数値のように見える場合でも:
>>> "6" * "10"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'
私は、これはあなただけではない理解するのに役立ちます願っていますどのようにエラーを修正するが、エラーは何で始まったのか。
'str'に別の' str'や 'float'や' byte'を乗算することはできません。 'str'に' int'を掛けることしかできません。 –
男、私は教師があなたがコードすることを学んでいるときにPycharmのようなものを使用させる理由を理解していません。私はJava、C++などの言語を学ぶためのIDEを完全に理解することができますが、* Python *を学んでいる場合は、テキストエディタ/ –