Saate harjutada programmeerimise õppimist, tehes Pythonis lühikesi käsureaprojekte. Üks projekt, mida saate teha, on interaktiivne viktoriin, kus saate esitada kasutajale erinevaid küsimusi.

Küsimused, mida saate esitada, hõlmavad valikvastustega küsimusi või küsimusi, mis nõuavad kirjalikke vastuseid. Võite esitada ka küsimusi, millel on alternatiivsed õiged vastused. Saate isegi panna oma programmi kasutajale vihjeid andma.

Kuidas luua Pythoni skripti ja lisada oma esimene viktoriiniküsimus

Looge Pythoni fail ja lisage oma esimene küsimus. Kui te pole varem Pythonis kodeerinud, on seal palju kursusi ja ressursse, kus saate õppida Pythonit tasuta.

  1. Looge uus tekstifail nimega "InteractiveQuiz.py".
  2. Avage fail mis tahes tekstiredaktoriga ja lisage oma esimene väljatrükk, et tervitada kasutajat viktoriini.
    printida("Tere, tere tulemast geograafiaviktoriinile. Vasta küsimustele nagu neid esitatakse.")
  3. Esitage esimene küsimus kasutajale. Kasutage funktsiooni input() kasutaja vastuse ootamiseks ja salvestage nende sisend muutujasse "userInput".
    print("Küsimus 1. Mis linn on Austraalia pealinn?")
    userInput = input()
  4. Lisage tingimus, et kontrollida, kas kasutaja sisestus vastab õigele vastusele. Kui kasutaja vastas õigesti, kuvage talle teade "õige". Kui ei, kuvage õige vastus.
    if (kasutajaInput.lower() == "Canberra".lower()):
    print ("See on õige!")
    muidu:
    print("Vabandust, õige vastus on Canberra.")
  5. Viktoriini käivitamiseks ja küsimuse toimimise kontrollimiseks avage käsurida ja navigeerige oma Pythoni faili asukohta. Näiteks kui salvestasite faili kataloogi nimega Desktop, oleks käsk järgmine:
    cd Töölaud
  6. Viktoriini täitmiseks käivitage käsk python.
    püütonInteraktiivne viktoriin.py
  7. Esitage vastus viktoriiniküsimusele.

Kuidas lisada viktoriinile mitu küsimust

Saate lisada mitu küsimust, korrates ülaltoodud koodi. See aga muudab teie koodi tarbetult pikaks ja seda on raskem värskendada. Parema lähenemise huvides salvestage küsimuse kohta teave selle asemel objekti.

  1. Lisage Pythoni faili ülaossa klass, et salvestada viktoriiniküsimuse kohta teavet. Kui te pole seda varem teinud, saate selle kohta lisateavet luua Pythonis klass.
    klassküsimus:
    def__selles__(ise, küsimusTekst, vastus):
    ise.questionText = questionText
    ise.vastus = vastus

    def__repr__(ise):
    tagasi '{'+ self.questionTekst +', '+ ise.vastus +'}'

  2. Lisage klassi alla küsimuste objektide massiiv. Need objektid salvestavad küsimuse teksti, mida viktoriin kasutajale kuvab, koos õige vastusega.
    quizQuestions = [
    küsimus("Küsimus 1. Mis linn on Austraalia pealinn", "Canberra"),
    küsimus("2. küsimus. Mis linn on Jaapani pealinn", "Tokyo"),
    küsimus("3. küsimus. Mitu saart on Filipiinidel", "7100")
    ]
  3. Asendage olemasolev if-lause ja kasutaja sisendkood. Selle asemel kasutage massiivi quizQuestions itereerimiseks for-tsüklit. Kuvage iga küsimuse puhul küsimus ja võrrelge kasutaja sisendit õige vastusega.
    viktoriini küsimusedKüsimused:
    print (f"{question.questionText}?")
    userInput = input()
    if (userInput.lower() == question.answer.lower()):
    print ("See on õige!")
    muidu:
    print (f"Vabandust, õige vastus on {küsimus Vastus}.")

Kuidas lisada valikvastustega küsimusi

Saate laiendada küsimuste klassi, et mahutada valikvastustega küsimusi.

  1. Muutke faili ülaosas klassi Küsimus. Lisage valikuline atribuut nimega multipleChoiceOptions.
    klassküsimus:
    def__selles__(ise, küsimusTekst, vastus, multipleChoiceOptions=Puudub):
    ise.questionText = questionText
    ise.vastus = vastus
    ise.multipleChoiceOptions = multipleChoiceOptions

    def__repr__(ise):
    tagasi '{'+ self.questionTekst +', '+ ise.vastus +', '+ str (self.multipleChoiceOptions) +'}'

  2. Lisage quizQuestions massiivi veel üks küsimus. Salvestage küsimuse jaoks mõned valikvastustega valikud.
    quizQuestions = [
    küsimus("Küsimus 1. Mis linn on Austraalia pealinn", "Canberra"),
    küsimus("2. küsimus. Mis linn on Jaapani pealinn", "Tokyo"),
    küsimus("3. küsimus. Mitu saart on Filipiinidel", "7100"),
    küsimus("4. küsimus. Milline riik võtab kõige rohkem maad", "b", ["a) Ameerika Ühendriigid", "b) Venemaa", "c) Austraalia", "d) Antarktika"]),
    ]
  3. Muutke for-tsükli osa, mis kuvab kasutajale küsimuse. Kui küsimuse jaoks on valikvastustega valikud, kuvage need pärast küsimust ja enne kasutaja sisendi toomist.
    viktoriini küsimusedKüsimused:
    kui (question.multipleChoiceOptions != Mitte ühtegi):
    print (f"{question.questionText}?")
    jaoksvaliksisseküsimus.multipleChoiceOptions:
    printida(valikuline)
    userInput = input()
    muidu:
    print (f"{question.questionText}?")
    userInput = input()

    if (userInput.lower() == question.answer.lower()):
    print ("See on õige!")
    muidu:
    print (f"Vabandust, õige vastus on {küsimus Vastus}.")

Kuidas lisada küsimust, millel on alternatiivsed õiged vastused

Mõnikord on küsimusi, kuhu kasutaja saab sisestada osa vastusest, kuid see on tehniliselt siiski õige.

Näiteks üks teie viktoriini küsimustest võiks olla "Millisel poolkeral asub Jaapan?". Sel juhul saab kasutaja sisestada "Põhja", "Põhja" või "Põhjapoolkera" ja olla siiski õige.

  1. Lisage küsimuse klassile veel üks valikuline atribuut. See atribuut sisaldab kõiki võimalikke alternatiivseid õigeid vastuseid, mida kasutaja saab sisestada.
    klassküsimus:
    def__selles__(self, questionTekst, vastus, multipleChoiceOptions=Puudub, alternateAnswers=Puudub):
    ise.questionText = questionText
    ise.vastus = vastus
    ise.multipleChoiceOptions = multipleChoiceOptions
    ise.alternateAnswers = alternateAnswers

    def__repr__(ise):
    tagasi '{'+ self.questionTekst +', '+ ise.vastus +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Lisage quizQuestions massiivi veel üks küsimus. Lisa õigeks vastuseks "põhjapoolkera". Lisage alternatiivsete õigete vastustena "põhja" ja "põhja".
    quizQuestions = [
    #...
    küsimus("5. küsimus. Millisel poolkeral asub Jaapan", "Põhjapoolkera", [], ["põhja poole", "põhjapoolne"]),
    ]
  3. Lisa if-lausele veel üks tingimus, mis kontrollib, kas kasutaja on sisestanud alternatiivse õige vastuse.
    if (userInput.lower() == question.answer.lower()):
    print ("See on õige!")
    elif (question.alternateAnswers != Mitte ühtegija userInput.lower() sisse küsimus.alternateAnswers):
    print ("See on õige!")
    muidu:
    print (f"Vabandust, õige vastus on {küsimus Vastus}.")

Kuidas anda kasutajale vihjeid

Saate skripti muuta nii, et kasutaja ei saaks järgmisse etappi liikuda enne, kui ta on praeguse küsimuse õigeks saanud. Sel juhul lisage muutuja, et lugeda, mitu korda kasutaja on vale vastuse sisestanud. Pärast kolme vale arvamist saate kasutajale vihje anda.

  1. Muutke klassi Küsimus, et kasutada uut vihjeatribuuti.
    klassküsimus:
    def__selles__(self, questionText, answer, hint=Puudub, multipleChoiceOptions=Puudub, alternateAnswers=Puudub):
    ise.questionText = questionText
    ise.vastus = vastus
    ise.hint = vihje
    ise.multipleChoiceOptions = multipleChoiceOptions
    ise.alternateAnswers = alternateAnswers

    def__repr__(ise):
    tagasi '{'+ self.questionTekst +', '+ ise.vastus +', '+ ise.vihje +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Lisage vihjeid kõikidele viktoriini küsimustele.
    quizQuestions = [
    küsimus("Küsimus 1. Mis linn on Austraalia pealinn", "Canberra", "Algab tähega C"),
    küsimus("2. küsimus. Mis linn on Jaapani pealinn", "Tokyo", "Algab T-ga"),
    küsimus("3. küsimus. Mitu saart on Filipiinidel", "7100", "Arv vahemikus 7000 kuni 8000"),
    küsimus("4. küsimus. Milline riik võtab kõige rohkem maad", "b", "Riik hõlmab kahte mandrit", ["a) Ameerika Ühendriigid", "b) Venemaa", "c) Austraalia", "d) Antarktika"]),
    küsimus("5. küsimus. Millisel poolkeral asub Jaapan", "Põhjapoolkera", "Maa ülemine pool", [], ["põhja poole", "põhjapoolne"]),
    ]
  3. Eemaldage if-laused, mis kontrollivad, kas kasutaja vastas küsimusele õigesti. Asendage need ajasilmusega. Kuigi silmus jätkab tsüklit, kuni kasutaja saab õige vastuse. Lisage while-tsüklisse loendur, mis kuvab vihje, kui kasutaja saab kolm korda valesti vastuse.
    viktoriini küsimusedKüsimused:
    kui (question.multipleChoiceOptions != Mitte ühtegi):
    print (f"{question.questionText}?")
    jaoksvaliksisseküsimus.multipleChoiceOptions:
    printida(valikuline)
    userInput = input()
    muidu:
    print (f"{question.questionText}?")
    userInput = input()
    arv = 0
    samal ajal (userInput.lower() != question.answer.lower()):
    kui (question.alternateAnswers != Mitte ühtegija userInput.lower() sisse küsimus.alternateAnswers):
    murda;
    arv = arv + 1
    kui (loenda >= 3):
    print (f"Vihje: {question.hint}.")
    userInput = input()
    muidu:
    print ("See onmitte õige, proovi jälle.")
    userInput = input()

    print ("See on õige!")

  4. Käivitage viktoriin uuesti käsureal, kasutades käsku python.
    püütonInteraktiivne viktoriin.py
  5. Vastake viktoriini küsimustele.

Väikeste rakenduste loomine Pythoni abil

Üks projektidest, mida saate Pythonis kodeerimise õppimisel teha, on interaktiivne viktoriin. Viktoriinil saate esitada kasutajale erinevat tüüpi küsimusi.

Saate salvestada teavet viktoriini küsimuste kohta objektile, et vältida koodi kordamist iga küsimuse puhul.

Oma oskuste parandamiseks Pythonis on hea harjutada erinevaid harjutusi ja näiteid. Võite vaadata teisi Pythoni näiteid, mis aitavad teil õppida.