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

Python新手求助:学生数据文件读写程序问题(附代码)

你的Python代码问题分析与修正

直接列出代码存在的关键问题:

  • 字符串语法错误:原代码中print的字符串直接跨多行书写,Python不允许未闭合的字符串换行,需用\n实现换行,或用三重引号包裹多行内容。
  • 文件未安全关闭:直接用open()打开文件后未调用close(),可能导致数据未完全写入就终止程序,推荐用with语句自动管理文件上下文,无需手动关闭。
  • 写入格式错误:写入文件时末尾多了一个逗号,且换行符写法错误(直接换行触发语法错误),需用\n表示换行,同时删除多余逗号。
  • 格式化输出错误:最后一行print中,year是input()获取的字符串类型,用%d(整数格式)会触发类型错误;且循环结束后username为"xxx",此时打印这些变量无实际意义,甚至会因首次输入xxx导致变量未定义报错。

修正后的代码:

# 使用with语句自动管理文件,无需手动关闭
with open("students.txt", "w") as studentfile:
    print("this program writes Student data to Student text")
    username = input("enter Student username, xxx to end: ")

    while username != "xxx":
        firstname = input("firstname: ")
        surname = input("surname: ")
        gender = input("Gender: ")
        year = input("Year: ")
        # 用f-string拼接内容,格式更简洁,添加正确换行符
        studentfile.write(f"{username},{firstname},{surname},{gender},{year}\n")
        username = input("enter Student Username, xxx to end: ")

优化说明:

  • with语句会在代码块结束后自动关闭文件,确保数据写入成功。
  • f-string比字符串+拼接更简洁易读,避免类型拼接问题。
  • 修复所有语法错误,保证代码能正常运行。
  • 移除无意义且报错的末尾print语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:45:42