You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码出现SyntaxError: illegal target for annotation错误的原因?

错误原因分析

核心语法错误

你代码里的string== Name:first_name这类写法犯了两个致命语法错误:

  • 混淆赋值与比较:变量赋值要用单等号=,你误用了双等号==(这是判断相等的比较运算符)。
  • 错误使用类型注解:Name:属于Python的类型注解语法,仅用于标注变量/参数的类型(比如string: str = "xxx"),你把它和错误的比较运算符混在一起,导致解释器识别为非法的注解目标,直接抛出SyntaxError。

其他附带问题

除了上述语法错误,代码还有几个逻辑/语法问题:

  • 空字符串判断错误:测试用例传入的是空字符串"",但你代码里判断的是空格" ",会导致逻辑完全不符合预期。
  • 字符串拼接错误:"first_name, last_name"会直接输出字面量,而非变量的值,应改为f"{first_name}, {last_name}"或first_name + ", " + last_name。
  • print语句缩进错误:你把print放在了return string之后,函数执行到return就会终止,这些print永远不会被执行。

修正后的示例代码

def format_name(first_name, last_name):
    if first_name == "" and last_name == "":
        string = ""     
    elif first_name == "" and last_name != "":
        string = last_name
    elif first_name != "" and last_name == "":
        string = first_name
    else: 
        string = f"{first_name}, {last_name}"
    return string 

print(format_name("Ernest", "Hemingway"))
print(format_name("", "Madonna"))
print(format_name("Voltaire", ""))
print(format_name("", ""))

内容的提问来源于stack exchange,提问作者F. Y.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:31:06