以前的答案是正确的,因为简单的修正是将输入强制转换为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]
,所以你可以做这跟弦:
>>> [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" * 3
'abcabcabc'
,但你不能用另一个序列乘以序列
和预期,我们在尝试用绳子乘字符串时同样的错误:
>>> "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'。你只能用'int'乘以'str'。 –
男人,我不明白为什么老师让你在学习代码时使用像Pycharm这样的东西。我可以完全理解用于学习Java,C++等语言的IDE,但是如果您正在学习* Python *,有时候我认为文本编辑器/终端在开始时是一个很好的组合。 –