【发布时间】:2020-01-19 12:17:11
【问题描述】:
我有以下任务:
我们将编写一个名为student_register.py 的程序,允许学生注册考场。
首先,询问用户有多少学生正在注册。
创建一个针对该数量学生运行的for 循环
每个循环都要求学生输入他们的 ID 号。
将每个 ID 号写入一个名为 reg_form.txt 的文本文件
这将用作考勤登记册,他们将在到达考场时签名。
我认为我的以下代码很接近,因为它保存了文本文件,但只保存了第一个输入的 ID 号,不显示其他的。
students = int(input("Please enter the amount of students registered."))
id_number = ""
for a in range (0, students):
id_number = (int(input("Please enter student ID numbers.")))
id_number = id_number + 1
reg_form = open('reg_form.txt', 'w')
reg_form.write("Student ID numbers: \n" + str(id_number))
print ("Thank you, ID numbers saved to txt file reg_form")
【问题讨论】:
-
'w'模式会在文件已存在时将其截断,即删除现有内容。这不是正确的open模式(或打开文件的正确位置 - 例如,您可以在在循环之外执行一次),如果这不是您想要的行为。 -
使用追加模式
a而不是w -
将此行
reg_form = open('reg_form.txt', 'w')移到循环之前,如果您只是写入同一个文件,则没有理由一遍又一遍地重新打开文件。最好在此处使用上下文管理器,因此在循环之前添加以下行:with open('reg_form.txt', 'w') as reg_form:。还有id_number = id_number + 1不在说明里,为什么要更改学生输入的身份证号码?