Ако искате да научите Python, добре е да започнете с някои прости текстови игри. Тази статия ще ви покаже как да направите игра с тест.
Стъпки
Стъпка 1. Инсталирайте Python, ако още не сте го направили
Има две основни версии на Python: Python 2 и Python 3. Те не са взаимозаменяеми и поддръжката на Python 2 ще приключи през 2020 г., така че тази статия ще приеме, че сте инсталирали Python 3.
Стъпка 2. Отворете нов файл в текстов редактор или вашата Python IDE
Дайте му описателно име, което завършва с.py.
Стъпка 3. Импортирайте произволната библиотека
Ще ви е необходим, за да подредите на случаен принцип възможните отговори.
Стъпка 4. Определете клас "QA"
"QA" ще се състои от въпрос и правилен отговор и списък с възможни други отговори. Функцията _init _ () ще се извиква всеки път, когато създадете нов QA обект с функцията QA (), като неговите аргументи се предават в съответния атрибут. Тип:
клас QA: def _init _ (себе си, въпрос, правилен отговор, други отговори): self.question = въпрос self.corrAnsw = правильно Отговор self.otherAnsw = otherAnswers
Стъпка 5. Създайте списък с QA
Помислете за някои въпроси с един правилен и някои грешни отговори. Създайте QA обекти от всеки и ги поставете в списък. Тъй като списъкът ще бъде доста дълъг, можете да го разделите на няколко реда за по -добра четливост. Всичко това се прави със следния код (текстът ви може да е различен):
qaList = [QA ("Къде е Минск?", "в Беларус", ["в Русия", "такъв град не съществува"]), QA ("Коя е столицата на Австралия?", "Канбера", [„Сидни“, „Ню Йорк“, „Австралия не съществува“]), QA („Кое от изброените не е на Земята?“, „Море на спокойствие“, [„Средиземно море“, „Балтийско море "," Северно море "]), QA (" Кое от изброените не е континент? "," Арктика ", [" Антарктида "," Америка "]), QA (" Кое от следните не е африканска държава ? "," Малайзия ", [" Мадагаскар "," Джибути "," Южна Африка "," Зимбабве "])]
Стъпка 6. Добавете променлива, която брои колко отговора са верни
Задайте го на нула в началото. Добавете реда:
corrCount = 0
Стъпка 7. Разбъркайте списъка с QA
Това ще накара вашите въпроси да се появят в произволен ред. Това става със следната функция:
random.shuffle (qaList)
Стъпка 8. Направете цикъл
Програмата трябва да премине през всеки елемент от списъка и да направи нещо с него. Създайте такъв цикъл с този израз:
за qaItem в qaList:
Стъпка 9. Изведете всеки въпрос
След цикличния израз напишете реда:
печат (qaItem.question)
Стъпка 10. Изведете всички възможни отговори
Те трябва да се появяват в произволен ред, така че верният отговор да не е винаги на една и съща позиция. Освен това те трябва да бъдат предшествани от число, така че потребителят да не се налага да въвежда отново целия отговор. Следният код прави това:
print ("Възможните отговори са:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # квадратни скоби превръщат правилния отговор в списък за конкатенация с друг списък random.shuffle (възможен) count = 0 # индексите на списъка започват от 0 в python докато count <len (възможно): print (str (count + 1) + ":" + възможно [count]) count + = 1
Стъпка 11. Вземете данните от потребителя
Първо, кажете на потребителя, че трябва да въведе своя номер. След това проверете дали въведеното от потребителя наистина е число, което съответства на отговор. Ако не е така, кажете на потребителя отново. Използвайте този код (извън цикъла while, който сте създали за изхода):
print ("Моля, въведете номера на вашия отговор:") userAnsw = input (), но не userAnsw.isdigit (): print ("Това не беше число. Моля, въведете номера на вашия отговор:") userAnsw = input () userAnsw = int (userAnsw), докато не (userAnsw> 0 и userAnsw <= len (възможно)): print ("Това число не съответства на никакъв отговор. Моля, въведете номера на вашия отговор:") userAnsw = input ()
Стъпка 12. Проверете дали отговорът на потребителя е правилен
За да направите това, вземете текста на отговора, за който потребителят е въвел число и го сравнете с текста на правилния отговор. Ако те са еднакви, отговорът на потребителя е правилен и променливата corrCount трябва да се увеличи с 1. В противен случай това е грешно и на потребителя трябва да се каже правилния отговор. Накрая отпечатайте празен ред, за да добавите малко място към следващия въпрос. Въведете следния код:
ако е възможно [userAnsw-1] == qaItem.corrAnsw: print ("Вашият отговор беше правилен.") corrCount + = 1 else: print ("Вашият отговор беше грешен.") print ("Правилен отговор беше:" + qaItem. corrAnsw) print ("")
Стъпка 13. Изведете заключение
В крайна сметка потребителят вероятно иска да знае колко въпроса е получил правилно. Затова им кажете, като добавите следния израз извън цикъла for:
print ("Вие отговорихте" + str (corrCount) + "на" + str (len (qaList)) + "въпросите правилно.")
Стъпка 14. Проверете кода си
Обърнете специално внимание на вдлъбнатината. Пълният ви код трябва да изглежда така сега:
импортиране на произволен клас QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Къде е Минск?", "в Беларус", [„в Русия“, „такъв град не съществува“]), QA („Коя е столицата на Австралия?“, „Канбера“, [„Сидни“, „Ню Йорк“, „Австралия не съществува“]), QA („Кое от изброените не е на Земята?“, „Море на спокойствие“, [„Средиземно море“, „Балтийско море“, „Северно море“]), QA („Кое от изброените не е континент? "," Арктика ", [" Антарктида "," Америка "]), QA (" Кое от изброените не е африканска държава? "," Малайзия ", [" Мадагаскар "," Джибути "," Юг " Африка "," Зимбабве "])] corrCount = 0 random.shuffle (qaList) за qaItem в qaList: print (qaItem.question) print (" Възможните отговори са: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # квадратни скоби превръщат правилния отговор в списък за свързване с друг списък на случаен принцип. разбъркване (възможно) count = 0 # индексите на списъка започват от 0 i n python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Моля, въведете номера на вашия отговор:") userAnsw = input () докато не е userAnsw.isdigit (): print ("Това не беше число. Моля, въведете номера на вашия отговор: ") userAnsw = input () userAnsw = int (userAnsw), докато не (userAnsw> 0 и userAnsw <= len (възможно)): print (" Това число не отговаря на никакъв отговор. Моля, въведете номера на вашия отговор: ") userAnsw = input () ако е възможно [userAnsw-1] == qaItem.corrAnsw: print (" Вашият отговор беше правилен. ") CorrCount += 1 else: print (" Вашият отговор беше грешен. ") print (" Правилен отговор беше: " + qaItem.corrAnsw) print (" ") print (" Вие отговорихте " + str (corrCount) +" на " + str (len (qaList)) +" въпросите правилно. ")
Стъпка 15. Изпълнете кода
Ако използвате IDE, щракнете върху символа "Run" или елемента от менюто. Ако използвате текстов редактор, запишете програмата си, затворете редактора и отворете програмата си с Python.
Съвети
- Внимавайте за правилното вдлъбнатина. Кодът в определение на функция или клас е с отстъп, както и кодът в цикъл. Програма на Python с грешен отстъп няма да работи.
- Натиснете Ctrl+C, ако искате да прекъснете играта и да не я завършите.
- Ако замените всяко обаждане на input () с извикване на raw_input (), тази програма ще работи в Python 2, но ще спре да работи в Python 3.