test.py
## Acest program rulează un test de cunoștințe
# În primul rând, primește întrebările de test
# Mai târziu, acesta va fi modificat pentru a utiliza fișierul io.
def get_questions():
# observați cum datele sunt stocate ca o listă de liste
return [["What color is the daytime sky on a clear day? ", "blue"],
["What is the answer to life, the universe and everything? ", "42"],
["What is a three letter word for mouse trap? ", "cat"]]
# Aceasta va testa o singură întrebare
# ia în considerare o singură întrebare
# returnează True dacă utilizatorul a tastat răspunsul corect, în caz contrar False
def check_question(question_and_answer):
# extrage întrebarea și răspunsul din listă
# Această funcție preia o listă cu două elemente, o întrebare și un răspuns.
question = question_and_answer[0]
answer = question_and_answer[1]
# dă întrebarea utilizatorului
given_answer = input(question)
# compară răspunsul utilizatorului cu răspunsul testerului
if answer == given_answer:
print("Correct")
return True
else:
print("Incorrect, correct was:", answer)
return False
# Aceasta va trece prin toate întrebările
def run_test(questions):
if len(questions) == 0:
print("No questions were given.")
# return iese din funcție
return
index = 0
right = 0
while index < len(questions):
# Verifică întrebarea
#Rețineți că aceasta este extragerea unei liste de întrebări și răspunsuri din lista de liste.
if check_question(questions[index]):
right = right + 1
# trece la următoarea întrebare
index = index + 1
# observați ordinea calculului, mai întâi înmulțire, apoi împărțire
print("You got", right * 100 / len(questions),\
"% right out of", len(questions))
# acum obține întrebările din funcția get_questions, și
# trimite lista returnată de liste ca argument la funcția run_test.
run_test(get_questions())
Valorile True și False indică 1 și, respectiv, 0. Ele sunt adesea folosite în verificări de sănătate, condiții de buclă etc. Veți afla mai multe despre acest lucru puțin mai târziu (capitolul Expresii booleene). Vă rugăm să rețineți că get_questions() este în esență o listă, deoarece, deși din punct de vedere tehnic este o funcție, returnarea unei liste de liste este singurul lucru pe care îl face.
Rezulat eșantion:
What color is the daytime sky on a clear day? green Incorrect, correct was: blue What is the answer to life, the universe and everything? 42 Correct What is a three letter word for mouse trap? cat Correct You got 66 % right out of 3
Exerciții
Extindeți programul test.py, astfel încât să aibă un meniu care oferă opțiunea de a susține testul, vizualizarea listei de întrebări și răspunsuri și o opțiune de a renunța. De asemenea, adăugați o nouă întrebare pentru a pune: „What noise does a truly advanced machine make?” cu răspunsul de „ping”.
Soluție
## Acest program rulează un test de cunoștințe
questions = [["What color is the daytime sky on a clear day? ", "blue"],
["What is the answer to life, the universe and everything? ", "42"],
["What is a three letter word for mouse trap? ", "cat"],
["What noise does a truly advanced machine make?", "ping"]]
# Aceasta va testa o singură întrebare
# ia în considerare o singură întrebare
# returnează True dacă utilizatorul a tastat răspunsul corect, în caz contrar False
def check_question(question_and_answer):
# extrage întrebarea și răspunsul din listă
question = question_and_answer[0]
answer = question_and_answer[1]
# dă întrebarea utilizatorului
given_answer = input(question)
# compară răspunsul utilizatorului cu răspunsul testatorilor
if answer == given_answer:
print("Correct")
return True
else:
print("Incorrect, correct was:", answer)
return False
# Aceasta va trece prin toate întrebările
def run_test(questions):
if len(questions) == 0:
print("No questions were given.")
# return iese din funcție
return
index = 0
right = 0
while index < len(questions):
# Verifică întrebarea
if check_question(questions[index]):
right = right + 1
# trece la următoarea întrebare
index = index + 1
# observați ordinea calculului, mai întâi înmulțire, apoi împărțire
print("You got", right * 100 / len(questions),
"% right out of", len(questions))
#arătând o listă de întrebări și răspunsuri
def showquestions():
q = 0
while q < len(questions):
a = 0
print("Q:" , questions[q][a])
a = 1
print("A:" , questions[q][a])
q = q + 1
# acum să definim funcția de meniu
def menu():
print("-----------------")
print("Menu:")
print("1 - Take the test")
print("2 - View a list of questions and answers")
print("3 - View the menu")
print("5 - Quit")
print("-----------------")
choice = "3"
while choice != "5":
if choice == "1":
run_test(questions)
elif choice == "2":
showquestions()
elif choice == "3":
menu()
print()
choice = input("Choose your option from the menu above: ")
(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)
Lasă un răspuns