2011-02-13 85 views
0

假设你有做到这一点相当一般任务:Python - 为了清晰起见,跳过outofbounds异常?

给定一个字符串,我们会说, 前面是 字符串的第一个3个字符。如果字符串长度小于3,那么前面是 。返回一个新的字符串,即3 正面的副本。

现在,Python列表自动跳过出界异常,一个解决办法是:

def front(string): 
    return 3 * string[:3] 

这个工程即使给定的字符串的长度小于长度3.但是,这是很好的做法?

+5

Python列表do * not *默默跳过界限异常。如果`len(string)== 3`,`string [3]`会引发'IndexError`。只有在切片清单允许跨越边界时,我怀疑是否会发生任何需要“沉默”的异常。 – 2011-02-13 10:39:35

回答

4

是的,如果您的要求恰好如此,这是一个很好的做法。 :)

return 3 * string[:3] 
+0

+1表示“如果你的要求正是这样”。该声明适用于许多层面:) – Macke 2011-02-13 10:14:45