将字符串与python中的数字相乘

时间:2010-08-21 08:50:59

标签: python

我需要一个由重复特定字符组成的字符串。在Python控制台,如果我输入:

n = '0'*8

然后n被赋予一个由8个零组成的字符串,这就是我所期望的。

但是,如果我在Python程序(.py文件)中有相同的内容,那么程序将中止,并显示错误说明
can't multiply sequence by non-int of type 'str'

有什么方法可以解决这个问题吗?

5 个答案:

答案 0 :(得分:33)

你得到那个错误,因为 - 在你的程序中 - 8实际上也是一个字符串。

>>> '0'*8
'00000000'
>>> '0'*'8' # note the ' around 8
(I spare you the traceback)
TypeError: can't multiply sequence by non-int of type 'str'

答案 1 :(得分:8)

我可以打赌你正在使用raw_input()来读取乘以字符串的值。您应该使用input()来将值读取为整数,而不是字符串。

答案 2 :(得分:2)

您收到错误消息的原因是您尝试在非整数值上使用乘法运算符。

最简单的工作就是:

>>> n = ''.join(['0' for s in xrange(8)])
>>> n
'00000000'
>>>

或者为此做的功能:

>>> def multiply_anything(sth, size):
...     return ''.join(["%s" % sth for s in xrange(size)])
...
>>> multiply_anything(0,8)
'00000000'
>>>

答案 3 :(得分:1)

如果您希望结果是字符串列表而不是单个字符串列表,您可以随时使用:

list(('0',) * 8)

你可以得到:

['0', '0', '0', '0', '0', '0', '0', '0']

答案 4 :(得分:-1)

这行代码在这里执行的.py工作正常,使用python 2.6.5,你必须用不同的python版本执行脚本。