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 に答える