如何将字符串乘以负整数导致空字符串?

时间:2014-02-13 21:40:41

标签: python

'0424242' * -5

我理解弦的倍增是如何从根本上起作用的,但我偶然发现了这个奇怪的事实,即乘以负数会产生一个空字符串并认为它很有趣。我想知道更深层次的原因。

任何人对此都有一个很好的解释?

4 个答案:

答案 0 :(得分:7)

The docs on s * n说:

  

n 小于0的值被视为0(产生空   与 s )相同类型的序列。

答案 1 :(得分:3)

您期望将字符串乘以负整数?

另一方面

# Display results in nice table
print(keyword1, " "*(60-len(keyword1)), value1)
print(keyword2, " "*(60-len(keyword2)), value2)

没有担心,keyword?超过60是非常方便。

答案 2 :(得分:2)

此行为可能被定义为与range(-5) []一致。事实上,后者可能正是您观察到的行为的基础。

答案 3 :(得分:1)

这实际上是操作definition的一部分:

  

*(乘法)运算符产生其参数的乘积。参数必须都是数字,或者一个参数必须是整数而另一个必须是序列。在前一种情况下,数字被转换为通用类型,然后相乘。在后一种情况下,执行序列重复; 负重复因子产生空序列