-1

如果字符串的第一个字母与字符串的最后一个字母相同,first_and_last 函数返回 True,如果它们不同,则返回 False,通过使用 message[0] 或 message[-1] 访问字符。在检查空字符串的条件时,我得到了 tihis 错误:

Error on line 2:
    if message[0] == message[1] :
IndexError: string index out of range

我不明白为什么会出现此错误。下面是我的代码:

 def first_and_last(message):
        if message[0] == message[-1] or len(message) == 0:
            return True
     
        else:
            return False
    
    print(first_and_last("else"))
    print(first_and_last("tree"))
    print(first_and_last("")) 
4

1 回答 1

1

or停止对第一个真实操作数的操作数求值。因此,您必须首先检查消息长度以避免对空字符串的索引访问:

def first_and_last(message):
    if len(message) == 0 or message[0] == message[-1]:
        return True
    return False

或更短:

def first_and_last(message):
    return not message or message[0] == message[-1]
于 2021-08-30T15:43:50.687 回答