Моя программа является викториной заявки на префект, и в начале викторины учащимся необходимо ввести: Name
, Lastname
и School class
. В конце викторины программа рассчитает счет, и если они пройдут, то их данные будут отображаться на экране и записываться в текстовый файл. На этом этапе пользователю будет предложено написать краткое заявление о том, почему их следует считать префектом, и это также будет напечатано в файле. Пользователь должен иметь возможность распечатать файл в качестве квитанции, чтобы пройти тест на префект.Ошибка синтаксиса при попытке записи в текстовый файл в python
Это мой код, но он не работает, может кто-нибудь объяснить почему?
class Score_Window(tk.Toplevel):
'''A simple instruction window'''
def __init__(self, parent):
tk.Toplevel.__init__(self, parent)
score_str = str(sum(parent.score_per_question.values()))
self.score = tk.Label(self, width=80, height=4, text = "You're score was: " + score_str)
self.score.pack(side="top", fill="both", expand=True)
if int(score_str) >= 3:
print("Pass")
self.prefect = tk.Label(self, width=80, height=4, text = "You have passed, well done! You can now become a prefect.")
self.prefect.pack(side="top", fill="both", expand=True)
self.name = tk.Label(self, width=80, height=4, text = student_name)
self.name.pack(side="top", fill="both", expand=True)
self.surname = tk.Label(self, width=80, height=4, text = student_surname)
self.surname.pack(side="top", fill="both", expand=True)
self.tutor = tk.Label(self, width=80, height=4, text = student_tutor_group)
self.tutor.pack(side="top", fill="both", expand=True)
receipt_printoff = open("data.txt", "w")
receipt_printoff.write(student_name, " ",student_surname)
receipt_printoff.write(student_tutor_group)
statement = tkSimpleDialog.askstring("User data", "Enter something about yourself")
receipt_printoff.write((" ",statement)
Проблема появляется на следующей строке, где есть ошибка 'синтаксис':
with open("data.txt", "r") as l
for lines in l:
student_name2, student_surname2, statement2 = lines.split()
namelabel = label(self, text=student_name2)
namelabel.pack()
surnamelable = label(self, text=student_surname2)
surnamelable.pack()
Userinfolabel = label(self, text=statement2)
Userinfolabel.pack()
else:
print("Fail")
self.fail = tk.Label(self, width=80, height=4, text = "Unfortunately you have not scored highly enough to be considered for a prefect position.")
self.fail.pack(side="top", fill="both", expand=True)
Вы забыли 'receipt_printoff.close()' или лучше использовать ['with'] (http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects) заявление, когда работа с файловыми объектами. –
Ну что такое синтаксическая ошибка? – dimo414
@ dimo414: На линии до того, где OP думает, что это так. –