Gyakorolhatja a programozást, ha rövid parancssori projekteket készít Pythonban. Az egyik elkészíthető projekt egy interaktív kvíz, ahol különféle kérdéseket tehet fel a felhasználónak.
A feltehető kérdések közé tartoznak a feleletválasztós kérdések, vagy olyan kérdések, amelyekre írásbeli választ kell adni. Olyan kérdéseket is feltehet, amelyekre alternatív helyes válaszok vannak. Még azt is megteheti, hogy a program tippeket adjon a felhasználónak.
A Python-szkript létrehozása és az első kvízkérdés hozzáadása
Hozzon létre egy Python-fájlt, és adja hozzá az első kérdést. Ha még nem kódolt Pythonban, számos kurzus és forrás található, ahol megteheti tanuld meg a Python-t ingyen.
- Hozzon létre egy új szöveges fájlt "InteractiveQuiz.py" néven.
- Nyissa meg a fájlt bármely szövegszerkesztővel, és adja hozzá az első nyomtatott nyilatkozatot, hogy üdvözölje a felhasználót a kvízben.
nyomtatás("Szervusz, üdvözöllek a földrajzi vetélkedőn. Válaszolj a kérdésekre mint bemutatják.")
- Tegye fel az első kérdést a felhasználónak. Az input() függvény segítségével várja meg a felhasználó válaszát, és tárolja a bemenetet a "userInput" változóban.
nyomtatás("1. kérdés. Melyik város Ausztrália fővárosa?")
userInput = input() - Adjon hozzá egy feltételt annak ellenőrzésére, hogy a felhasználó bevitele megegyezik-e a helyes válasszal. Ha a felhasználó helyesen válaszolt, jelenítsen meg neki egy „helyes” üzenetet. Ha nem, jelenítse meg a helyes választ.
if (userInput.lower() == "Canberra".Alsó()):
print ("Az van helyes!")
más:
print("Elnézést, a helyes válasz van Canberra.") - A kvíz futtatásához és a kérdés működőképességének teszteléséhez nyissa meg a parancssort, és navigáljon a Python-fájl helyére. Például, ha a fájlt egy Desktop nevű könyvtárban tárolta, a parancs a következő lenne:
CD Asztali
- Futtassa a python parancsot a kvíz végrehajtásához.
pitonInteraktív kvíz.py
- Adjon választ a kvíz kérdésére.
Több kérdés hozzáadása a kvízhez
A fenti kód megismétlésével több kérdést is felvehet. Ez azonban szükségtelenül meghosszabbítja a kódot, és nehezebb lesz frissíteni. A jobb megközelítés érdekében tárolja a kérdéssel kapcsolatos információkat egy objektumban.
- A Python-fájl tetején adjon hozzá egy osztályt a kvízkérdéssel kapcsolatos információk tárolására. Ha még nem tette meg, többet megtudhat arról, hogyan kell ezt megtenni hozzon létre egy osztályt Pythonban.
osztályKérdés:
def__benne__(én, kérdésSzöveg, válasz):
maga.questionText = questionText
maga.válasz = válaszdef__repr__(maga):
Visszatérés '{'+ self.questionText +', '+ saját.válasz +'}' - Adjon hozzá egy sor kérdésobjektumot az osztály alá. Ezek az objektumok tárolják a kérdés szövegét, amelyet a kvíz megjelenít a felhasználó számára, a helyes válasz mellett.
quizQuestions = [
Kérdés("1. kérdés. Melyik város Ausztrália fővárosa", "Canberra"),
Kérdés("2. kérdés. Melyik város Japán fővárosa", "Tokió"),
Kérdés("3. kérdés Hány szigete van a Fülöp-szigeteknek", "7100")
] - Cserélje ki a meglévő if utasítást és a felhasználói beviteli kódot. Ehelyett használjon egy for ciklust a quizQuestions tömbön való iterációhoz. Minden kérdésnél jelenítse meg a kérdést, és hasonlítsa össze a felhasználó által megadott adatokat a helyes válasszal.
kvízkérdésekhez:
nyomtatás (f"{question.questionText}?")
userInput = input()
if (userInput.lower() == question.answer.lower()):
print ("Az van helyes!")
más:
print (f"Elnézést, a helyes válasz van {kérdés válasz}.")
Feleletválasztós kérdések hozzáadása
A Kérdés osztály kibővíthető a feleletválasztós kérdésekhez.
- Módosítsa a Question osztályt a fájl tetején. Adjon hozzá egy multipleChoiceOptions nevű opcionális attribútumot.
osztályKérdés:
def__benne__(self, questionText, answer, multipleChoiceOptions=Nincs):
maga.questionText = questionText
maga.válasz = válasz
maga.multipleChoiceOptions = multipleChoiceOptionsdef__repr__(maga):
Visszatérés '{'+ self.questionText +', '+ saját.válasz +', '+ str (self.multipleChoiceOptions) +'}' - Adjon hozzá egy másik kérdést a quizQuestions tömbhöz. Tároljon néhány feleletválasztós lehetőséget a kérdéshez.
quizQuestions = [
Kérdés("1. kérdés. Melyik város Ausztrália fővárosa", "Canberra"),
Kérdés("2. kérdés. Melyik város Japán fővárosa", "Tokió"),
Kérdés("3. kérdés Hány szigete van a Fülöp-szigeteknek", "7100"),
Kérdés("4. kérdés. Melyik ország foglalja el a legtöbb földet", "b", ["a) Egyesült Államok", "b) Oroszország", "c) Ausztrália", "d) Antarktisz"]),
] - Módosítsa a for ciklus azon részét, amely a kérdést megjeleníti a felhasználó számára. Ha létezik feleletválasztós lehetőség a kérdéshez, jelenítse meg őket a kérdés után, és mielőtt lekérné a felhasználó bevitelét.
kvízkérdésekhez:
ha (question.multipleChoiceOptions != Egyik sem):
nyomtatás (f"{question.questionText}?")
számáraválasztási lehetőségban benkérdés.multipleChoiceOptions:
nyomtatás(választási lehetőség)
userInput = input()
más:
nyomtatás (f"{question.questionText}?")
userInput = input()if (userInput.lower() == question.answer.lower()):
print ("Az van helyes!")
más:
print (f"Elnézést, a helyes válasz van {kérdés válasz}.")
Hogyan adjunk hozzá olyan kérdést, amelyre alternatív helyes válaszok vannak
Néha vannak olyan kérdések, amelyekre a felhasználó beírhatja a válasz egy részét, de technikailag még mindig helyes.
Például a kvíz egyik kérdése lehet: „Melyik féltekén található Japán?”. Ebben az esetben a felhasználó beírhatja az „észak”, „északi” vagy „északi félteke” kifejezést, és továbbra is helyes.
- Adjon hozzá egy másik opcionális attribútumot a Kérdés osztályhoz. Ez az attribútum tartalmazza a felhasználó által megadható lehetséges alternatív helyes válaszokat.
osztályKérdés:
def__benne__(self, questionText, answer, multipleChoiceOptions=Nincs, alternateAnswers=Nincs):
maga.questionText = questionText
maga.válasz = válasz
maga.multipleChoiceOptions = multipleChoiceOptions
maga.alternateAnswers = alternateAnswersdef__repr__(maga):
Visszatérés '{'+ self.questionText +', '+ saját.válasz +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}' - Adjon hozzá egy másik kérdést a quizQuestions tömbhöz. Helyes válaszként adja hozzá az „északi félteke” kifejezést. Adja hozzá az "északi" és az "északi" kifejezést alternatív helyes válaszként.
quizQuestions = [
#...
Kérdés("5. kérdés. Melyik féltekén található Japán?", "Északi félteke", [], ["északi", "északi"]),
] - Adjon hozzá egy másik feltételt az if utasításhoz, amely ellenőrzi, hogy a felhasználó alternatív helyes választ adott-e be.
if (userInput.lower() == question.answer.lower()):
print ("Az van helyes!")
elif (question.alternateAnswers != Egyik semés userInput.lower() ban ben kérdés.alternateAnswers):
print ("Az van helyes!")
más:
print (f"Elnézést, a helyes válasz van {kérdés válasz}.")
Hogyan adjunk tippeket a felhasználónak
Módosíthatja a szkriptet úgy, hogy a felhasználó ne tudjon továbblépni a következő szakaszba mindaddig, amíg az aktuális kérdést meg nem oldja. Ebben az esetben adjon hozzá egy változót, amely megszámolja, hogy a felhasználó hányszor adott rossz választ. Három helytelen tippelés után tippet adhat a felhasználónak.
- Módosítsa a Question osztályt egy új hint attribútum használatához.
osztályKérdés:
def__benne__(self, questionText, answer, hint=Nincs, multipleChoiceOptions=Nincs, alternateAnswers=Nincs):
maga.questionText = questionText
maga.válasz = válasz
maga.hint = tipp
maga.multipleChoiceOptions = multipleChoiceOptions
maga.alternateAnswers = alternateAnswersdef__repr__(maga):
Visszatérés '{'+ self.questionText +', '+ saját.válasz +', '+ self.hint +', '+ str (self.multipleChoiceOptions) +', '+ str (self.alternateAnswers) +'}' - Adjon tippeket a kvíz összes kérdéséhez.
quizQuestions = [
Kérdés("1. kérdés. Melyik város Ausztrália fővárosa", "Canberra", "C betűvel kezdődik"),
Kérdés("2. kérdés. Melyik város Japán fővárosa", "Tokió", "T betűvel kezdődik"),
Kérdés("3. kérdés Hány szigete van a Fülöp-szigeteknek", "7100", "7000 és 8000 közötti szám"),
Kérdés("4. kérdés. Melyik ország foglalja el a legtöbb földet", "b", "Az ország két kontinenst ölel fel", ["a) Egyesült Államok", "b) Oroszország", "c) Ausztrália", "d) Antarktisz"]),
Kérdés("5. kérdés. Melyik féltekén található Japán?", "Északi félteke", "A Föld felső fele", [], ["északi", "északi"]),
] - Távolítsa el az if utasításokat, amelyek ellenőrzik, hogy a felhasználó helyesen válaszolt-e a kérdésre. Cserélje ki ezeket egy while hurokkal. A while ciklus folyamatosan ismétlődik, amíg a felhasználó helyes választ nem kap. A while cikluson belül adjon hozzá egy számlálót, amely megjeleníti a tippet, ha a felhasználó háromszor rossz választ kap.
kvízkérdésekhez:
ha (question.multipleChoiceOptions != Egyik sem):
nyomtatás (f"{question.questionText}?")
számáraválasztási lehetőségban benkérdés.multipleChoiceOptions:
nyomtatás(választási lehetőség)
userInput = input()
más:
nyomtatás (f"{question.questionText}?")
userInput = input()
szám = 0
míg (userInput.lower() != question.answer.lower()):
ha (question.alternateAnswers != Egyik semés userInput.lower() ban ben kérdés.alternateAnswers):
szünet;
számolás = számolás + 1
ha (szám >= 3):
nyomtatás (f"Tipp: {question.hint}.")
userInput = input()
más:
print ("Az vannem helyes, próbálja meg újra.")
userInput = input()print ("Az van helyes!")
- Futtassa újra a kvízt a parancssorban a python paranccsal.
pitonInteraktív kvíz.py
- Válaszoljon a kvíz kérdéseire.
Kis alkalmazások létrehozása Python használatával
Az egyik olyan projekt, amelyet a Pythonban való kódolás megtanulása közben megvalósíthat, egy interaktív kvíz. A kvízben különböző típusú kérdéseket tud bemutatni a felhasználónak.
A kvízkérdésekről információkat tárolhat egy objektumban, így megakadályozhatja, hogy minden kérdésnél megismételje a kódját.
A Pythonban szerzett készségek fejlesztéséhez érdemes különféle gyakorlatokat és példákat gyakorolni. Megnézhet más Python-példákat, amelyek segíthetnek a tanulásban.