Python实现将循环输入的所有学生ID写入TXT文件的方法
问题解决与代码优化
核心问题拆解
- 仅最后一个ID写入文件:因为写入操作放在了循环外面,循环结束后
s_id只保留最后一次输入的值,自然只会写入这一条。 - 文件模式选择:
"w"会覆盖原有文件内容(适合每次生成全新的注册表单);"a"会在文件末尾追加内容(适合在已有表单后继续添加新注册信息),根据你的实际需求选对应的模式就行。 - 写入操作放入循环:有两种实用方案,按需选择即可。
优化后的代码方案
方案1:边输入边写入
适合担心输入中断丢失数据的场景,每输入一个ID就立刻保存:
no_students = int(input("How many students are registering?")) # 按需选模式:全新表单用"w",追加内容用"a" with open("reg_form.txt", "w") as f: for _ in range(no_students): s_id = input("Enter your student ID: ") f.write(f"Student ID: {s_id} ....................... \n")
方案2:收集所有ID后批量写入
适合需要先核对所有ID再统一保存的场景:
no_students = int(input("How many students are registering?")) student_ids = [] for _ in range(no_students): s_id = input("Enter your student ID: ") student_ids.append(s_id) # 写入文件,模式选择同上 with open("reg_form.txt", "w") as f: for s_id in student_ids: f.write(f"Student ID: {s_id} ....................... \n")
额外细节说明
- 原代码里的
i变量完全多余,直接用range(no_students)就能精准控制循环次数,代码更简洁。 - 字符串格式化不需要额外套
str(),f-string本身就是字符串类型,多此一举反而没必要。
内容的提问来源于stack exchange,提问作者user20677321
相关产品推荐
相关产品推荐

