运行以下代码时收到python语法错误

时间:2020-03-28 06:08:15

标签: python

抛出错误来验证字符串中的字符是否为空:

Python代码

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

错误

Traceback (most recent call last):                                                                                            
  File "main.py", line 8, in <module>                                                                                         
    print(first_and_last(""))                                                                                                 
  File "main.py", line 2, in first_and_last                                                                                   
    if(message[0] ==  message[-1] or len(message[0])==0):                                                                     
IndexError: **string index out of range**

3 个答案:

答案 0 :(得分:0)

在访问其元素之前,需要比较一个空字符串。您的情况应该是:

if(len(message)==0 or message[0] ==  message[-1]):

它应该是len(message)而不是len(message[0]),因为如果您的message为空,则不会有任何message[0]

答案 1 :(得分:0)

您首先需要确保该消息不是空字符串。 使用此方法,它将返回0,其结果为false;如果第一个字符和最后一个字符相同,则返回true。

def first_and_last(message):
  return len(message) and message[0] == message[-1]

答案 2 :(得分:0)

尝试:

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

错误是您还必须提到检查空字符串的情况,因为在函数中传递了空字符串。