我是一个初学者,正在尝试制作一个函数,该函数可以交换列表的第一个和最后一个元素,或者单词的第一个字母和最后一个子字母,既适用于字符串,也适用于列表。
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)
然而,我得到了一个";无效语法"第三行出现错误,有人知道为什么会这样吗?提前感谢:-)
问题在于格式/语法。首先,您需要将:
放在if
和elif
语句的末尾,并需要放置如下所示的缩进:
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
。另一件事是,每次使用循环、决策语句或函数时都必须缩进:for
、while
、if
、def
。永远记住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]]