Galite praktiškai išmokti programuoti kurdami trumpus komandinės eilutės projektus Python. Vienas iš projektų, kuriuos galite atlikti, yra interaktyvi viktorina, kurioje galite užduoti vartotojui įvairius klausimus.

Klausimai, kuriuos galite užduoti, apima kelis atsakymų variantus arba klausimus, į kuriuos reikia atsakyti raštu. Taip pat galite užduoti klausimus, kurie turi alternatyvius teisingus atsakymus. Jūs netgi galite priversti programą duoti patarimų vartotojui.

Kaip sukurti Python scenarijų ir pridėti pirmąjį viktorinos klausimą

Sukurkite Python failą ir pridėkite pirmąjį klausimą. Jei anksčiau nesate kodavęs Python, yra daug kursų ir išteklių, kur galite išmokti Python nemokamai.

  1. Sukurkite naują tekstinį failą pavadinimu „InteractiveQuiz.py“.
  2. Atidarykite failą naudodami bet kurį teksto rengyklę ir pridėkite pirmąjį spausdintą teiginį, kad pasveikintumėte vartotoją į viktoriną.
    spausdinti(„Sveiki, sveiki atvykę į geografijos viktoriną. Atsakyti į klausimus kaip jie pateikiami.")
  3. Užduokite pirmąjį klausimą vartotojui. Naudokite funkciją input(), kad lauktumėte vartotojo atsakymo ir išsaugotumėte jo įvestį kintamajame „userInput“.
    spausdinti ("Klausimas 1. Kuris miestas yra Australijos sostinė?")
    userInput = input()
  4. Pridėkite sąlygą, kad patikrintumėte, ar naudotojo įvestis atitinka teisingą atsakymą. Jei vartotojas atsakė teisingai, parodykite jam pranešimą „teisinga“. Jei ne, parodykite teisingą atsakymą.
    if (userInput.lower() == "Kanbera".žemesnis()):
    print ("Tai yra teisingai!")
    Kitas:
    print("Atsiprašome, teisingas atsakymas yra Kanbera.")
  5. Norėdami atlikti testą ir patikrinti, ar jūsų klausimas veikia, atidarykite komandų eilutę ir eikite į savo Python failo vietą. Pavyzdžiui, jei failą išsaugojote kataloge pavadinimu Desktop, komanda būtų tokia:
    cd Darbalaukis
  6. Vykdykite python komandą, kad atliktumėte viktoriną.
    pitonasInteraktyvi viktorina.py
  7. Pateikite atsakymą į viktorinos klausimą.

Kaip į viktoriną įtraukti kelis klausimus

Galite pridėti keletą klausimų, pakartodami aukščiau pateiktą kodą. Tačiau dėl to jūsų kodas bus be reikalo ilgas ir jį bus sunkiau atnaujinti. Norėdami gauti geresnį požiūrį, informaciją apie klausimą saugokite objekte.

  1. Python failo viršuje pridėkite klasę, kad saugotumėte informaciją apie viktorinos klausimą. Jei to nepadarėte anksčiau, galite sužinoti daugiau, kaip tai padaryti sukurti klasę Python.
    klasėKlausimas:
    def__init__(aš, klausimasTekstas, atsakymas):
    savarankiškai.questionText = questionText
    savarankiškai.atsakymas = atsakymas

    def__repr__(savarankiškai):
    grąžinti '{'+ self.questionText +', '+ pats.atsakyti +'}'

  2. Po klase pridėkite klausimų objektų masyvą. Šiuose objektuose bus saugomas klausimo tekstas, kurį vartotojui rodo viktorina, kartu su teisingu atsakymu.
    quizQuestions = [
    Klausimas ("Klausimas 1. Koks miestas yra Australijos sostinė", "Kanbera"),
    Klausimas ("2 klausimas. Koks miestas yra Japonijos sostinė", "Tokijas"),
    Klausimas ("3 klausimas. Kiek salų turi Filipinai", "7100")
    ]
  3. Pakeiskite esamą if sakinį ir vartotojo įvesties kodą. Vietoj to naudokite for kilpą, kad kartotumėte quizQuestions masyvą. Pateikite klausimą kiekvienam klausimui ir palyginkite naudotojo pateiktą informaciją su teisingu atsakymu.
    už klausimus viktorinojeKlausimai:
    spausdinti (f"{question.questionText}?")
    userInput = input()
    if (userInput.lower() == question.answer.lower()):
    print ("Tai yra teisingai!")
    Kitas:
    print (f"Atsiprašome, teisingas atsakymas yra {klausimo atsakymas}.")

Kaip pridėti kelių pasirinkimų klausimus

Klausimų klasę galite išplėsti, kad galėtumėte pateikti klausimus su keliais atsakymų variantais.

  1. Pakeiskite Klausimų klasę failo viršuje. Pridėkite pasirenkamą atributą, vadinamą multipleChoiceOptions.
    klasėKlausimas:
    def__init__(savęs, klausimo tekstas, atsakymas, multipleChoiceOptions=nėra):
    savarankiškai.questionText = questionText
    savarankiškai.atsakymas = atsakymas
    savarankiškai.multipleChoiceOptions = multipleChoiceOptions

    def__repr__(savarankiškai):
    grąžinti '{'+ self.questionText +', '+ pats.atsakyti +', '+ str (self.multipleChoiceOptions) +'}'

  2. Pridėkite dar vieną klausimą į quizQuestions masyvą. Išsaugokite keletą klausimo variantų su kelių pasirinkimų variantais.
    quizQuestions = [
    Klausimas ("Klausimas 1. Koks miestas yra Australijos sostinė", "Kanbera"),
    Klausimas ("2 klausimas. Koks miestas yra Japonijos sostinė", "Tokijas"),
    Klausimas ("3 klausimas. Kiek salų turi Filipinai", "7100"),
    Klausimas ("4 klausimas. Kuri šalis užima daugiausiai žemės", "b", ["a) Jungtinės Valstijos", "b) Rusija", "c) Australija", "d) Antarktida"]),
    ]
  3. Pakeiskite for ciklo dalį, kurioje vartotojui rodomas klausimas. Jei yra klausimo kelių pasirinkimų parinktys, pateikite jas po klausimo ir prieš gaudami vartotojo įvestį.
    už klausimus viktorinojeKlausimai:
    jeigu (question.multipleChoiceOptions != Nė vienas):
    spausdinti (f"{question.questionText}?")
    dėlvariantasinklausimas.multipleChoiceOptions:
    spausdinti(pasirinktis)
    userInput = input()
    Kitas:
    spausdinti (f"{question.questionText}?")
    userInput = input()

    if (userInput.lower() == question.answer.lower()):
    print ("Tai yra teisingai!")
    Kitas:
    print (f"Atsiprašome, teisingas atsakymas yra {klausimo atsakymas}.")

Kaip pridėti klausimą, turintį alternatyvius teisingus atsakymus

Kartais kyla klausimų, į kuriuos vartotojas gali įvesti dalį atsakymo, tačiau techniškai jis vis tiek yra teisingas.

Pavyzdžiui, vienas iš jūsų viktorinos klausimų galėtų būti „Kokiame pusrutulyje yra Japonija?“. Tokiu atveju vartotojas gali įvesti „Šiaurės“, „Šiaurės“ arba „Šiaurės pusrutulis“ ir vis tiek būti teisingas.

  1. Pridėkite kitą neprivalomą atributą į Klausimų klasę. Šiame atribute bus visi galimi alternatyvūs teisingi atsakymai, kuriuos vartotojas gali įvesti.
    klasėKlausimas:
    def__init__(self, questionText, answer, multipleChoiceOptions=Nėra, alternateAnswers=Nėra):
    savarankiškai.questionText = questionText
    savarankiškai.atsakymas = atsakymas
    savarankiškai.multipleChoiceOptions = multipleChoiceOptions
    savarankiškai.alternateAnswers = alternateAnswers

    def__repr__(savarankiškai):
    grąžinti '{'+ self.questionText +', '+ pats.atsakyti +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Pridėkite dar vieną klausimą į quizQuestions masyvą. Kaip teisingą atsakymą pridėkite „Šiaurės pusrutulis“. Pridėkite „šiaurė“ ir „šiaurė“ kaip alternatyvius teisingus atsakymus.
    quizQuestions = [
    #...
    Klausimas ("5 klausimas. Kokiame pusrutulyje yra Japonija", "Šiaurės pusrutulis", [], ["Šiaurė", "šiaurinis"]),
    ]
  3. Prie if teiginio pridėkite kitą sąlygą, kuri patikrina, ar vartotojas įvedė alternatyvų teisingą atsakymą.
    if (userInput.lower() == question.answer.lower()):
    print ("Tai yra teisingai!")
    elifas (klausimas.alternateAnswers != Nė vienasir userInput.lower() in klausimas.alternateAnswers):
    print ("Tai yra teisingai!")
    Kitas:
    print (f"Atsiprašome, teisingas atsakymas yra {klausimo atsakymas}.")

Kaip duoti patarimus vartotojui

Galite modifikuoti scenarijų taip, kad vartotojas negalėtų pereiti į kitą etapą, kol neatsakys dabartinio klausimo. Tokiu atveju pridėkite kintamąjį, kad suskaičiuotumėte, kiek kartų vartotojas įvedė neteisingą atsakymą. Po trijų neteisingų spėjimų vartotojui galite duoti užuominą.

  1. Modifikuokite klasę Klausimas, kad galėtumėte naudoti naują užuominos atributą.
    klasėKlausimas:
    def__init__(self, questionText, answer, hint=nėra, multipleChoiceOptions=nėra, alternateAnswers=nėra):
    savarankiškai.questionText = questionText
    savarankiškai.atsakymas = atsakymas
    savarankiškai.užuomina = užuomina
    savarankiškai.multipleChoiceOptions = multipleChoiceOptions
    savarankiškai.alternateAnswers = alternateAnswers

    def__repr__(savarankiškai):
    grąžinti '{'+ self.questionText +', '+ pats.atsakyti +', '+ savęs.užuomina +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Pridėkite užuominų į visus viktorinos klausimus.
    quizQuestions = [
    Klausimas ("Klausimas 1. Koks miestas yra Australijos sostinė", "Kanbera", "Prasideda C"),
    Klausimas ("2 klausimas. Koks miestas yra Japonijos sostinė", "Tokijas", "Prasideda T"),
    Klausimas ("3 klausimas. Kiek salų turi Filipinai", "7100", "Skaičius nuo 7000 iki 8000"),
    Klausimas ("4 klausimas. Kuri šalis užima daugiausiai žemės", "b", "Šalis apima du žemynus", ["a) Jungtinės Valstijos", "b) Rusija", "c) Australija", "d) Antarktida"]),
    Klausimas ("5 klausimas. Kokiame pusrutulyje yra Japonija", "Šiaurės pusrutulis", "Viršutinė Žemės pusė", [], ["Šiaurė", "šiaurinis"]),
    ]
  3. Pašalinkite if teiginius, kurie patikrina, ar vartotojas teisingai atsakė į klausimą. Pakeiskite juos trumpąja kilpa. Nors ciklas tęsis tol, kol vartotojas gaus teisingą atsakymą. Nors ciklo viduje pridėkite skaičių, kuris parodys užuominą, kai vartotojas tris kartus gaus neteisingą atsakymą.
    už klausimus viktorinojeKlausimai:
    jeigu (question.multipleChoiceOptions != Nė vienas):
    spausdinti (f"{question.questionText}?")
    dėlvariantasinklausimas.multipleChoiceOptions:
    spausdinti(pasirinktis)
    userInput = input()
    Kitas:
    spausdinti (f"{question.questionText}?")
    userInput = input()
    skaičius = 0
    kol (userInput.lower() != question.answer.lower()):
    jeigu (klausimas.alternateAnswers != Nė vienasir userInput.lower() in klausimas.alternateAnswers):
    pertrauka;
    skaiciuoti = skaiciuoti + 1
    jei (skaičiuoti >= 3):
    spausdinti (f"Užuomina: {question.hint}.")
    userInput = input()
    Kitas:
    print ("Tai yrane teisinga, bandyti dar kartą.")
    userInput = input()

    print ("Tai yra teisingai!")

  4. Pakartokite testą komandų eilutėje naudodami python komandą.
    pitonasInteraktyvi viktorina.py
  5. Atsakykite į viktorinos klausimus.

Mažų programų kūrimas naudojant Python

Vienas iš projektų, kuriuos galite atlikti mokydamiesi koduoti Python, yra interaktyvi viktorina. Viktorinoje vartotojui galite pateikti įvairių tipų klausimus.

Informaciją apie viktorinos klausimus galite saugoti objekte, kad nekartotumėte kodo kiekvienam klausimui.

Norint pagerinti savo Python įgūdžius, naudinga atlikti įvairius pratimus ir pavyzdžius. Galite pažvelgti į kitus Python pavyzdžius, kurie gali padėti jums mokytis.