Python自定义swapboth函数触发Invalid Syntax语法错误原因求解
Python swapboth函数语法错误原因说明
你遇到的Invalid Syntax错误由两个基础语法问题共同导致:
- 条件判断行缺失冒号:Python 语法要求
if、elif等条件判断语句的行末尾必须加英文冒号:,你代码中if type(x) == str、elif type(x) == list两行末尾都没有添加冒号,直接触发语法报错。 - 代码块缩进不符合规范:Python 强制要求函数内部的代码块必须相对于
def定义行缩进(通常用4个空格或1个制表符),你代码中if、elif及对应的return语句都没有缩进,和def行处于同一层级,违反了语法规则。
修正后的可运行代码
def swapboth(x): # 补充说明:推荐用isinstance替代直接判断type,可适配继承str/list的自定义子类场景 if isinstance(x, str): return x[-1] + x[1:-1] + x[0] elif isinstance(x, list): return [x[-1]] + x[1:-1] + [x[0]] # 测试代码 ns = [1,2,3] s = "Thorsten" print(swapboth(ns)) print(swapboth(s))
运行后输出结果:
[3, 2, 1] nhorsteT
内容的提问来源于stack exchange,提问作者anonuser
相关产品推荐
相关产品推荐

