Kui soovid Pythoni õppida, on hea alustada mõne lihtsa tekstipõhise mänguga. See artikkel näitab teile, kuidas viktoriinimängu teha.
1
Installige Python, kui te pole seda veel teinud. Pythonil on kaks peamist versiooni: Python 2 ja Python 3. Neid ei saa omavahel asendada ja Python 2 tugi lõpeb 2020. aastal, seega eeldatakse selles artiklis, et installite Python 3.
2
Avage uus fail tekstiredaktoris või oma Pythoni IDE-s. Andke sellele kirjeldav nimi, mis lõpeb tähega .py.
3
Importige juhuslik teek. Teil on seda vaja võimalike vastuste juhuslikuks korraldamiseks.
4
Määratlege klass “QA”. “QA” koosneb küsimusest ja õigest vastusest ning võimalike muude vastuste loendist. Funktsiooni __init__() kutsutakse alati, kui loote funktsiooniga QA() uue kvaliteedikontrolli objekti, mille argumendid edastatakse vastavasse atribuuti. Tüüp: klass QA: def __init__(ise, küsimus, õigeVastus, teisedVastused): ise.küsimus = küsimus ise.corrAnsw = õigeVastus ise.muuAnsw = muudAnswers
5
Loo QA-de loend. Mõelge mõnele küsimusele, millel on üks õige ja mõni vale vastus. Looge igaühest kvaliteedikontrolli objektid ja pange need loendisse. Kuna loend tuleb üsna pikk, saate parema loetavuse huvides jagada selle mitmeks reale. Kõik see tehakse järgmise koodiga (teie tekst võib olla erinev): qaList = [QA(“Kus on Minsk?”, “Valgevenes”, [“Venemaal”, “sellist linna pole olemas”]), QA (“Mis on Austraalia pealinn?”, “Canberra”, [“Sydney”, “New York”, “Austraaliat pole olemas”]), QA(“Milline järgmistest ei ole Maal?”, “Sea of Tranquility”, [“Vahemeri”, “Läänemeri”, “Põhjameri”]),QA(“Milline järgmistest ei ole kontinent?”, “Arktika”, [“Antarktika”, “Ameerika” ]),QA(“Milline järgmistest ei ole Aafrika riik?”, “Malaisia”, [“Madagaskar”, “Djibouti”, “Lõuna-Aafrika”, “Zimbabwe”])]
6
Lisage muutuja, mis loeb õigete vastuste arvu. Alguses määrake see nulliks. Lisa rida:corrCount = 0
7
Segage QA loend. Nii kuvatakse teie küsimused juhuslikus järjekorras. Seda tehakse järgmise funktsiooniga:random.shuffle(qaList)
8
Tee silmus. Programm peaks iga loendi üksuse üle käima ja sellega midagi ette võtma. Looge selline silmus selle avaldisega:for qaItem in qaList:
9
Esitage iga küsimus. Pärast tsükliavaldist kirjutage rida: print(qaItem.question)
10
Esitage kõik võimalikud vastused. Need peaksid ilmuma juhuslikus järjekorras, et õige vastus ei oleks alati samas kohas. Samuti peaks nende ees olema number, et kasutaja ei peaks kogu vastust uuesti sisestama. Seda teeb järgmine kood: print(“Võimalikud vastused on:”)possible = qaItem.otherAnsw + [qaItem.corrAnsw] # nurksulud muudavad õige vastuse loendiks, et ühendada need teiste listrandom.shuffle(possible)count = 0 # loendi indeksid algavad 0 juures pythonwhile count < len(võimalik): print(str(count+1) + ": " + võimalik[loend]) count += 1 11
Võtke kasutaja sisend. Esiteks öelge kasutajale, et ta peab sisestama oma numbri. Seejärel kontrollige, kas kasutaja sisestatu on tõesti number, mis vastab vastusele. Kui ei, öelge kasutajale uuesti. Kasutage seda koodi (väljaspool väljundi jaoks loodud while-tsüklit): print("Palun sisestage oma vastuse number:")userAnsw = input()while not userAnsw.isdigit(): print("See ei olnud number . Sisestage oma vastuse number:") userAnsw = input()userAnsw = int(userAnsw)while not (userAnsw > 0 ja userAnsw <= len(võimalik)): print("See number ei vasta ühelegi vastusele . Sisestage oma vastuse number:") userAnsw = input() 12
Kontrollige, kas kasutaja vastus oli õige. Selleks hankige vastuse tekst, millele kasutaja sisestas numbri ja võrrelge seda õige vastuse tekstiga. Kui need on samad, oli kasutaja vastus õige ja muutujat corrCount tuleks suurendada 1 võrra. Vastasel juhul on see vale ja kasutajale tuleks öelda õige vastus. Lõpuks printige tühi rida, et lisada järgmisele küsimusele ruumi. Sisestage järgmine kood: kui võimalik[userAnsw-1] == qaItem.corrAnsw: print("Teie vastus oli õige.") corrCount += 1else: print("Teie vastus oli vale.") print("Õige vastus oli: " + qaItem.corrAnsw)print("") 13
Tehke järeldus. Lõpuks soovib kasutaja ilmselt teada, kui palju küsimusi ta õigesti sai. Öelge neile, lisades väljapoole for-tsüklit järgmise avaldise: print("Sa vastasid " + str(corrCount) + " of " + str(len(qaList)) + " küsimustele õigesti.") 14
Kontrollige oma koodi. Pöörake erilist tähelepanu taandusele. Teie täielik kood peaks praegu välja nägema järgmine: import randomclass QA: def __init__(ise, küsimus, õigeAnswer, otherAnswers): self.question = küsimus self.corrAnsw = korrektneAnswer self.otherAnsw = otherAnswersqaList = [QA("Kus on Minsk?" , "Valgevenes", ["Venemaal", "sellist linna pole olemas"]),QA("Mis on Austraalia pealinn?", "Canberra", ["Sydney", "New York", "Austraaliat pole olemas"]),QA("Milline järgmistest ei ole Maal?", "Rahumeri", ["Vahemeri", "Läänemeri", "Põhjameri"]),QA( "Milline järgmistest ei ole kontinent?", "Arktika", ["Antarktika", "Ameerika"]), QA("Milline järgmistest ei ole Aafrika riik?", "Malaisia", ["Madagaskar" , "Djibouti", "Lõuna-Aafrika", "Zimbabwe"])]corrCount = 0random.shuffle(qaList) qaItem jaoks qaLoendis: print(qaItem.question) print("Võimalikud vastused on:") võimalik = qaItem.otherAnsw + [qaItem.corrAnsw] # nurksulud muudavad õige vastuse loendiks, et ühendada need teise loendiga random.shuf fle(võimalik) count = 0 # loendi indeksid algavad 0-st pythonis while count < len(võimalik): print(str(count+1) + ": " + võimalik[loend]) count += 1 print("Palun sisestage teie vastuse number:") userAnsw = input() while not userAnsw.isdigit(): print("See ei olnud number. Palun sisestage oma vastuse number:") userAnsw = input() userAnsw = int(kasutajaAnsw) while not (userAnsw > 0 ja userAnsw <= len(võimalik)): print("See number ei vasta ühelegi vastusele. Palun sisestage oma vastuse number:") userAnsw = input() kui võimalik[userAnsw-1] == qaItem.corrAnsw: print("Teie vastus oli õige.") corrCount += 1 else: print("Teie vastus oli vale.") print("Õige vastus oli: " + qaItem.corrAnsw) print("")print("Sa vastasid " + str(corrCount) + " of " + str(len(qaList)) + " küsimustele õigesti. ") 15
Käivitage kood. Kui kasutate IDE-d, klõpsake sümbolil "Käivita" või menüüelemendil. Kui kasutate tekstiredaktorit, salvestage programm, sulgege redaktor ja avage programm Pythoniga.