我必须编写一个程序,提示用户输入六个测试名称及其分数,并将它们写入名为tests.txt的文本文件中。你必须使用一个循环。每个输入都应写入文件中自己的行。完成后,程序应生成确认消息。当我运行我的程序时,它可以工作,但最后我得到一个错误:
Traceback (most recent call last):
File "C:/Users/brittmoe09/Desktop/program6_1.py", line 34, in <module>
main()
File "C:/Users/brittmoe09/Desktop/program6_1.py", line 18, in main
test_scores.write(name + '\n')
ValueError: I/O operation on closed file.
我不确定我做错了什么,任何帮助都会受到赞赏。
这是我的代码:
def main():
test_scores = open('tests.txt', 'w')
print('Entering six tests and scores')
for count in range(6):
name = input('Enter a test name')
score = int(input('Enter % score on this test'))
while name != '':
test_scores.write(name + '\n')
test_scores.write(str(score) + '\n')
test_scores.close()
print('File was created successfully')
main()
答案 0 :(得分:0)
块while:
while name != '':
...
&#13;
答案 1 :(得分:0)
这就是我的所作所为。摆脱第二次while循环,并将关闭文件移出for循环,因为你正在关闭循环中的文件,这会给你错误:(我的一些变量名与你的不同,所以注意这一点)
test_scores = open('tests.txt','w')#open txt file
print('Entering six tests and scores')
for count in range(6):#for loop to ask the user 6 times
name = input('Enter a test name: ')
testscore = int(input('Enter % score on this test: '))
for count2 in range(1):
test_scores.write(str(name) + '\n')
test_scores.write(str(testscore) + '\n')
test_scores.close()#close the txt file
print('File was created successfully!')