Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引器:字符串索引超出范围(str1[-1])_Python_String - Fatal编程技术网

Python 索引器:字符串索引超出范围(str1[-1])

Python 索引器:字符串索引超出范围(str1[-1]),python,string,Python,String,以下是我的功能: def find_last(str1): return str1[-1] 当我运行它时: print find_last('aaaa') 我有以下错误: return str1[-1] IndexError: string index out of range 我怎样才能解决这个问题 谢谢。您的代码很好: >>> def find_last(str1): ... return str1[-1] ... >>> prin

以下是我的功能:

def find_last(str1):
    return str1[-1]
当我运行它时:

print find_last('aaaa')
我有以下错误:

return str1[-1]
IndexError: string index out of range
我怎样才能解决这个问题

谢谢。

您的代码很好:

>>> def find_last(str1):
...     return str1[-1]
... 
>>> print find_last('aaaa')
a
>>> 
您的代码很好:

>>> def find_last(str1):
...     return str1[-1]
... 
>>> print find_last('aaaa')
a
>>> 

您编写的函数只有在传入空字符串(或者当然不是字符串或其他序列的内容)时才会失败。确保这一功能正常运行而不必检查空字符串的一个好方法是使用切片而不是索引:

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

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

您编写的函数只有在传入空字符串(当然不是字符串或其他序列)时才会失败。确保这一功能正常运行而不必检查空字符串的一个好方法是使用切片而不是索引:

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

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

您不应该使用
'aaaa'
获得该响应,但您可以通过以下方法改进您的函数:

def find_last(str1):

    return str1[-1] if str1 else None

您不应该通过
'aaaa'
获得这种响应,但您可以通过以下方式改进您的功能:

def find_last(str1):

    return str1[-1] if str1 else None

对于
'aaaa'
该函数将永远不会引发
索引器。
您肯定传递了一个空字符串。@Micheal这不会发生,请使用您使其发生的示例。是的,也许我已经方便地传递了一个空字符串它对我来说运行良好,所以可能是空字符串。@MichaelVayvala然后在索引前检查字符串长度,或者使用try-except。对于
'aaaa'
,该函数永远不会引发
索引器。
您肯定传递了空字符串。@Micheal不会发生这种情况,请使用您导致它发生的示例。是的,可能是我方便地传递了一个空字符串。它对我来说运行正常,所以可能是空字符串。@MichaelVayvala然后在索引它之前检查字符串长度,或者使用try-except。