Jak zrobić quiz w Pythonie (ze zdjęciami)

Spisu treści:

Jak zrobić quiz w Pythonie (ze zdjęciami)
Jak zrobić quiz w Pythonie (ze zdjęciami)

Wideo: Jak zrobić quiz w Pythonie (ze zdjęciami)

Wideo: Jak zrobić quiz w Pythonie (ze zdjęciami)
Wideo: Countdown timer program in Python ⌛ 2024, Kwiecień
Anonim

Jeśli chcesz nauczyć się Pythona, dobrze jest zacząć od prostych gier tekstowych. W tym artykule dowiesz się, jak zrobić quiz.

Kroki

947361 1
947361 1

Krok 1. Zainstaluj Pythona, jeśli jeszcze tego nie zrobiłeś

Istnieją dwie główne wersje Pythona: Python 2 i Python 3. Nie są one wymienne, a wsparcie dla Pythona 2 zakończy się w 2020 r., więc w tym artykule założymy, że zainstalujesz Python 3.

947361 2
947361 2

Krok 2. Otwórz nowy plik w edytorze tekstu lub IDE Pythona

Nadaj mu opisową nazwę, która kończy się na.py.

947361 3
947361 3

Krok 3. Zaimportuj losową bibliotekę

Będziesz go potrzebować do losowego ułożenia możliwych odpowiedzi.

947361 4
947361 4

Krok 4. Zdefiniuj klasę „QA”

Kontrola jakości składa się z pytania i poprawnej odpowiedzi oraz listy możliwych innych odpowiedzi. Funkcja _init_() będzie wywoływana za każdym razem, gdy utworzysz nowy obiekt QA za pomocą funkcji QA(), a jej argumenty zostaną przekazane do odpowiedniego atrybutu. Rodzaj:

klasa QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = pytanie self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Krok 5. Utwórz listę QA

Pomyśl o kilku pytaniach z jedną dobrą i kilkoma błędnymi odpowiedziami. Utwórz obiekty kontroli jakości z każdego z nich i umieść je na liście. Ponieważ lista będzie dość długa, możesz podzielić ją na wiele wierszy, aby uzyskać lepszą czytelność. Wszystko to odbywa się za pomocą następującego kodu (Twój tekst może być inny):

qaList = [QA("Gdzie jest Mińsk?", "na Białorusi", ["w Rosji", "takie miasto nie istnieje"]), QA("Jaka jest stolica Australii?", "Canberra", ["Sydney", "Nowy Jork", "Australia nie istnieje"]), QA("Którego z poniższych nie ma na Ziemi?", "Morze spokoju", ["Morze Śródziemne", "Morze Bałtyckie" ", "Morze Północne"]), QA("Które z poniższych nie jest kontynentem?", "Arctica", ["Antarctica", "Ameryka"]), QA("Które z poniższych nie jest krajem afrykańskim ?”, „Malezja”, [„Madagaskar”, „Dżibuti”, „RPA”, „Zimbabwe”])]

947361 6
947361 6

Krok 6. Dodaj zmienną, która zlicza ile odpowiedzi było poprawnych

Ustaw go na zero na początku. Dodaj linię:

liczba_kor = 0

947361 7
947361 7

Krok 7. Potasuj listę kontroli jakości

Dzięki temu Twoje pytania będą pojawiać się w losowej kolejności. Odbywa się to za pomocą następującej funkcji:

random.shuffle(qaList)

947361 8
947361 8

Krok 8. Zrób pętlę

Program powinien przejrzeć każdy element listy i coś z nim zrobić. Utwórz taką pętlę za pomocą tego wyrażenia:

dla qaItem w qaList:

947361 9
947361 9

Krok 9. Wypisz każde pytanie

Po wyrażeniu pętli napisz linię:

print(qaItem.pytanie)

947361 10
947361 10

Krok 10. Wypisz wszystkie możliwe odpowiedzi

Powinny pojawiać się w losowej kolejności, aby poprawna odpowiedź nie zawsze znajdowała się na tym samym miejscu. Powinny być również poprzedzone numerem, aby użytkownik nie musiał ponownie wpisywać całej odpowiedzi. Poniższy kod robi to:

print("Możliwe odpowiedzi to:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # nawiasy kwadratowe zamieniają poprawną odpowiedź na listę do połączenia z inną listą random.shuffle(possible) count = 0 # indeksy listy zaczynają się od 0 w Pythonie while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1

947361 11
947361 11

Krok 11. Weź wkład użytkownika

Najpierw powiedz użytkownikowi, że musi wprowadzić numer swojego. Następnie sprawdź, czy to, co wpisał użytkownik, jest rzeczywiście liczbą odpowiadającą odpowiedzi. Jeśli tak nie jest, powiadom użytkownika ponownie. Użyj tego kodu (poza pętlą while, którą utworzyłeś dla wyjścia):

print("Podaj numer swojej odpowiedzi:") userAnsw = input() while not userAnsw.isdigit(): print("To nie był numer. Podaj numer swojej odpowiedzi:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 i userAnsw <= len(possible)): print("Ten numer nie odpowiada żadnej odpowiedzi. Wprowadź numer swojej odpowiedzi:") userAnsw = input()

947361 12
947361 12

Krok 12. Sprawdź, czy odpowiedź użytkownika była poprawna

Aby to zrobić, pobierz tekst odpowiedzi, dla której użytkownik wprowadził liczbę i porównaj go z tekstem prawidłowej odpowiedzi. Jeśli są takie same, to odpowiedź użytkownika była prawidłowa, a zmienna corrCount powinna zostać zwiększona o 1. W przeciwnym razie jest błędna i użytkownik powinien otrzymać poprawną odpowiedź. Na koniec wydrukuj pustą linię, aby dodać trochę miejsca na następne pytanie. Wpisz następujący kod:

if possible[userAnsw-1] == qaItem.corrAnsw: print("Twoja odpowiedź była poprawna.") corrCount += 1 else: print("Twoja odpowiedź była błędna.") print("Poprawna odpowiedź to: " + qaItem. corrAnsw) print("")

947361 13
947361 13

Krok 13. Podaj wniosek

W końcu użytkownik prawdopodobnie chce wiedzieć, ile pytań udało mu się poprawnie. Powiedz im, dodając następujące wyrażenie poza pętlą for:

print("Odpowiedziałeś poprawnie na " + str(corrCount) + " z " + str(len(qaList)) + " na pytania.")

947361 14
947361 14

Krok 14. Sprawdź swój kod

Zwróć szczególną uwagę na wcięcie. Twój kompletny kod powinien teraz wyglądać tak:

importuj losową klasę QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = pytanie self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA("Gdzie jest Mińsk?", "na Białorusi", ["w Rosji", "takiego miasta nie ma"]), QA("Jaka jest stolica Australii?", "Canberra", ["Sydney", "Nowy Jork", "Australia nie istnieje"]), QA("Które z poniższych nie znajduje się na Ziemi?", "Morze Spokoju", ["Morze Śródziemne", "Morze Bałtyckie", "Morze Północne"]), QA("Które z poniższych nie są kontynentem?”, „Arctica”, [„Antarktyka”, „Ameryka”]), QA („Który z poniższych krajów nie jest krajem afrykańskim?”, „Malezja”, [„Madagaskar”, „Dżibuti”, „Południe Africa", "Zimbabwe"])] corrCount = 0 random.shuffle(qaList) for qaItem w qaList: print(qaItem.question) print("Możliwe odpowiedzi to:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # nawiasy kwadratowe zamieniają poprawną odpowiedź w listę do połączenia z inną listą random.shuffle(possible) count = 0 # indeksy listy zaczynają się od 0 i n python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1 print("Podaj numer swojej odpowiedzi:") userAnsw = input() while not userAnsw.isdigit(): print("To nie była liczba. Podaj numer swojej odpowiedzi:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 i userAnsw <= len(possible)): print("Ten numer nie odpowiada żadnej odpowiedzi. Wprowadź numer swojej odpowiedzi:") userAnsw = input() jeśli to możliwe[userAnsw-1] == qaItem.corrAnsw: print("Twoja odpowiedź była poprawna.") corrCount += 1 else: print("Twoja odpowiedź była poprawna. źle.") print("Poprawna odpowiedź to: " + qaItem.corrAnsw) print("") print("Odpowiedziałeś poprawnie " + str(corrCount) + " z " + str(len(qaList)) + " na pytania. ")

947361 15
947361 15

Krok 15. Uruchom kod

Jeśli używasz IDE, kliknij symbol „Uruchom” lub element menu. Jeśli używasz edytora tekstu, zapisz swój program, zamknij edytor i otwórz program w Pythonie.

Porady

  • Uważaj na prawidłowe wcięcie. Kod wewnątrz definicji funkcji lub klasy jest wcięty, podobnie jak kod wewnątrz pętli. Program w Pythonie z nieprawidłowym wcięciem nie będzie działał.
  • Naciśnij Ctrl+C, jeśli chcesz przerwać grę i jej nie kończyć.
  • Jeśli zastąpisz każde wywołanie input() wywołaniem raw_input(), ten program będzie działał w Pythonie 2, ale przestanie działać w Pythonie 3.

Zalecana: