Jeśli chcesz nauczyć się Pythona, dobrze jest zacząć od prostych gier tekstowych. W tym artykule dowiesz się, jak zrobić quiz.
Kroki
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.
Krok 2. Otwórz nowy plik w edytorze tekstu lub IDE Pythona
Nadaj mu opisową nazwę, która kończy się na.py.
Krok 3. Zaimportuj losową bibliotekę
Będziesz go potrzebować do losowego ułożenia możliwych odpowiedzi.
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
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”])]
Krok 6. Dodaj zmienną, która zlicza ile odpowiedzi było poprawnych
Ustaw go na zero na początku. Dodaj linię:
liczba_kor = 0
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)
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:
Krok 9. Wypisz każde pytanie
Po wyrażeniu pętli napisz linię:
print(qaItem.pytanie)
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
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()
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("")
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.")
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. ")
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.