Můžete se naučit, jak programovat, vytvářením krátkých projektů příkazového řádku v Pythonu. Jedním z projektů, které můžete vytvořit, je interaktivní kvíz, kde můžete uživateli klást různé druhy otázek.
Otázky, které můžete položit, zahrnují otázky s možností výběru z více odpovědí nebo otázky, které vyžadují písemné odpovědi. Můžete také klást otázky, které mají alternativní správné odpovědi. Můžete dokonce přimět svůj program, aby uživateli napovídal.
Jak vytvořit skript Python a přidat svou první kvízovou otázku
Vytvořte soubor Python a přidejte svou první otázku. Pokud jste ještě nekódovali v Pythonu, existuje mnoho kurzů a zdrojů, kde můžete naučit se Python zdarma.
- Vytvořte nový textový soubor s názvem „InteractiveQuiz.py“.
- Otevřete soubor pomocí libovolného textového editoru a přidejte svůj první tiskový výpis, abyste přivítali uživatele v kvízu.
tisk(„Dobrý den, vítejte v geografickém kvízu. Odpověz na otázky tak jako jsou prezentovány."
- Položte uživateli první otázku. Pomocí funkce input() počkejte na odpověď uživatele a uložte jejich vstup do proměnné "userInput".
tisk("Otázka 1. Jaké město je hlavním městem Austrálie?")
userInput = input() - Přidejte podmínku pro kontrolu, zda vstup uživatele odpovídá správné odpovědi. Pokud uživatel odpověděl správně, zobrazte mu „správnou“ zprávu. Pokud ne, zobrazte správnou odpověď.
if (userInput.lower() == "Canberra".dolní()):
tisk ("To je opravit!")
jiný:
print("Omlouvám se, správná odpověď je Canberra.") - Chcete-li spustit svůj kvíz a otestovat, že vaše otázka funguje, otevřete příkazový řádek a přejděte do umístění vašeho souboru Python. Pokud jste například uložili soubor do adresáře s názvem Desktop, příkaz by byl:
CD plocha počítače
- Spuštěním příkazu python spusťte kvíz.
krajtaInteraktivní kvíz.py
- Uveďte odpověď na kvízovou otázku.
Jak přidat do kvízu více otázek
Opakováním výše uvedeného kódu můžete přidat několik otázek. Váš kód však bude zbytečně dlouhý a bude obtížnější jej aktualizovat. Pro lepší přístup uložte informace o otázce místo toho do objektu.
- V horní části souboru Python přidejte třídu pro uložení informací o kvízové otázce. Pokud jste to ještě neudělali, můžete se dozvědět více o tom, jak na to vytvořit třídu v Pythonu.
třídaOtázka:
def__init__(sebe, otázkaText, odpověď):
já.questionText = text otázky
já.odpověď = odpověďdef__repr__(já):
vrátit se '{'+ sebe.dotazText +', '+ vlastní odpověď +'}' - Pod třídu přidejte pole objektů otázek. Tyto objekty budou uchovávat text otázky, který kvíz zobrazí uživateli, spolu se správnou odpovědí.
kvízové otázky = [
Otázka("Otázka 1. Jaké město je hlavním městem Austrálie", "Canberra"),
Otázka("Otázka 2. Jaké město je hlavním městem Japonska", "Tokio"),
Otázka("Otázka 3. Kolik ostrovů mají Filipíny", "7100")
] - Nahraďte existující příkaz if a uživatelský vstupní kód. Místo toho použijte cyklus for k iteraci pole quizQuestions. U každé otázky zobrazte otázku a porovnejte vstup uživatele se správnou odpovědí.
pro otázku v kvízových otázkách:
tisknout (f"{question.questionText}?")
userInput = input()
if (userInput.lower() == question.answer.lower()):
tisk ("To je opravit!")
jiný:
tisknout (f"Omlouvám se, správná odpověď je {otázka odpověď}.")
Jak přidat vícenásobné otázky
Třídu otázek můžete rozšířit tak, aby obsahovala otázky s více možnostmi.
- Upravte třídu Otázka v horní části souboru. Přidejte volitelný atribut s názvem multipleChoiceOptions.
třídaOtázka:
def__init__(self, questionText, answer, multipleChoiceOptions=None):
já.questionText = text otázky
já.odpověď = odpověď
já.multipleChoiceOptions = multipleChoiceOptionsdef__repr__(já):
vrátit se '{'+ sebe.dotazText +', '+ vlastní odpověď +', '+ str (self.multipleChoiceOptions) +'}' - Přidejte další otázku do pole quizQuestions. Uložte si pro otázku několik možností s více možnostmi.
kvízové otázky = [
Otázka("Otázka 1. Jaké město je hlavním městem Austrálie", "Canberra"),
Otázka("Otázka 2. Jaké město je hlavním městem Japonska", "Tokio"),
Otázka("Otázka 3. Kolik ostrovů mají Filipíny", "7100"),
Otázka("Otázka 4. Která země zabírá nejvíce pevniny", "b", ["a) Spojené státy americké", "b) Rusko", "c) Austrálie", "d) Antarktida"]),
] - Upravte část cyklu for, která uživateli zobrazí otázku. Pokud pro otázku existují možnosti s více možnostmi, zobrazte je po otázce a před načtením vstupu uživatele.
pro otázku v kvízových otázkách:
-li (question.multipleChoiceOptions != Žádný):
tisknout (f"{question.questionText}?")
provolbavotázka.multipleChoiceOptions:
tisk(volba)
userInput = input()
jiný:
tisknout (f"{question.questionText}?")
userInput = input()if (userInput.lower() == question.answer.lower()):
tisk ("To je opravit!")
jiný:
tisknout (f"Omlouvám se, správná odpověď je {otázka odpověď}.")
Jak přidat otázku, která má alternativní správné odpovědi
Někdy se vyskytnou otázky, kde uživatel může napsat část odpovědi, ale technicky je to stále správné.
Jednou z otázek ve vašem kvízu může být například „Na jaké polokouli se nachází Japonsko?“. V tomto případě může uživatel zadat „severní“, „severní“ nebo „severní polokoule“ a přesto bude mít pravdu.
- Přidejte další volitelný atribut do třídy Question. Tento atribut bude obsahovat všechny možné alternativní správné odpovědi, které může uživatel zadat.
třídaOtázka:
def__init__(self, questionText, answer, multipleChoiceOptions=None, alternativeAnswers=None):
já.questionText = text otázky
já.odpověď = odpověď
já.multipleChoiceOptions = multipleChoiceOptions
já.alternateAnswers = alternativní odpovědidef__repr__(já):
vrátit se '{'+ sebe.dotazText +', '+ vlastní odpověď +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}' - Přidejte další otázku do pole quizQuestions. Přidejte „severní polokouli“ jako správnou odpověď. Přidejte „severní“ a „severní“ jako alternativní správné odpovědi.
kvízové otázky = [
#...
Otázka("Otázka 5. Na jaké polokouli se nachází Japonsko", "Severní polokoule", [], ["severní", "severní"]),
] - Přidejte do příkazu if další podmínku, která zkontroluje, zda uživatel zadal alternativní správnou odpověď.
if (userInput.lower() == question.answer.lower()):
tisk ("To je opravit!")
elif (question.alternateAnswers != Žádnýa userInput.lower() v question.alternateAnswers):
tisk ("To je opravit!")
jiný:
tisknout (f"Omlouvám se, správná odpověď je {otázka odpověď}.")
Jak dát uživateli rady
Skript můžete upravit tak, aby uživatel nemohl postoupit do další fáze, dokud nezíská správnou aktuální otázku. V tomto případě přidejte proměnnou, která bude počítat, kolikrát uživatel zadal špatnou odpověď. Po třech nesprávných uhodnutích můžete uživateli poradit.
- Upravte třídu Question tak, aby používala nový atribut nápovědy.
třídaOtázka:
def__init__(self, questionText, answer, hint=None, multipleChoiceOptions=None, alternativeAnswers=None):
já.questionText = text otázky
já.odpověď = odpověď
já.nápověda = nápověda
já.multipleChoiceOptions = multipleChoiceOptions
já.alternateAnswers = alternativní odpovědidef__repr__(já):
vrátit se '{'+ sebe.dotazText +', '+ vlastní odpověď +', '+ sebe.nápověda +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}' - Přidejte tipy ke všem otázkám v kvízu.
kvízové otázky = [
Otázka("Otázka 1. Jaké město je hlavním městem Austrálie", "Canberra", "Začíná na C"),
Otázka("Otázka 2. Jaké město je hlavním městem Japonska", "Tokio", "Začíná na T"),
Otázka("Otázka 3. Kolik ostrovů mají Filipíny", "7100", "Číslo mezi 7000 a 8000"),
Otázka("Otázka 4. Která země zabírá nejvíce pevniny", "b", "Země se rozkládá na dvou kontinentech", ["a) Spojené státy americké", "b) Rusko", "c) Austrálie", "d) Antarktida"]),
Otázka("Otázka 5. Na jaké polokouli se nachází Japonsko", "Severní polokoule", "Horní polovina Země", [], ["severní", "severní"]),
] - Odstraňte příkazy if, které kontrolují, zda uživatel odpověděl na otázku správně. Nahraďte je smyčkou while. Smyčka while se bude nepřetržitě opakovat, dokud uživatel nedostane správnou odpověď. Do smyčky while přidejte počet, který zobrazí nápovědu, jakmile uživatel třikrát špatně odpoví.
pro otázku v kvízových otázkách:
-li (question.multipleChoiceOptions != Žádný):
tisknout (f"{question.questionText}?")
provolbavotázka.multipleChoiceOptions:
tisk(volba)
userInput = input()
jiný:
tisknout (f"{question.questionText}?")
userInput = input()
počet = 0
zatímco (userInput.lower() != question.answer.lower()):
-li (question.alternateAnswers != Žádnýa userInput.lower() v question.alternateAnswers):
přestávka;
počítat = počítat + 1
pokud (počítat >= 3):
tisknout (f"Nápověda: {question.hint}.")
userInput = input()
jiný:
tisk ("To jene opravit, Snaž se znovu.")
userInput = input()tisk ("To je opravit!")
- Znovu spusťte svůj kvíz v příkazovém řádku pomocí příkazu python.
krajtaInteraktivní kvíz.py
- Odpovězte na otázky do kvízu.
Vytváření malých aplikací pomocí Pythonu
Jedním z projektů, které můžete udělat, když se naučíte kódovat v Pythonu, je interaktivní kvíz. V kvízu můžete uživateli prezentovat různé typy otázek.
Informace o kvízových otázkách můžete uložit do objektu, abyste zabránili opakování kódu pro každou otázku.
Chcete-li zlepšit své dovednosti v Pythonu, je dobré procvičovat různá cvičení a příklady. Můžete se podívat na další příklady Pythonu, které vám mohou pomoci s učením.