0

这是我的功能:

def find_last(str1):
    return str1[-1]

当我运行它时:

print find_last('aaaa')

我有以下错误:

return str1[-1]
IndexError: string index out of range

我怎样才能解决这个问题?

谢谢。

4

3 回答 3

3

您编写的函数仅在传入空字符串(或者当然不是字符串或其他序列的内容)时才会失败。无需检查空字符串即可确保其正常工作的一个好方法是使用切片而不是索引:

def get_last(text):
    return text[-1:]

这意味着“从最后一个字符返回到末尾”。这甚至适用于空字符串,因为切片会自动在字符串的任一端停止。

于 2013-09-15T16:58:57.953 回答
1

你的代码很好:

>>> def find_last(str1):
...     return str1[-1]
... 
>>> print find_last('aaaa')
a
>>> 
于 2013-09-15T16:54:27.730 回答
0

你不应该得到这样的回应,'aaaa'但你可以通过以下方式改进你的功能:

def find_last(str1):

    return str1[-1] if str1 else None
于 2013-09-15T16:59:45.717 回答