Python定义def函数触发invalid syntax语法错误求助
Python语法错误修复说明
错误原因
- 函数定义语法错误:Python中
def是函数声明关键字,不能直接赋值给变量,原代码中nameArr2 = def email_to_full_name(i):写法完全不符合语法规范 - 单行多语句未分隔:类似
name2 = name1[0].split(".") fullname = name2[1].upper() + "," + name2[0].upper()、return fullname print("input output")的写法,多个独立语句放在同一行必须换行或者用分号分隔 - 函数重复定义:两次声明
email_to_full_name函数会导致后一次逻辑覆盖前一次 - 列表未初始化就调用方法:
nameArr2需要先初始化为空列表才能调用append方法添加元素,否则会报未定义错误 - 变量作用域混淆:原代码中
nameArr定义在错误的函数内部,外部for循环无法访问这个变量
修正后可运行代码
# 初始化存储转换结果的列表 nameArr2 = [] # 定义邮箱转全名的函数 def email_to_full_name(i): name1 = i.split("@") name2 = name1[0].split(".") fullname = name2[1].upper() + "," + name2[0].upper() nameArr2.append(fullname) return fullname # 初始化待处理邮箱列表 email1 = "balan.acer@mymail.mapua.edu" email2 = "Kendrick.jason@mymail.mapua.edu" nameArr = [email1, email2] print("input output") for i in nameArr: print(i + " 转换结果:" + email_to_full_name(i)) # 可按需打印所有转换后的全名列表 print("所有转换结果:", nameArr2)
内容的提问来源于stack exchange,提问作者nana
相关产品推荐
相关产品推荐

