'0424242' * -5
我了解字符串乘法的基本原理,但是我刚刚发现这个奇怪的事实,即用负数相乘会得到一个空字符串,我觉得这很有趣。我想知道更深层次的原因。
有没有人能够对此作出好的解释呢?
'0424242' * -5
我了解字符串乘法的基本原理,但是我刚刚发现这个奇怪的事实,即用负数相乘会得到一个空字符串,我觉得这很有趣。我想知道更深层次的原因。
有没有人能够对此作出好的解释呢?
将字符串乘以负整数会得到什么结果?
另一方面
# Display results in nice table
print(keyword1, " "*(60-len(keyword1)), value1)
print(keyword2, " "*(60-len(keyword2)), value2)
当关键词长度超过60时,无需担心,这非常方便。
range(-5)
的结果[]
保持一致。事实上,后者可能正是导致您观察到的行为的根本原因。for i in range(num_copies)
(或 C 语言等价)的循环,如果传入负数则根本不会执行。 - dan04
string * int
时,内部会有一个循环来构建结果字符串,但它的初始条件不会被满足。类似这样:string operator* (string lhs, int rhs){retStr="";for(int i = 0; i < rhs; i++){retStr += lhs;} return retStr;}
- Red Alert