为什么在Python中截断的n字符表示n-3?
编辑:我甚至没有想到“…”是n的一部分。对不起,伙计们!(谢谢你) 我不确定“问题”是否遗漏了什么,或者我是否遗漏了什么。我应该用python编写一个函数,返回短语的截断-at-n-chars版本。文档字符串如下所示:为什么在Python中截断的n字符表示n-3?,python,truncate,Python,Truncate,编辑:我甚至没有想到“…”是n的一部分。对不起,伙计们!(谢谢你) 我不确定“问题”是否遗漏了什么,或者我是否遗漏了什么。我应该用python编写一个函数,返回短语的截断-at-n-chars版本。文档字符串如下所示: """Return truncated-at-n-chars version of phrase. If the phrase is longer than n, make sure it ends with '...' and is no lon
"""Return truncated-at-n-chars version of phrase.
If the phrase is longer than n, make sure it ends with '...' and is no
longer than n.
>>> truncate("Hello World", 6)
'Hel...'
>>> truncate("Problem solving is the best!", 10)
'Problem...'
>>> truncate("Yo", 100)
'Yo'
The smallest legal value of n is 3; if less, return a message:
>>> truncate('Cool', 1)
'Truncation must be at least 3 characters.'
>>> truncate("Woah", 4)
'W...'
>>> truncate("Woah", 3)
'...'
"""
解决办法是:
if n < 3:
return "Truncation must be at least 3 characters."
if n > len(phrase) + 2:
return phrase
return phrase[:n - 3] + "..."
如果n<3:
return“截断必须至少为3个字符。”
如果n>len(短语)+2:
返回短语
返回短语[:n-3]+“…”
那为什么是n-3呢?是不是因为上面写着“n的最小法定值是3”?因为当我用谷歌搜索它时,可能少于3个。即使不是,为什么它不只是返回短语[:n]+“…”?解决方案包含n-3的原因是,您必须确保在结尾处保留3个字符,以便添加“…”。例如,如果你有一个单词“大象”,你必须把它截成5个字符。输入看起来像这样
truncate("Elephant", 5)
'El...'
输出结果如下所示
truncate("Elephant", 5)
'El...'
正如你所看到的,我没有使用单词“大象”的前5个字符,而是只使用前2个字符,因为每个点(.)也算一个字符,所以我必须从n中减去3来计算每个点(.)。希望这能回答你的问题 这似乎是因为n字符包括三个点
…
。对于truncate(“Hello World”,6)
,n=6
表示来自Hello World的3个字符+3个点。这不是一个特定于Python的问题,这只是问题的要求。请尝试使用您提供的示例输入遍历您的代码。我要说的是,通过用点替换最后三个字符,将n个长度的字符串“截断”为n个字符,这有改进的余地。