From c5fcf7179a83ef65c86c6a4a390029149e518649 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Tue, 5 Oct 2021 21:49:54 +0200 Subject: Duzy commit ze smieciami --- Semestr 3/pf/lista3/fix.py | 123 --------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 Semestr 3/pf/lista3/fix.py (limited to 'Semestr 3/pf/lista3/fix.py') diff --git a/Semestr 3/pf/lista3/fix.py b/Semestr 3/pf/lista3/fix.py deleted file mode 100644 index dec5878..0000000 --- a/Semestr 3/pf/lista3/fix.py +++ /dev/null @@ -1,123 +0,0 @@ -import json - - -def is_string_number(s: str): - try: - int(s) - return True - except: - return False - - -def is_question_number(s: str): - if s.endswith('.') and is_string_number(s[:-1]): - return True - return False - - -def fix(): - with open('data.txt', 'r') as reader: - word_by_word = reader.read().split() - idx = 0 - questions = [] - while idx < len(word_by_word): - while idx < len(word_by_word) and not is_question_number(word_by_word[idx]): - idx += 1 - question = "" - print(f"Question number {word_by_word[idx]}.") - - while not word_by_word[idx].startswith('a)'): - question += word_by_word[idx] + " " - idx += 1 - ans = {'a': "", 'b': "", 'c': "", 'd': ""} - while not word_by_word[idx].startswith('b)'): - ans['a'] += word_by_word[idx] + " " - idx += 1 - while not word_by_word[idx].startswith('c)'): - ans['b'] += word_by_word[idx] + " " - idx += 1 - while not word_by_word[idx].startswith('d)'): - ans['c'] += word_by_word[idx] + " " - idx += 1 - while (idx < len(word_by_word)) and not is_question_number(word_by_word[idx]): - ans['d'] += word_by_word[idx] + " " - idx += 1 - questions.append( - Question(question, [ans['a'], ans['b'], ans['c'], ans['d']])) - return questions - - -def questions_to_file(file_name, questions): - with open(file_name, 'w') as writer: - for question in questions: - writer.write(str(question) + '\n') - - -class Question: - def __init__(self, question, answers, correct_answer=0, question_number=0): - self.question = question - self.answers = answers - self.correct_answer = correct_answer - self.question_number = int(question.split('.')[0]) - - def toJSON(self): - return json.dumps(self, default=lambda o: o.__dict__, - sort_keys=True, indent=4) - - def set_correct_answer(self, s): - self.correct_answer = ord(s[0]) - ord('a') - - def __str__(self): - ret = self.question + '\n' - for i, ans in enumerate(self.answers): - ret += ans - if i == self.correct_answer: - ret += ' <----- CORRECT' - ret += '\n' - return ret - - def get_correct(self): - return self.answers[self.correct_answer] - - def str_without_answer(self): - ret = self.question + '\n' - for i, self.answers in enumerate(self.answers): - ret += self.answers + '\n' - return ret - - -def gen_data_with_answers(questions): - for question in questions: - print(question.str_without_answer()) - correct = input('Correct answer is: [a, b, c, d] ') - while len(correct) == 0 or ord(correct[0]) < ord("a"[0]) or ord(correct[0]) > ord("d"[0]): - correct = input('Try again: ') - question.set_good_answer(correct) - return questions - - -def serialize_answers(file_name, questions): - with open(file_name, 'w') as writer: - writer.write(json.dumps([qu.__dict__ for qu in questions])) - - -def generate_answers(): - questions = fix() - try: - gen_data_with_answers(questions) - except: - pass - serialize_answers("answers.json", questions) - - -def get_answers_from_json(): - with open('answers.json', 'r') as reader: - js = reader.read() - q = json.loads(js) - questions = [] - for quest in q: - questions.append(Question(**quest)) - return questions - - -generate_answers() -- cgit v1.2.3