Можете вежбати учење како да програмирате тако што ћете направити кратке пројекте командне линије у Питхон-у. Један од пројеката који можете направити је интерактивни квиз, где кориснику можете постављати различите врсте питања.
Питања која можете поставити укључују питања са вишеструким избором или питања која захтевају писмене одговоре. Такође можете постављати питања која имају алтернативне тачне одговоре. Можете чак учинити да ваш програм даје наговештаје кориснику.
Како да направите Питхон скрипту и додате своје прво питање за квиз
Направите Питхон датотеку и додајте своје прво питање. Ако раније нисте кодирали у Питхон-у, постоји много курсева и ресурса тамо где можете научите Питхон бесплатно.
- Направите нову текстуалну датотеку под називом „ИнтерацтивеКуиз.пи“.
- Отворите датотеку помоћу било ког уређивача текста и додајте своју прву изјаву за штампање да бисте пожелели добродошлицу кориснику у квиз.
принт(„Здраво, добродошли на квиз из географије. Одговорите на питања као они су представљени.")
- Поставите прво питање кориснику. Користите функцију инпут() да сачекате одговор корисника и сачувате њихов унос у променљиву "усерИнпут".
штампа ("Питање 1. Који град је главни град Аустралије?")
усерИнпут = инпут() - Додајте услов да проверите да ли се унос корисника поклапа са тачним одговором. Ако је корисник тачно одговорио, прикажите му „тачну“ поруку. Ако није, прикажите тачан одговор.
иф (усерИнпут.ловер() == "Цанберра".ловер()):
принт("То је тачно!")
друго:
принт("Извини, тачан одговор је Канбера.") - Да бисте покренули квиз и проверили да ли ваше питање функционише, отворите командну линију и идите до локације ваше Питхон датотеке. На пример, ако сте сачували датотеку у директоријуму под називом Десктоп, команда би била:
цд Десктоп
- Покрените команду питхон да бисте извршили квиз.
питхонИнтерацтивеКуиз.пи
- Дајте одговор на питање у квизу.
Како додати више питања у квиз
Можете додати неколико питања понављањем кода изнад. Међутим, ово ће учинити ваш код непотребно дугим и тежим за ажурирање. За бољи приступ, сачувајте информације о питању у објекту.
- На врху Питхон датотеке додајте класу за чување информација о питању из квиза. Ако то раније нисте урадили, можете сазнати више о томе како да урадите креирати класу у Питхон-у.
класаПитање:
деф__у томе__(сам, текст питања, одговор):
селф.куестионТект = куестионТект
селф.одговор = одговордеф__репр__(сам):
повратак '{'+ селф.куестионТект +', '+ селф.ансвер +'}' - Испод класе додајте низ објеката питања. Ови објекти ће чувати текст питања који квиз приказује кориснику, заједно са тачним одговором.
квизПитања = [
питање("Питање 1. Који град је главни град Аустралије", "Цанберра"),
питање("Питање 2. Који град је главни град Јапана", "Токио"),
питање("Питање 3. Колико острва имају Филипини", "7100")
] - Замените постојећу иф наредбу и кориснички унос. Уместо тога, користите петљу фор за понављање низа куизКуестионс. За свако питање прикажите питање и упоредите унос корисника са тачним одговором.
за питања у квизуПитања:
штампа (ф"{куестион.куестионТект}?")
усерИнпут = инпут()
иф (усерИнпут.ловер() == куестион.ансвер.ловер()):
принт("То је тачно!")
друго:
принт (ф"Извините, тачан одговор је {питање одговор}.")
Како додати питања са вишеструким избором
Можете проширити класу Питања да бисте примили питања са вишеструким избором.
- Измените класу Питање на врху датотеке. Додајте опциони атрибут под називом мултиплеЦхоицеОптионс.
класаПитање:
деф__у томе__(селф, куестионТект, ансвер, мултиплеЦхоицеОптионс=Ништа):
селф.куестионТект = куестионТект
селф.одговор = одговор
селф.мултиплеЦхоицеОптионс = мултиплеЦхоицеОптионсдеф__репр__(сам):
повратак '{'+ селф.куестионТект +', '+ селф.ансвер +', '+ стр (селф.мултиплеЦхоицеОптионс) +'}' - Додајте још једно питање у низ куизКуестионс. Сачувајте неке опције са вишеструким избором за питање.
квизПитања = [
питање("Питање 1. Који град је главни град Аустралије", "Цанберра"),
питање("Питање 2. Који град је главни град Јапана", "Токио"),
питање("Питање 3. Колико острва имају Филипини", "7100"),
питање("Питање 4. Која земља заузима највише копнене масе", "б", ["(а) Сједињене Државе", "(б) Русија", "(ц) Аустралија", "(д) Антарктик"]),
] - Измените део фор петље који приказује питање кориснику. Ако за питање постоје опције вишеструког избора, прикажите их након питања и пре преузимања корисничког уноса.
за питања у квизуПитања:
ако (куестион.мултиплеЦхоицеОптионс != Ниједан):
штампа (ф"{куестион.куестионТект}?")
заопцијаинпитање.мултиплеЦхоицеОптионс:
принт(опција)
усерИнпут = инпут()
друго:
штампа (ф"{куестион.куестионТект}?")
усерИнпут = инпут()иф (усерИнпут.ловер() == куестион.ансвер.ловер()):
принт("То је тачно!")
друго:
принт (ф"Извините, тачан одговор је {питање одговор}.")
Како додати питање које има алтернативне тачне одговоре
Понекад постоје питања где корисник може да унесе део одговора, али је технички и даље тачан.
На пример, једно од питања у вашем квизу може бити „На којој се хемисфери налази Јапан?“. У овом случају, корисник може да унесе „Север“, „Северна“ или „Северна хемисфера“, а да и даље буде тачан.
- Додајте још један опциони атрибут у класу Питање. Овај атрибут ће садржати све могуће алтернативне тачне одговоре које корисник може да унесе.
класаПитање:
деф__у томе__(селф, куестионТект, ансвер, мултиплеЦхоицеОптионс=Ништа, алтернатеАнсверс=Ниједан):
селф.куестионТект = куестионТект
селф.одговор = одговор
селф.мултиплеЦхоицеОптионс = мултиплеЦхоицеОптионс
селф.алтернатеАнсверс = алтернативниАнсверсдеф__репр__(сам):
повратак '{'+ селф.куестионТект +', '+ селф.ансвер +', '+ стр (селф.мултиплеЦхоицеОптионс) +', '+ стр (селф.алтернатеАнсверс) +'}' - Додајте још једно питање у низ куизКуестионс. Додајте „Северна хемисфера“ као тачан одговор. Додајте „север“ и „север“ као алтернативне тачне одговоре.
квизПитања = [
#...
питање("Питање 5. На којој хемисфери се налази Јапан", "Северна хемисфера", [], ["север", "северни"]),
] - Додајте још један услов наредби иф који проверава да ли је корисник унео алтернативни тачан одговор.
иф (усерИнпут.ловер() == куестион.ансвер.ловер()):
принт("То је тачно!")
елиф (куестион.алтернатеАнсверс != Ниједани усерИнпут.ловер() ин куестион.алтернатеАнсверс):
принт("То је тачно!")
друго:
принт (ф"Извините, тачан одговор је {питање одговор}.")
Како дати савете корисницима
Можете да измените скрипту тако да корисник не може да пређе на следећу фазу док не добије тачно тренутно питање. У овом случају додајте променљиву да бисте израчунали колико пута је корисник унео погрешан одговор. Након три погрешна нагађања, кориснику можете дати наговештај.
- Измените класу Куестион да бисте користили нови атрибут наговештаја.
класаПитање:
деф__у томе__(селф, куестионТект, ансвер, хинт=Ништа, мултиплеЦхоицеОптионс=Ништа, алтернатеАнсверс=Ништа):
селф.куестионТект = куестионТект
селф.одговор = одговор
селф.хинт = наговештај
селф.мултиплеЦхоицеОптионс = мултиплеЦхоицеОптионс
селф.алтернатеАнсверс = алтернативниАнсверсдеф__репр__(сам):
повратак '{'+ селф.куестионТект +', '+ селф.ансвер +', '+ селф.хинт +', '+ стр (селф.мултиплеЦхоицеОптионс) +', '+ стр (селф.алтернатеАнсверс) +'}' - Додајте наговештаје свим питањима у квизу.
квизПитања = [
питање("Питање 1. Који град је главни град Аустралије", "Цанберра", "Почиње са Ц"),
питање("Питање 2. Који град је главни град Јапана", "Токио", "Почиње са Т"),
питање("Питање 3. Колико острва имају Филипини", "7100", "Број између 7000 и 8000"),
питање("Питање 4. Која земља заузима највише копнене масе", "б", "Држава се простире на два континента", ["(а) Сједињене Државе", "(б) Русија", "(ц) Аустралија", "(д) Антарктик"]),
питање("Питање 5. На којој хемисфери се налази Јапан", "Северна хемисфера", "Горња половина Земље", [], ["север", "северни"]),
] - Уклоните иф изјаве које проверавају да ли је корисник тачно одговорио на питање. Замените их са вхиле петљом. Док петља ће се непрекидно вртити све док корисник не добије тачан одговор. Унутар вхиле петље додајте број који ће приказати наговештај када корисник три пута погрешно одговори.
за питања у квизуПитања:
ако (куестион.мултиплеЦхоицеОптионс != Ниједан):
штампа (ф"{куестион.куестионТект}?")
заопцијаинпитање.мултиплеЦхоицеОптионс:
принт(опција)
усерИнпут = инпут()
друго:
штампа (ф"{куестион.куестионТект}?")
усерИнпут = инпут()
број = 0
док (усерИнпут.ловер() != куестион.ансвер.ловер()):
ако (куестион.алтернатеАнсверс != Ниједани усерИнпут.ловер() ин куестион.алтернатеАнсверс):
пауза;
број = број + 1
ако (број >= 3):
штампа (ф"Савет: {куестион.хинт}.")
усерИнпут = инпут()
друго:
принт("То јене тачно, покушати поново.")
усерИнпут = инпут()принт("То је тачно!")
- Поново покрените свој квиз у командној линији користећи команду питхон.
питхонИнтерацтивеКуиз.пи
- Одговорите на питања у квизу.
Креирање малих апликација помоћу Питхон-а
Један од пројеката које можете да направите док учите како да кодирате у Питхон-у је интерактивни квиз. У квизу кориснику можете представити различите врсте питања.
Можете да ускладиштите информације о питањима из квиза у објекту како бисте спречили да понављате свој код за свако питање.
Да бисте побољшали своје вештине у Питхон-у, добра је идеја да вежбате различите вежбе и примере. Можете погледати друге Питхон примере који вам могу помоћи да научите.