Učenje programiranja se lahko vadite z izdelavo kratkih projektov ukazne vrstice v Pythonu. Eden od projektov, ki jih lahko naredite, je interaktivni kviz, kjer lahko uporabniku postavljate različna vprašanja.

Vprašanja, ki jih lahko postavite, vključujejo vprašanja z več možnimi odgovori ali vprašanja, ki zahtevajo pisne odgovore. Postavljate lahko tudi vprašanja, ki imajo nadomestne pravilne odgovore. Lahko celo naredite, da vaš program daje namige uporabniku.

Kako ustvariti skript Python in dodati svoje prvo vprašanje kviza

Ustvarite datoteko Python in dodajte svoje prvo vprašanje. Če še niste kodirali v Pythonu, obstaja veliko tečajev in virov, kjer lahko naučite se Pythona brezplačno.

  1. Ustvarite novo besedilno datoteko z imenom "InteractiveQuiz.py".
  2. Odprite datoteko s katerim koli urejevalnikom besedila in dodajte svojo prvo izjavo za tiskanje, da uporabnika pozdravite v kvizu.
    tiskanje("Pozdravljeni, dobrodošli v geografskem kvizu. Odgovori na vprašanja kot so predstavljeni.")
  3. Zastavite prvo vprašanje uporabniku. Uporabite funkcijo input(), da počakate na odziv uporabnika in shranite njihov vnos v spremenljivko "userInput".
    instagram viewer
    natisni("Vprašanje 1. Katero mesto je glavno mesto Avstralije?")
    userInput = input()
  4. Dodajte pogoj, da preverite, ali se uporabnikov vnos ujema s pravilnim odgovorom. Če je uporabnik odgovoril pravilno, mu prikažite "pravilno" sporočilo. Če ne, prikaži pravilen odgovor.
    if (userInput.lower() == "Canberra".spodnji()):
    print("To je pravilno!")
    drugače:
    print("Oprostite, pravilen odgovor je Canberra.")
  5. Če želite zagnati kviz in preveriti, ali vaše vprašanje deluje, odprite ukazno vrstico in se pomaknite do lokacije vaše datoteke Python. Na primer, če ste datoteko shranili v imenik z imenom Desktop, bi bil ukaz:
    cd Namizje
  6. Zaženite ukaz python, da izvedete kviz.
    pythonInteraktivni kviz.py
  7. Podajte odgovor na vprašanje kviza.

Kako v kviz dodati več vprašanj

S ponovitvijo zgornje kode lahko dodate več vprašanj. Vendar pa bo zaradi tega vaša koda po nepotrebnem dolga in jo bo težje posodobiti. Za boljši pristop namesto tega shranite informacije o vprašanju v objekt.

  1. Na vrh datoteke Python dodajte razred za shranjevanje informacij o vprašanju kviza. Če tega še niste storili, lahko izveste več o tem, kako ustvarite razred v Pythonu.
    razredvprašanje:
    def__v__(jaz, besedilo vprašanja, odgovor):
    sebe.questionText = questionText
    sebe.odgovor = odgovor

    def__repr__(sebe):
    vrnitev '{'+ self.questionText +', '+ samoodgovor +'}'

  2. Pod razred dodajte niz predmetov vprašanj. Ti objekti bodo shranili besedilo vprašanja, ki ga kviz prikaže uporabniku, skupaj s pravilnim odgovorom.
    kvizVprašanja = [
    vprašanje("Vprašanje 1. Katero mesto je glavno mesto Avstralije", "Canberra"),
    vprašanje("2. vprašanje Katero mesto je glavno mesto Japonske", "Tokio"),
    vprašanje("3. vprašanje Koliko otokov imajo Filipini", "7100")
    ]
  3. Zamenjajte obstoječi stavek if in kodo uporabniškega vnosa. Namesto tega uporabite zanko for za ponavljanje matrike quizQuestions. Za vsako vprašanje prikažite vprašanje in primerjajte uporabnikov vnos s pravilnim odgovorom.
    za vprašanje v kvizuVprašanja:
    tisk (f"{question.questionText}?")
    userInput = input()
    if (userInput.lower() == question.answer.lower()):
    print("To je pravilno!")
    drugače:
    natisni (f"Oprostite, pravilen odgovor je {vprašanje odgovor}.")

Kako dodati vprašanja z več možnimi odgovori

Razred vprašanj lahko razširite tako, da vključite vprašanja z več možnimi odgovori.

  1. Spremenite razred vprašanja na vrhu datoteke. Dodajte izbirni atribut, imenovan multipleChoiceOptions.
    razredvprašanje:
    def__v__(self, questionText, answer, multipleChoiceOptions=Brez):
    sebe.questionText = questionText
    sebe.odgovor = odgovor
    sebe.multipleChoiceOptions = multipleChoiceOptions

    def__repr__(sebe):
    vrnitev '{'+ self.questionText +', '+ samoodgovor +', '+ str (self.multipleChoiceOptions) +'}'

  2. Dodajte drugo vprašanje v polje quizQuestions. Shranite nekaj izbirnih možnosti za vprašanje.
    kvizVprašanja = [
    vprašanje("Vprašanje 1. Katero mesto je glavno mesto Avstralije", "Canberra"),
    vprašanje("2. vprašanje Katero mesto je glavno mesto Japonske", "Tokio"),
    vprašanje("3. vprašanje Koliko otokov imajo Filipini", "7100"),
    vprašanje("4. vprašanje Katera država zasede največ kopenske mase", "b", ["(a) Združene države Amerike", "(b) Rusija", "(c) Avstralija", "(d) Antarktika"]),
    ]
  3. Spremenite del zanke for, ki uporabniku prikaže vprašanje. Če za vprašanje obstajajo možnosti več izbir, jih prikažite za vprašanjem in preden pridobite vnos uporabnika.
    za vprašanje v kvizuVprašanja:
    če (question.multipleChoiceOptions != Noben):
    tisk (f"{question.questionText}?")
    zamožnostvvprašanje.multipleChoiceOptions:
    tiskanje(možnost)
    userInput = input()
    drugače:
    tisk (f"{question.questionText}?")
    userInput = input()

    if (userInput.lower() == question.answer.lower()):
    print("To je pravilno!")
    drugače:
    natisni (f"Oprostite, pravilen odgovor je {vprašanje odgovor}.")

Kako dodati vprašanje, ki ima nadomestne pravilne odgovore

Včasih so vprašanja, kjer lahko uporabnik vnese del odgovora, vendar je tehnično še vedno pravilen.

Na primer, eno od vprašanj v vašem kvizu bi lahko bilo "Na kateri polobli se nahaja Japonska?". V tem primeru lahko uporabnik vnese "Sever", "Severna" ali "Severna polobla" in je še vedno pravilen.

  1. Dodajte še en izbirni atribut v razred vprašanja. Ta atribut bo vseboval morebitne nadomestne pravilne odgovore, ki jih lahko uporabnik vnese.
    razredvprašanje:
    def__v__(self, questionText, answer, multipleChoiceOptions=Brez, alternateAnswers=Brez):
    sebe.questionText = questionText
    sebe.odgovor = odgovor
    sebe.multipleChoiceOptions = multipleChoiceOptions
    sebe.alternateAnswers = nadomestniOdgovori

    def__repr__(sebe):
    vrnitev '{'+ self.questionText +', '+ samoodgovor +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Dodajte drugo vprašanje v polje quizQuestions. Kot pravilen odgovor dodajte "severna polobla". Dodajte "sever" in "sever" kot nadomestna pravilna odgovora.
    kvizVprašanja = [
    #...
    vprašanje("5. vprašanje Na kateri polobli se nahaja Japonska", "Severna polobla", [], ["sever", "severni"]),
    ]
  3. Stavku if dodajte še en pogoj, ki preveri, ali je uporabnik vnesel drug pravilen odgovor.
    if (userInput.lower() == question.answer.lower()):
    print("To je pravilno!")
    elif (question.alternateAnswers != Nobenin userInput.lower() v question.alternateAnswers):
    print("To je pravilno!")
    drugače:
    natisni (f"Oprostite, pravilen odgovor je {vprašanje odgovor}.")

Kako dati uporabniku namige

Skript lahko spremenite tako, da uporabnik ne more napredovati na naslednjo stopnjo, dokler ne dobi pravilnega trenutnega vprašanja. V tem primeru dodajte spremenljivko za štetje, kolikokrat je uporabnik vnesel napačen odgovor. Po treh napačnih ugibanjih lahko uporabniku podate namig.

  1. Spremenite razred Vprašanje za uporabo novega atributa namig.
    razredvprašanje:
    def__v__(self, questionText, answer, hint=Brez, multipleChoiceOptions=Brez, alternateAnswers=Brez):
    sebe.questionText = questionText
    sebe.odgovor = odgovor
    sebe.hint = namig
    sebe.multipleChoiceOptions = multipleChoiceOptions
    sebe.alternateAnswers = nadomestniOdgovori

    def__repr__(sebe):
    vrnitev '{'+ self.questionText +', '+ samoodgovor +', '+ self.hint +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Vsem vprašanjem v kvizu dodajte namige.
    kvizVprašanja = [
    vprašanje("Vprašanje 1. Katero mesto je glavno mesto Avstralije", "Canberra", "Začne se s C"),
    vprašanje("2. vprašanje Katero mesto je glavno mesto Japonske", "Tokio", "Začne se s T"),
    vprašanje("3. vprašanje Koliko otokov imajo Filipini", "7100", "Število med 7000 in 8000"),
    vprašanje("4. vprašanje Katera država zasede največ kopenske mase", "b", "Država se razprostira na dveh celinah", ["(a) Združene države Amerike", "(b) Rusija", "(c) Avstralija", "(d) Antarktika"]),
    vprašanje("5. vprašanje Na kateri polobli se nahaja Japonska", "Severna polobla", "Zgornja polovica Zemlje", [], ["sever", "severni"]),
    ]
  3. Odstranite stavke if, ki preverjajo, ali je uporabnik pravilno odgovoril na vprašanje. Zamenjajte jih z zanko while. Zanka while se bo neprekinjeno vrtela, dokler uporabnik ne dobi pravilnega odgovora. Znotraj zanke while dodajte štetje, ki bo prikazalo namig, ko bo uporabnik trikrat napačno odgovoril.
    za vprašanje v kvizuVprašanja:
    če (question.multipleChoiceOptions != Noben):
    tisk (f"{question.questionText}?")
    zamožnostvvprašanje.multipleChoiceOptions:
    tiskanje(možnost)
    userInput = input()
    drugače:
    tisk (f"{question.questionText}?")
    userInput = input()
    štetje = 0
    medtem (userInput.lower() != question.answer.lower()):
    če (question.alternateAnswers != Nobenin userInput.lower() v question.alternateAnswers):
    odmor;
    štetje = štetje + 1
    če (štej >= 3):
    tisk (f"Namig: {question.hint}.")
    userInput = input()
    drugače:
    print("To jene pravilno, poskusi ponovno.")
    userInput = input()

    print("To je pravilno!")

  4. Znova zaženite kviz v ukazni vrstici z ukazom python.
    pythonInteraktivni kviz.py
  5. Odgovorite na vprašanja kviza.

Ustvarjanje majhnih aplikacij z uporabo Pythona

Eden od projektov, ki jih lahko naredite med učenjem kodiranja v Pythonu, je interaktivni kviz. V kvizu lahko uporabniku predstavite različne vrste vprašanj.

Podatke o vprašanjih kviza lahko shranite v objekt, da preprečite ponavljanje kode za vsako vprašanje.

Če želite izboljšati svoje znanje Pythona, je dobro, da vadite različne vaje in primere. Lahko si ogledate druge primere Pythona, ki vam lahko pomagajo pri učenju.