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

运行Python模块时else分支报SyntaxError无效语法错误如何解决?

语法错误原因

  • 核心问题是Proj05Runner.py中if和else语句之间存在无归属的游离代码:你在if subStr in str:分支第一行就写了return语句,后面4行拼接的字符串既没有和前面的返回值拼接,也没有赋值给任何变量,直接裸写在if块结束后、else语句前,破坏了if-else的语法结构,因此触发了else行的语法报错。
  • 次要问题是字符串拼接逻辑错误:你本意是将4行提示文本拼接为完整返回值,但当前写法没有用+连接多行字符串,也没有用括号包裹多行拼接内容,Python会将每一行识别为独立语句。
  • 额外提示:不要用str作为变量名,str是Python内置的字符串类型关键字,重命名会覆盖原有功能,容易引发后续错误。

修复后模块代码(Proj05Runner.py)

def run(input_str, subStr):
    """Returns a substring of any given string based upon a given range of characters before and after the substring"""

    str_range = 3

    if subStr in input_str:
        str_modified = input_str[input_str.index(subStr) - str_range : input_str.index(subStr) + len(subStr) + str_range]
        # 用括号包裹多行拼接字符串,统一返回
        return (
            "I certify that this program is my own work " + "\n" + input_str + "\n" + subStr + "\n" + str_modified
            + "and is not the work of others. I agree not " + "\n" + input_str + "\n" + subStr + "\n" + str_modified
            + "to share my solution with others. " + "\n" + input_str + "\n" + subStr + "\n" + str_modified
            + "Print your name here." + "\n" + input_str + "\n" + subStr + "\n" + str_modified
        )
    else:
        return "ERROR: subStr not found in str!"

优化后驱动代码

import Proj05Runner

input_str = 'The lazy brown fox jumped over the fence.'
subStr = 'fox'
result = Proj05Runner.run(input_str,subStr)
print(result)

内容的提问来源于stack exchange,提问作者MMx15

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:45:03