Compare commits
No commits in common. "90befc0953ee9074d9a73b6d9937a478b6c25503" and "d37c96daea46e70947063da0b9887a9ca5c26ac3" have entirely different histories.
90befc0953
...
d37c96daea
|
@ -1,91 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
|
|
||||||
import pathlib
|
|
||||||
import csv
|
|
||||||
import random
|
|
||||||
import os
|
|
||||||
from rich.console import Console
|
|
||||||
from rich.markdown import Markdown
|
|
||||||
|
|
||||||
|
|
||||||
def loading_file(file_path):
|
|
||||||
# loading file to working with
|
|
||||||
|
|
||||||
diction_reader = csv.DictReader(open(file_path, "r"))
|
|
||||||
data = []
|
|
||||||
for e in diction_reader:
|
|
||||||
data.append(e)
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def choice_question(data):
|
|
||||||
choice = random.choice(data)
|
|
||||||
return choice
|
|
||||||
|
|
||||||
|
|
||||||
def show_questions(choice):
|
|
||||||
os.system("clear")
|
|
||||||
c = Console()
|
|
||||||
quest = "# {}".format(choice["QUESTION"])
|
|
||||||
quest = Markdown(quest)
|
|
||||||
c.print(quest)
|
|
||||||
|
|
||||||
|
|
||||||
def show_answers(choice):
|
|
||||||
os.system("clear")
|
|
||||||
c = Console()
|
|
||||||
answer = []
|
|
||||||
for i in choice.keys():
|
|
||||||
if i.isnumeric():
|
|
||||||
answer.append(choice[i])
|
|
||||||
answers = ""
|
|
||||||
for i in answer:
|
|
||||||
if len(i) > 0:
|
|
||||||
answers += "1. {} \n".format(i)
|
|
||||||
answers = Markdown(answers)
|
|
||||||
c.print()
|
|
||||||
c.print(answers)
|
|
||||||
|
|
||||||
|
|
||||||
def prompt_answer(choice):
|
|
||||||
reply_answ = input("What is your answer ? ")
|
|
||||||
if reply_answ in choice["ANSWER"]:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
def print_explication(choice):
|
|
||||||
c = Console()
|
|
||||||
explication = "# {}".format(choice["EXPLICATION"])
|
|
||||||
explication = Markdown(explication)
|
|
||||||
c.print(explication)
|
|
||||||
|
|
||||||
|
|
||||||
def print_success(choice):
|
|
||||||
c = Console()
|
|
||||||
if choice:
|
|
||||||
mess1 = "## Good Answer!"
|
|
||||||
else:
|
|
||||||
mess1 = "## Ho no ... ! that's not the right answer..."
|
|
||||||
mess = Markdown(mess1)
|
|
||||||
c.print(mess)
|
|
||||||
|
|
||||||
|
|
||||||
def print_stats():
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
file_path = pathlib.Path('./data/list_book1.csv')
|
|
||||||
data = loading_file(file_path)
|
|
||||||
try:
|
|
||||||
while True:
|
|
||||||
result = choice_question(data)
|
|
||||||
show_questions(result)
|
|
||||||
show_answers(result)
|
|
||||||
result1 = prompt_answer(result)
|
|
||||||
print_success(result1)
|
|
||||||
print_explication(result)
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
print("Ciao Ciao")
|
|
75
poc_hugo.py
75
poc_hugo.py
|
@ -36,34 +36,64 @@ def _print_question(question_asked):
|
||||||
c.print(answer)
|
c.print(answer)
|
||||||
|
|
||||||
|
|
||||||
def _print_explication(question):
|
def _has_multiple_answer(question_asked):
|
||||||
c = Console()
|
"""
|
||||||
actual_question = "# {}".format(question["EXPLICATION"])
|
:param question_asked:
|
||||||
actual_question = Markdown(actual_question)
|
:return Boolean:
|
||||||
c.print(actual_question)
|
"""
|
||||||
|
answers = str(question_asked["ANSWER"]).split()
|
||||||
|
try:
|
||||||
|
if answers[1]:
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def _one_digit_answer(question_asked):
|
||||||
|
"""
|
||||||
|
:param question_asked:
|
||||||
|
:return Boolean:
|
||||||
|
"""
|
||||||
|
result = input("What's your answer? ")
|
||||||
|
if result == question_asked["ANSWER"]:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def _multiple_digit_answer(question_asked):
|
||||||
|
"""
|
||||||
|
:param question_asked:
|
||||||
|
:return Boolean:
|
||||||
|
"""
|
||||||
|
answers = input("What's your answer? ").split(" ")
|
||||||
|
right_answers = str(question_asked["ANSWER"]).split(" ")
|
||||||
|
if len(answers) == 0:
|
||||||
|
return False
|
||||||
|
for answer in answers:
|
||||||
|
try:
|
||||||
|
test = right_answers.index(answer)
|
||||||
|
right_answers.pop(test)
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
if len(right_answers) == 0:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _test_question(question_asked):
|
def _test_question(question_asked):
|
||||||
"""
|
"""
|
||||||
:param question_asked:
|
:param question_asked:
|
||||||
:return Boolean:
|
:return Boolean:
|
||||||
"""
|
"""
|
||||||
answers = input("What is your answer? ").split()
|
if _has_multiple_answer(question_asked):
|
||||||
right_answers = str(question_asked["ANSWER"]).split()
|
return _multiple_digit_answer(question_asked)
|
||||||
if len(answers) == 0:
|
|
||||||
return False, question_asked["ANSWER"]
|
|
||||||
for answer in answers:
|
|
||||||
try:
|
|
||||||
test = right_answers.index(answer)
|
|
||||||
right_answers.pop(test)
|
|
||||||
except ValueError or IndexError:
|
|
||||||
return False, question_asked["ANSWER"]
|
|
||||||
if len(right_answers) == 0:
|
|
||||||
return True, question_asked["ANSWER"]
|
|
||||||
else:
|
else:
|
||||||
return False, question_asked["ANSWER"]
|
return _one_digit_answer(question_asked)
|
||||||
|
|
||||||
|
|
||||||
def _print_success(result, answers):
|
def _print_success(result):
|
||||||
"""
|
"""
|
||||||
:param result:
|
:param result:
|
||||||
"""
|
"""
|
||||||
|
@ -71,7 +101,7 @@ def _print_success(result, answers):
|
||||||
if result:
|
if result:
|
||||||
msg = "## Good job!"
|
msg = "## Good job!"
|
||||||
else:
|
else:
|
||||||
msg = "## that's not the right answer... The answer(s) was(were) ({})".format(answers)
|
msg = "## that's not the right answer..."
|
||||||
md = Markdown(msg)
|
md = Markdown(msg)
|
||||||
c.print(md)
|
c.print(md)
|
||||||
|
|
||||||
|
@ -93,8 +123,7 @@ if __name__ == "__main__":
|
||||||
random.shuffle(dictionary)
|
random.shuffle(dictionary)
|
||||||
for question in dictionary:
|
for question in dictionary:
|
||||||
_print_question(question)
|
_print_question(question)
|
||||||
result, answers = _test_question(question)
|
result = _test_question(question)
|
||||||
counter.append(result)
|
counter.append(result)
|
||||||
_print_explication(question)
|
_print_success(result)
|
||||||
_print_success(result, answers)
|
|
||||||
print_stats(counter)
|
print_stats(counter)
|
||||||
|
|
Loading…
Reference in New Issue