Varat praktizēt programmēšanas apguvi, veidojot īsus komandrindas projektus programmā Python. Viens no projektiem, ko varat veikt, ir interaktīva viktorīna, kurā varat uzdot lietotājam dažādus jautājumus.

Jautājumi, kurus varat uzdot, ietver jautājumus ar atbilžu variantiem vai jautājumus, uz kuriem ir nepieciešamas rakstiskas atbildes. Varat arī uzdot jautājumus, kuriem ir alternatīvas pareizās atbildes. Jūs pat varat likt programmai sniegt padomus lietotājam.

Kā izveidot Python skriptu un pievienot savu pirmo viktorīnas jautājumu

Izveidojiet Python failu un pievienojiet savu pirmo jautājumu. Ja jūs iepriekš neesat kodējis Python, ir pieejami daudzi kursi un resursi, kur varat iemācīties Python bez maksas.

  1. Izveidojiet jaunu teksta failu ar nosaukumu "InteractiveQuiz.py".
  2. Atveriet failu, izmantojot jebkuru teksta redaktoru, un pievienojiet pirmo drukāšanas paziņojumu, lai sveiktu lietotāju viktorīnā.
    drukāt("Sveiki, laipni lūdzam ģeogrāfijas viktorīnā. Atbildi uz jautājumiem  tie tiek prezentēti.")
  3. Uzdodiet pirmo jautājumu lietotājam. Izmantojiet funkciju input(), lai gaidītu lietotāja atbildi, un saglabājiet viņu ievadi mainīgajā "userInput".
    drukāt ("Jautājums 1. Kura pilsēta ir Austrālijas galvaspilsēta?")
    userInput = ievade ()
  4. Pievienojiet nosacījumu, lai pārbaudītu, vai lietotāja ievade atbilst pareizajai atbildei. Ja lietotājs atbildēja pareizi, parādiet viņam "pareizo" ziņojumu. Ja nē, parādiet pareizo atbildi.
    if (userInput.lower() == "Kanbera".lower()):
    print ("Tas ir pareizi!")
    cits:
    print("Atvainojiet, pareizā atbilde ir Kanbera.")
  5. Lai izpildītu viktorīnu un pārbaudītu, vai jautājums darbojas, atveriet komandrindu un dodieties uz Python faila atrašanās vietu. Piemēram, ja saglabājāt failu direktorijā ar nosaukumu Desktop, komanda būtu šāda:
    cd Darbvirsma
  6. Palaidiet python komandu, lai izpildītu viktorīnu.
    pitonsInteraktīvā viktorīna.py
  7. Sniedziet atbildi uz viktorīnas jautājumu.

Kā viktorīnai pievienot vairākus jautājumus

Varat pievienot vairākus jautājumus, atkārtojot iepriekš norādīto kodu. Tomēr tas padarīs jūsu kodu nevajadzīgi ilgu un grūtāk atjaunināmu. Lai iegūtu labāku pieeju, uzglabājiet informāciju par jautājumu objektā.

  1. Python faila augšdaļā pievienojiet klasi, lai saglabātu informāciju par viktorīnas jautājumu. Ja iepriekš neesat to izdarījis, varat uzzināt vairāk par to, kā to izdarīt izveidot klasi Python.
    klasēJautājums:
    def__tajā__(es, jautājumsTeksts, atbilde):
    sevi.questionText = jautājumaTeksts
    sevi.atbilde = atbilde

    def__repr__(pats):
    atgriezties '{'+ self.questionTeksts +', '+ pats.atbildēt +'}'

  2. Zem klases pievienojiet jautājumu objektu masīvu. Šajos objektos tiks saglabāts jautājuma teksts, kas lietotājam tiek parādīts viktorīnā, kopā ar pareizo atbildi.
    quizQuestions = [
    jautājums ("Jautājums 1. Kura pilsēta ir Austrālijas galvaspilsēta", "Kanbera"),
    jautājums ("2. jautājums. Kura pilsēta ir Japānas galvaspilsēta", "Tokija"),
    jautājums ("3. jautājums. Cik salu ir Filipīnās", "7100")
    ]
  3. Aizstāt esošo if priekšrakstu un lietotāja ievades kodu. Tā vietā izmantojiet for cilpu, lai atkārtotu quizQuestions masīvu. Katram jautājumam parādiet jautājumu un salīdziniet lietotāja ievadīto ar pareizo atbildi.
    uz jautājumu viktorīnāJautājumi:
    drukāt (f"{question.questionText}?")
    userInput = ievade ()
    if (userInput.lower() == question.answer.lower()):
    print ("Tas ir pareizi!")
    cits:
    print (f"Atvainojiet, pareizā atbilde ir {jautājuma atbilde}.")

Kā pievienot jautājumus ar atbilžu variantiem

Varat paplašināt jautājumu klasi, lai tajā iekļautu jautājumus ar atbilžu variantiem.

  1. Modificējiet jautājumu klasi faila augšdaļā. Pievienojiet neobligātu atribūtu multipleChoiceOptions.
    klasēJautājums:
    def__tajā__(self, questionText, answer, multipleChoiceOptions=nav):
    sevi.questionText = jautājumaTeksts
    sevi.atbilde = atbilde
    sevi.multipleChoiceOptions = multipleChoiceOptions

    def__repr__(pats):
    atgriezties '{'+ self.questionTeksts +', '+ pats.atbildēt +', '+ str (self.multipleChoiceOptions) +'}'

  2. Pievienojiet vēl vienu jautājumu masīvam QuizQuestions. Saglabājiet dažus jautājuma atbilžu variantus.
    quizQuestions = [
    jautājums ("Jautājums 1. Kura pilsēta ir Austrālijas galvaspilsēta", "Kanbera"),
    jautājums ("2. jautājums. Kura pilsēta ir Japānas galvaspilsēta", "Tokija"),
    jautājums ("3. jautājums. Cik salu ir Filipīnās", "7100"),
    jautājums ("4. jautājums. Kura valsts aizņem lielāko zemes masu", "b", ["a) Amerikas Savienotās Valstis", "b) Krievija", "c) Austrālija", "d) Antarktīda"]),
    ]
  3. Modificējiet for cilpas daļu, kas lietotājam parāda jautājumu. Ja jautājumam ir vairākas izvēles iespējas, parādiet tās pēc jautājuma un pirms lietotāja ievades iegūšanas.
    uz jautājumu viktorīnāJautājumi:
    ja (question.multipleChoiceOptions != Nav):
    drukāt (f"{question.questionText}?")
    priekšopcijuiekšājautājums.multipleChoiceOptions:
    drukāt(opcija)
    userInput = ievade ()
    cits:
    drukāt (f"{question.questionText}?")
    userInput = ievade ()

    if (userInput.lower() == question.answer.lower()):
    print ("Tas ir pareizi!")
    cits:
    print (f"Atvainojiet, pareizā atbilde ir {jautājuma atbilde}.")

Kā pievienot jautājumu, kuram ir alternatīvas pareizās atbildes

Dažkārt ir jautājumi, kuros lietotājs var ierakstīt daļu atbildes, taču tehniski tā joprojām ir pareiza.

Piemēram, viens no jautājumiem jūsu viktorīnā varētu būt "Kādā puslodē atrodas Japāna?". Šādā gadījumā lietotājs var ierakstīt "Ziemeļi", "Ziemeļi" vai "Ziemeļu puslode" un joprojām ir pareizs.

  1. Pievienojiet vēl vienu neobligātu atribūtu klasei Jautājums. Šajā atribūtā būs visas iespējamās alternatīvās pareizās atbildes, ko lietotājs var ievadīt.
    klasēJautājums:
    def__tajā__(self, questionText, answer, multipleChoiceOptions=Nav, alternateAnswers=Nav):
    sevi.questionText = jautājumaTeksts
    sevi.atbilde = atbilde
    sevi.multipleChoiceOptions = multipleChoiceOptions
    sevi.alternateAnswers = alternateAnswers

    def__repr__(pats):
    atgriezties '{'+ self.questionTeksts +', '+ pats.atbildēt +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Pievienojiet vēl vienu jautājumu masīvam QuizQuestions. Kā pareizo atbildi pievienojiet "Ziemeļu puslode". Pievienojiet "ziemeļi" un "ziemeļi" kā alternatīvas pareizās atbildes.
    quizQuestions = [
    #...
    jautājums ("5. jautājums. Kurā puslodē atrodas Japāna", "Ziemeļu puslode", [], ["uz ziemeļiem", "ziemeļu"]),
    ]
  3. Pievienojiet vēl vienu nosacījumu if paziņojumam, kas pārbauda, ​​vai lietotājs ir ievadījis alternatīvu pareizo atbildi.
    if (userInput.lower() == question.answer.lower()):
    print ("Tas ir pareizi!")
    elifs (question.alternateAnswers != Navun userInput.lower() iekšā jautājums.alternateAnswers):
    print ("Tas ir pareizi!")
    cits:
    print (f"Atvainojiet, pareizā atbilde ir {jautājuma atbilde}.")

Kā sniegt lietotājam padomus

Varat modificēt skriptu, lai lietotājs nevarētu pāriet uz nākamo posmu, kamēr nav pareizs pašreizējais jautājums. Šādā gadījumā pievienojiet mainīgo, lai saskaitītu, cik reižu lietotājs ir ievadījis nepareizu atbildi. Pēc trim nepareiziem minējumiem varat dot lietotājam mājienu.

  1. Modificējiet jautājumu klasi, lai izmantotu jaunu mājienu atribūtu.
    klasēJautājums:
    def__tajā__(self, questionText, answer, hint=nav, multipleChoiceOptions=nav, alternateAnswers=nav):
    sevi.questionText = jautājumaTeksts
    sevi.atbilde = atbilde
    sevi.hint = mājiens
    sevi.multipleChoiceOptions = multipleChoiceOptions
    sevi.alternateAnswers = alternateAnswers

    def__repr__(pats):
    atgriezties '{'+ self.questionTeksts +', '+ pats.atbildēt +', '+ self.hint +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Pievienojiet padomus visiem viktorīnas jautājumiem.
    quizQuestions = [
    jautājums ("Jautājums 1. Kura pilsēta ir Austrālijas galvaspilsēta", "Kanbera", "Sākas ar C"),
    jautājums ("2. jautājums. Kura pilsēta ir Japānas galvaspilsēta", "Tokija", "Sākas ar T"),
    jautājums ("3. jautājums. Cik salu ir Filipīnās", "7100", "Skaitlis no 7000 līdz 8000"),
    jautājums ("4. jautājums. Kura valsts aizņem lielāko zemes masu", "b", "Valsts aptver divus kontinentus", ["a) Amerikas Savienotās Valstis", "b) Krievija", "c) Austrālija", "d) Antarktīda"]),
    jautājums ("5. jautājums. Kurā puslodē atrodas Japāna", "Ziemeļu puslode", "Zemes augšējā puse", [], ["uz ziemeļiem", "ziemeļu"]),
    ]
  3. Noņemiet if paziņojumus, kas pārbauda, ​​vai lietotājs pareizi atbildēja uz jautājumu. Nomainiet tos ar laika cilpu. Kamēr cilpa nepārtraukti darbosies, līdz lietotājs saņems pareizo atbildi. Ciklā while pievienojiet skaitu, kas parādīs mājienu, tiklīdz lietotājs trīs reizes saņems nepareizu atbildi.
    uz jautājumu viktorīnāJautājumi:
    ja (question.multipleChoiceOptions != Nav):
    drukāt (f"{question.questionText}?")
    priekšopcijuiekšājautājums.multipleChoiceOptions:
    drukāt(opcija)
    userInput = ievade ()
    cits:
    drukāt (f"{question.questionText}?")
    userInput = ievade ()
    skaits = 0
    kamēr (userInput.lower() != question.answer.lower()):
    ja (question.alternateAnswers != Navun userInput.lower() iekšā jautājums.alternateAnswers):
    pārtraukums;
    skaitīt = skaitīt + 1
    ja (skaitīt >= 3):
    drukāt (f"Padoms: {question.hint}.")
    userInput = ievade ()
    cits:
    print ("Tas ir pareizi, mēģināt vēlreiz.")
    userInput = ievade ()

    print ("Tas ir pareizi!")

  4. Atkārtoti izpildiet viktorīnu komandrindā, izmantojot komandu python.
    pitonsInteraktīvā viktorīna.py
  5. Atbildiet uz viktorīnas jautājumiem.

Mazu lietojumprogrammu izveide, izmantojot Python

Viens no projektiem, ko varat īstenot, mācoties kodēt Python, ir interaktīva viktorīna. Viktorīnā varat uzrādīt lietotājam dažāda veida jautājumus.

Jūs varat saglabāt informāciju par viktorīnas jautājumiem objektā, lai neļautu jums atkārtot kodu katram jautājumam.

Lai uzlabotu savas prasmes Python, ir ieteicams praktizēt dažādus vingrinājumus un piemērus. Varat apskatīt citus Python piemērus, kas var palīdzēt jums mācīties.