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

复刻CS50P课程Python代码出现语法错误,请求排查

问题排查与解决

你的代码本身没有语法错误,问题出在运行代码的方式上,以下是具体错误原因和解决步骤:

错误原因分析

  1. 交互式环境中错误输入代码
    你首次报错时是在Python交互式解释器(>>>提示符)里直接输入带缩进的字典片段,而且还写错了代码("Patronus"没有对应的键值对),交互式环境对缩进和完整语法要求严格,直接这样输入必然触发IndentationError。

  2. 在Python交互环境中执行Shell命令
    后续你在>>>提示符下输入cd /workspaces/150403671、python hogwarts.py这类命令,这些是终端Shell命令,不能在Python交互式环境中执行,所以会触发NameError或SyntaxError。

正确运行步骤

  1. 确保代码文件正确
    把你提供的代码完整保存为hogwarts.py文件,确认内容如下:

    students = [
        {"name": "Hermione", "house": "Gryffindor", "patronus": "Otter"},
        {"name": "Harry", "house": "Gryffindor", "patronus": "Stag"},
        {"name": "Ron", "house": "Gryffindor", "patronus": "Jack russel terrier"},
        {"name": "Draco", "house": "Slytherin", "patronus": None}
    ]
    for student in students:
        print(student["name"], student["house"], student["patronus"])
    
  2. 退出Python交互式环境
    在>>>提示符下输入exit()或按Ctrl+D退出,回到终端的常规命令提示符(比如$)。

  3. 切换到代码所在目录并运行
    在终端中执行Shell命令:

    cd /workspaces/150403671
    python hogwarts.py
    

    运行后会输出预期结果:

    Hermione Gryffindor Otter
    Harry Gryffindor Stag
    Ron Gryffindor Jack russel terrier
    Draco Slytherin None
    

额外提示

  • 明确区分Python交互式环境(>>>)和终端Shell($或类似提示符):前者用于快速测试小段Python代码,后者用于执行文件、切换目录等系统操作。
  • 如果需要在交互式环境中测试完整代码,可直接粘贴完整代码片段,或使用python -i hogwarts.py命令运行文件后进入交互模式查看变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:22:21