Форум сайта python.su
0
Добрый день!
Имеется задача: создать викторину, записывать рекорды в текстовый файл, викторину создал, в файл .dat записывает легко, в текстовый никак
вот сама прога:
import sys def open_file(file_name, mode): try: the_file = open(file_name, mode) except IOError as f: print("Невозможно открыть файл", file_name, f) input("Чтобы выйти нажмите enter") sys.exit() else: return the_file def next_line(the_file): line = the_file.readline() line = line.replace("/", "\n") return line def next_block(the_file): category = next_line(the_file) question = next_line(the_file) answers = [] for i in range(4): answers.append(next_line(the_file)) correct = next_line(the_file) if correct: correct = correct[0] nominal = next_line(the_file) explain = next_line(the_file) return category, question, answers, correct, nominal, explain def welcome(title): print("Добро пожаловать в викторину") print(title) def main(): scores = [] choice = None while choice != 0: print( """ ===Викторина=== 1 - начать игру 2 - посмотреть рекорды """ ) choice = input("Ваш выбор: ") if choice == "1": name = input("Введите имя: ") trivia_file = open_file("the_trivia.txt", "r") title = next_line(trivia_file) welcome(title) score = 0 category, question, answers, correct, nominal, explain = next_block(trivia_file) while category: print(category) print(question) for i in range(4): print(i + 1, "-", answers[i]) print("за правильный ответ вы можете получить ", nominal, "баллов") answer = input("Ваш ответ: ") if answer == correct: print("Правильно!", end=" ") score += int(nominal) else: print("неверный ответ!", end=" ") print(explain) print("Счет: ", score) category, question, answers, correct, nominal, explain = next_block(trivia_file) trivia_file.close() print("это был последний вопрос") print("Вы набрали ", score, "баллов") if score >= 3: print("Вы настоящий пипетковод, поздравляю!") else: print("Вам еще стоит кое-чему поучиться у пипетководов") entry = (name, score) scores.append(entry) f = open("trivia.txt", "w") f.writelines(scores) f.close() elif choice == "2": f = open("trivia.txt", "r") print(f.read()) main() input("Чтобы выйти нажмите Enter")
Офлайн
61
tuple = (some, data, strin)
string = ‘some data string’
tupe 2 string = ''.join(tuple)
Офлайн
0
ZerGух ты, а вот этого я еще не проходил, я так понимаю здесь список/кортеж превращается в строку?
последняя строчка тоже не очень понятна
а еще такой момент: разве не должен список записываться в текстовый файл через метод writelines()?
Офлайн
61
writelines - хочет писать строку - а вы вместо строки даете ему кортеж.
Офлайн