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

Python文件处理时如何将条件判断得到的成绩评价写入TXT文件

问题原因

  • 你在条件判断中仅打印了Remarks结果,没有将结果存储为可复用的变量
  • 写入文件时仅写了Remarks: 前缀,没有追加对应的评价内容
  • 原代码重复打开文件的逻辑存在错误,还可能出现文件资源未正常关闭的问题

解决方案

你只需要先把评价结果存为变量,再调用write方法写入即可,以下是修正后的完整代码:

name = input("Enter Name: ")
course = input("Enter Course: ")
section = input("Enter Section: ")
sub1 = int(input("Enter 1st Grade: "))
sub2 = int(input("Enter 2nd Grade: "))
sub3 = int(input("Enter 3rd Grade: "))
sub4 = int(input("Enter 4th Grade: "))
sub5 = int(input("Enter 5th Grade: "))
avg = int((sub1+sub2+sub3+sub4+sub5)/5)
print("Average mark:",avg)
# 先把评价结果存为变量,方便后续打印+写入文件复用
if avg >=70:
    remarks = "Passed"
else:
    remarks = "Failed"
print(f"Remarks: {remarks}")

# 推荐用with上下文管理器,自动处理文件关闭,不需要手动调用close
with open("test.txt", "w+", encoding="utf-8") as f:
    f.write(f"{name}\n")
    f.write(f"{course}\n")
    f.write(f"{section}\n")
    f.write(f"The average is {avg}\n")
    f.write(f"Remarks: {remarks}\n")
    # 读取文件内容打印
    f.seek(0) # 写完后指针在文件末尾,需要移到开头才能读取到全部内容
    print(f.read())

核心改动说明

  • 新增remarks变量存储条件判断的结果,同时支持打印和写入文件两处复用
  • 用with语句管理文件操作,避免资源泄漏,不需要手动调用f.close()
  • 写入内容时用f-string格式化,减少重复的write调用和换行符拼接,代码更简洁
  • 补充f.seek(0)将文件指针移到开头,读取文件内容时不会出现空内容的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 02:45:04