为什么此函数会引发"Invalid Syntax"错误?



我是一个初学者,正在尝试制作一个函数,该函数可以交换列表的第一个和最后一个元素,或者单词的第一个字母和最后一个子字母,既适用于字符串,也适用于列表。

def swapboth (x) :
if type(x) == str
return x[-1]+x[1:-1]+x[0]
elif type(x) == list
return [x[-1]]+x[1:-1]+[x[0]]

尝试使用它:

ns = [1,2,3]
s = "Thorsten"
swapboth(ns)
swapboth(s)

然而,我得到了一个";无效语法"第三行出现错误,有人知道为什么会这样吗?提前感谢:-)

问题在于格式/语法。首先,您需要将:放在ifelif语句的末尾,并需要放置如下所示的缩进:

def swapboth(x):
if type(x) == str:
return x[-1]+x[1:-1]+x[0]
elif type(x) == list:
return [x[-1]]+x[1:-1]+[x[0]]

存在缩进错误。Python对缩进非常敏感。另外,试着在if和elif语句的末尾加上冒号(:)。

您需要缩进并使用:if在python 中运行代码

def swapboth (x) :
if type(x) == str:
return x[-1]+x[1:-1]+x[0]
elif type(x) == list:
return [x[-1]]+x[1:-1]+[x[0]]

你可以在这里找到更多信息-https://www.w3schools.com/python/gloss_python_indentation.asp

syntax error表示您编写的语句格式不正确。这些是最基本的错误,比如缺少标点符号、括号等。在这里,每个条件的末尾都缺少一个colon。另一件事是,每次使用循环、决策语句或函数时都必须缩进:forwhileifdef。永远记住Python对缩进非常敏感。所以,你的代码需要像这个

def swapboth (x) : 
if type(x) == str:
return x[-1]+x[1:-1]+x[0] 
elif type(x) == list:
return [x[-1]]+x[1:-1]+[x[0]]

相关内容

最新更新