Možete vježbati učenje programiranja izradom kratkih projekata naredbenog retka u Pythonu. Jedan od projekata koji možete napraviti je interaktivni kviz, gdje korisniku možete postavljati različita pitanja.

Pitanja koja možete postaviti uključuju pitanja s višestrukim izborom ili pitanja koja zahtijevaju pismene odgovore. Također možete postavljati pitanja koja imaju alternativne točne odgovore. Možete čak učiniti da vaš program daje savjete korisniku.

Kako izraditi Python skriptu i dodati svoje prvo kviz pitanje

Napravite Python datoteku i dodajte svoje prvo pitanje. Ako dosad niste kodirali u Pythonu, postoje mnogi tečajevi i resursi na kojima možete besplatno naučite Python.

  1. Napravite novu tekstualnu datoteku pod nazivom "InteractiveQuiz.py".
  2. Otvorite datoteku pomoću bilo kojeg uređivača teksta i dodajte svoju prvu izjavu za ispis kako biste poželjeli dobrodošlicu korisniku u kviz.
    ispisati("Zdravo, dobrodošli u kviz iz geografije. Odgovori na pitanja kao predstavljeni su.")
  3. Postavite prvo pitanje korisniku. Koristite funkciju input() da biste čekali korisnikov odgovor i pohranili njihov unos u varijablu "userInput".
    ispis("Pitanje 1. Koji je grad glavni grad Australije?")
    korisnički unos = unos()
  4. Dodajte uvjet za provjeru podudara li se korisnički unos s točnim odgovorom. Ako je korisnik točno odgovorio, prikažite mu poruku "točno". Ako nije, prikaži točan odgovor.
    if (userInput.lower() == "Canberra".niži()):
    print("To je točno!")
    drugo:
    print("Oprostite, točan odgovor je Canberra.")
  5. Da biste pokrenuli svoj kviz i provjerili funkcionira li vaše pitanje, otvorite naredbeni redak i dođite do lokacije svoje Python datoteke. Na primjer, ako ste svoju datoteku pohranili u direktorij pod nazivom Desktop, naredba bi bila:
    CD Radna površina
  6. Pokrenite naredbu python da biste izvršili kviz.
    pitonInteraktivni kviz.py
  7. Dajte odgovor na pitanje kviza.

Kako dodati više pitanja u kviz

Možete dodati nekoliko pitanja ponavljanjem gornjeg koda. Međutim, to će vaš kôd učiniti nepotrebno dugim i težim za ažuriranje. Radi boljeg pristupa, umjesto toga pohranite informacije o pitanju u objekt.

  1. Na vrhu Python datoteke dodajte klasu za pohranu informacija o pitanju kviza. Ako to dosad niste učinili, možete saznati više o tome kako stvoriti klasu u Pythonu.
    razredaPitanje:
    def__u tome__(ja, pitanjeTekst, odgovor):
    sebe.questionText =Tekst pitanja
    sebe.odgovor = odgovor

    def__repr__(sebe):
    povratak '{'+ sebe.pitanjeTekst +', '+ sam.odgovor +'}'

  2. Ispod klase dodajte niz upitnih objekata. Ti će objekti pohraniti tekst pitanja koji kviz prikazuje korisniku, zajedno s točnim odgovorom.
    kvizPitanja = [
    Pitanje("Pitanje 1. Koji je grad glavni grad Australije", "Canberra"),
    Pitanje("pitanje 2. Koji je grad glavni grad Japana", "Tokio"),
    Pitanje("pitanje 3. Koliko otoka imaju Filipini", "7100")
    ]
  3. Zamijenite postojeću if naredbu i kod korisničkog unosa. Umjesto toga, koristite for petlju za ponavljanje niza quizQuestions. Za svako pitanje prikažite pitanje i usporedite unos korisnika s točnim odgovorom.
    za pitanje u kvizu Pitanja:
    ispisati (f"{question.questionText}?")
    korisnički unos = unos()
    if (userInput.lower() == question.answer.lower()):
    print("To je točno!")
    drugo:
    print (f"Oprosti, točan odgovor je {pitanje odgovor}.")

Kako dodati pitanja s višestrukim izborom

Možete proširiti klasu Pitanja kako bi se prilagodila pitanjima s višestrukim izborom.

  1. Izmijenite klasu Pitanja na vrhu datoteke. Dodajte izborni atribut pod nazivom multipleChoiceOptions.
    razredaPitanje:
    def__u tome__(self, questionText, answer, multipleChoiceOptions=None):
    sebe.questionText =Tekst pitanja
    sebe.odgovor = odgovor
    sebe.multipleChoiceOptions = multipleChoiceOptions

    def__repr__(sebe):
    povratak '{'+ sebe.pitanjeTekst +', '+ sam.odgovor +', '+ str (self.multipleChoiceOptions) +'}'

  2. Dodajte još jedno pitanje u polje quizQuestions. Pohranite nekoliko opcija višestrukog izbora za pitanje.
    kvizPitanja = [
    Pitanje("Pitanje 1. Koji je grad glavni grad Australije", "Canberra"),
    Pitanje("pitanje 2. Koji je grad glavni grad Japana", "Tokio"),
    Pitanje("pitanje 3. Koliko otoka imaju Filipini", "7100"),
    Pitanje("pitanje 4. Koja zemlja zauzima najveću kopnenu masu", "b", ["(a) Sjedinjene Države", "(b) Rusija", "(c) Australija", "(d) Antarktik"]),
    ]
  3. Izmijenite dio for petlje koji prikazuje pitanje korisniku. Ako za pitanje postoje mogućnosti višestrukog izbora, prikažite ih nakon pitanja, a prije dohvaćanja unosa korisnika.
    za pitanje u kvizu Pitanja:
    ako (question.multipleChoiceOptions != Nijedan):
    ispisati (f"{question.questionText}?")
    zaopcijaupitanje.multipleChoiceOptions:
    ispisati(opcija)
    korisnički unos = unos()
    drugo:
    ispisati (f"{question.questionText}?")
    korisnički unos = unos()

    if (userInput.lower() == question.answer.lower()):
    print("To je točno!")
    drugo:
    print (f"Oprosti, točan odgovor je {pitanje odgovor}.")

Kako dodati pitanje koje ima alternativne točne odgovore

Ponekad postoje pitanja u koja korisnik može upisati dio odgovora, ali je tehnički i dalje točan.

Na primjer, jedno od pitanja u vašem kvizu može biti "Na kojoj se hemisferi nalazi Japan?". U ovom slučaju, korisnik može upisati "Sjever", "Sjeverna" ili "Sjeverna hemisfera", i dalje biti točan.

  1. Dodajte još jedan izborni atribut u klasu pitanja. Ovaj atribut će sadržavati sve moguće alternativne točne odgovore koje korisnik može unijeti.
    razredaPitanje:
    def__u tome__(self, questionText, answer, multipleChoiceOptions=Ništa, alternateAnswers=Ništa):
    sebe.questionText =Tekst pitanja
    sebe.odgovor = odgovor
    sebe.multipleChoiceOptions = multipleChoiceOptions
    sebe.alternateAnswers = alternativniOdgovori

    def__repr__(sebe):
    povratak '{'+ sebe.pitanjeTekst +', '+ sam.odgovor +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Dodajte još jedno pitanje u polje quizQuestions. Dodajte "Sjeverna hemisfera" kao točan odgovor. Dodajte "sjever" i "sjever" kao alternativne točne odgovore.
    kvizPitanja = [
    #...
    Pitanje("pitanje 5. Na kojoj se hemisferi nalazi Japan", "Sjeverna hemisfera", [], ["sjeverno", "sjeverni"]),
    ]
  3. Dodajte još jedan uvjet if naredbi koja provjerava je li korisnik unio alternativni točan odgovor.
    if (userInput.lower() == question.answer.lower()):
    print("To je točno!")
    elif (pitanje.alternateAnswers != Nijedani userInput.lower() u question.alternateAnswers):
    print("To je točno!")
    drugo:
    print (f"Oprosti, točan odgovor je {pitanje odgovor}.")

Kako korisniku dati savjete

Možete modificirati skriptu tako da korisnik ne može prijeći na sljedeću fazu dok ne postavi točno trenutno pitanje. U tom slučaju dodajte varijablu za brojanje koliko je puta korisnik unio pogrešan odgovor. Nakon tri netočna pogađanja, korisniku možete dati savjet.

  1. Izmijenite klasu Question za korištenje novog atributa savjeta.
    razredaPitanje:
    def__u tome__(self, questionText, answer, hint=Ništa, multipleChoiceOptions=Ništa, alternateAnswers=Ništa):
    sebe.questionText =Tekst pitanja
    sebe.odgovor = odgovor
    sebe.hint = nagovještaj
    sebe.multipleChoiceOptions = multipleChoiceOptions
    sebe.alternateAnswers = alternativniOdgovori

    def__repr__(sebe):
    povratak '{'+ sebe.pitanjeTekst +', '+ sam.odgovor +', '+ self.hint +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}'

  2. Dodajte savjete svim pitanjima u kvizu.
    kvizPitanja = [
    Pitanje("Pitanje 1. Koji je grad glavni grad Australije", "Canberra", "Počinje sa C"),
    Pitanje("pitanje 2. Koji je grad glavni grad Japana", "Tokio", "Počinje s T"),
    Pitanje("pitanje 3. Koliko otoka imaju Filipini", "7100", "Broj između 7000 i 8000"),
    Pitanje("pitanje 4. Koja zemlja zauzima najveću kopnenu masu", "b", "Država se prostire na dva kontinenta", ["(a) Sjedinjene Države", "(b) Rusija", "(c) Australija", "(d) Antarktik"]),
    Pitanje("pitanje 5. Na kojoj se hemisferi nalazi Japan", "Sjeverna hemisfera", "Gornja polovica Zemlje", [], ["sjeverno", "sjeverni"]),
    ]
  3. Uklonite naredbe if koje provjeravaju je li korisnik točno odgovorio na pitanje. Zamijenite ih petljom while. Dok petlja će se neprekidno ponavljati sve dok korisnik ne dobije točan odgovor. Unutar while petlje dodajte brojač koji će prikazati savjet kada korisnik tri puta pogrešno odgovori.
    za pitanje u kvizu Pitanja:
    ako (question.multipleChoiceOptions != Nijedan):
    ispisati (f"{question.questionText}?")
    zaopcijaupitanje.multipleChoiceOptions:
    ispisati(opcija)
    korisnički unos = unos()
    drugo:
    ispisati (f"{question.questionText}?")
    korisnički unos = unos()
    broj = 0
    dok (userInput.lower() != question.answer.lower()):
    ako (pitanje.alternateAnswers != Nijedani userInput.lower() u question.alternateAnswers):
    pauza;
    brojati = brojati + 1
    ako (broji >= 3):
    ispisati (f"Savjet: {question.hint}.")
    korisnički unos = unos()
    drugo:
    print("To jene točno, probati opet.")
    korisnički unos = unos()

    print("To je točno!")

  4. Ponovno pokrenite svoj kviz u naredbenom retku pomoću naredbe python.
    pitonInteraktivni kviz.py
  5. Odgovorite na pitanja kviza.

Stvaranje malih aplikacija pomoću Pythona

Jedan od projekata koje možete napraviti dok učite kodirati u Pythonu je interaktivni kviz. U kvizu korisniku možete prezentirati različite vrste pitanja.

Možete pohraniti informacije o pitanjima kviza u objekt kako biste spriječili ponavljanje koda za svako pitanje.

Kako biste poboljšali svoje vještine u Pythonu, dobra je ideja vježbati različite vježbe i primjere. Možete pogledati druge Python primjere koji vam mogu pomoći u učenju.