Python дээр асуулт хариултын тоглоом хэрхэн хийх вэ (зурагтай)

Агуулгын хүснэгт:

Python дээр асуулт хариултын тоглоом хэрхэн хийх вэ (зурагтай)
Python дээр асуулт хариултын тоглоом хэрхэн хийх вэ (зурагтай)

Видео: Python дээр асуулт хариултын тоглоом хэрхэн хийх вэ (зурагтай)

Видео: Python дээр асуулт хариултын тоглоом хэрхэн хийх вэ (зурагтай)
Видео: Excel програм дээр Drop down list/сонголттой "хариулт" хэрхэн хийх вэ, 2024, May
Anonim

Хэрэв та Python хэл сурахыг хүсч байвал текст дээр суурилсан энгийн тоглоомуудаас эхлэх нь зүйтэй. Энэ нийтлэлд асуулт хариултын тоглоом хэрхэн хийхийг танд үзүүлэх болно.

Алхам

947361 1
947361 1

Алхам 1. Хэрэв та хараахан амжаагүй байгаа бол Python -ийг суулгаарай

Python -ийн хоёр том хувилбар байдаг: Python 2 ба Python 3. Тэдгээр нь хоорондоо солигддоггүй бөгөөд Python 2 -ийн дэмжлэг 2020 онд дуусах тул энэ нийтлэлд та Python 3 -ийг суулгасан гэж үзэх болно.

947361 2
947361 2

Алхам 2. Текст засварлагч эсвэл Python IDE дээрээ шинэ файл нээнэ үү

. Py -ээр төгссөн тайлбарлах нэр өг.

947361 3
947361 3

Алхам 3. Санамсаргүй номын санг импортлох

Боломжит хариултуудыг санамсаргүй байдлаар цэгцлэхийн тулд танд хэрэгтэй болно.

947361 4
947361 4

Алхам 4. "QA" ангиллыг тодорхойлно уу

"QA" нь асуулт, зөв хариулт, бусад хариултуудын жагсаалтаас бүрдэнэ. _Init _ () функцийг QA () функцтэй шинэ QA объектыг үүсгэх болгонд дуудаж, аргументыг харгалзах атрибут руу дамжуулна. Төрөл:

анги QA: def _init _ (өөрөө, асуулт, зөв Хариулт, бусад Хариултууд): өөрөө. асуулт, асуулт өөрөө.corrAnsw = зөв хариулт өөрөө.өөрийн хариулт = бусад хариулт

947361 5
947361 5

Алхам 5. Чанарын үнэлгээний жагсаалтыг гаргах

Зарим зөв, буруу хариулттай зарим асуултыг бодоорой. Тус бүрээс QA объект үүсгэж, жагсаалтад оруулна уу. Жагсаалт нэлээд урт байх тул илүү сайн уншихын тулд та үүнийг олон мөрөөр таслах боломжтой. Энэ бүгдийг дараах кодоор хийдэг (таны текст өөр байж болно):

qaList = [QA ("Минск хаана байна?", "Беларусь улсад", ["Орос улсад", "ийм хот байдаггүй"]), QA ("Австралийн нийслэл гэж юу вэ?", "Канберра", ["Сидней", "Нью Йорк", "Австрали байхгүй"])), QA ("Дараахь зүйлсийн аль нь Дэлхий дээр байхгүй вэ?", "Амар амгалан тэнгис", ["Газар дундын тэнгис", "Балтийн тэнгис" "," Хойд тэнгис "]), QA (" Дараахь зүйлсийн аль нь тив биш вэ? "," Арктик ", [" Антарктид "," Америк "]), QA (" Дараахь зүйлсийн аль нь Африкийн улс биш вэ? ? "," Малайз ", [" Мадагаскар "," Жибути "," Өмнөд Африк "," Зимбабве "])]

947361 6
947361 6

Алхам 6. Хэр олон хариулт зөв байсныг тоолох хувьсагчийг нэмнэ үү

Эхэндээ үүнийг тэг болгож тохируулна уу. Мөр нэмэх:

corrCount = 0

947361 7
947361 7

Алхам 7. QA жагсаалтыг холих

Энэ нь таны асуултуудыг санамсаргүй байдлаар гаргах болно. Үүнийг дараах функцээр гүйцэтгэдэг.

санамсаргүй байдлаар. shuffle (qaList)

947361 8
947361 8

Алхам 8. Гогцоо хийх

Хөтөлбөр нь жагсаалтын зүйл бүрийг давж, түүнтэй хамт ямар нэгэн зүйл хийх ёстой. Энэ илэрхийллээр ийм гогцоо үүсгэнэ үү.

qaList дэх qaItem -ийн хувьд:

947361 9
947361 9

Алхам 9. Асуулт бүрийг гарга

Давталтын илэрхийллийн дараа мөрийг бичнэ үү.

хэвлэх (qaItem.question)

947361 10
947361 10

Алхам 10. Боломжит бүх хариултыг гарга

Зөв хариулт нь үргэлж ижил байрлалд байдаггүй тул тэд санамсаргүй байдлаар гарч ирэх ёстой. Түүнчлэн, хэрэглэгчийн хариултыг бүхэлд нь дахин оруулахгүйн тулд тэдгээрийг тоогоор оруулах ёстой. Дараах код нь үүнийг хийдэг:

print ("Боломжит хариултууд нь:") боломжтой = qaItem.otherAnsw + [qaItem.corrAnsw] # дөрвөлжин хаалт нь зөв хариултыг бусад жагсаалттай нэгтгэх жагсаалт болгон хувиргадаг. shuffle (боломжтой) count = 0 # жагсаалтын индексүүд питонд 0 -ээс эхэлдэг while count <len (боломжтой): хэвлэх (str (тоолох + 1) + ":" + боломжтой [тоо]) тоо + = 1

947361 11
947361 11

Алхам 11. Хэрэглэгчийн саналыг авна уу

Нэгдүгээрт, хэрэглэгчийн дугаарыг оруулах ёстой гэж хэлээрэй. Дараа нь хэрэглэгчийн оруулсан зүйл үнэхээр хариулттай тохирч байгаа эсэхийг шалгаарай. Хэрэв тийм биш бол хэрэглэгчид дахин хэлээрэй. Энэ кодыг ашиглаарай (гаралтын хувьд үүсгэсэн while давталтын гадна):

print ("Хариултынхаа дугаарыг оруулна уу:") userAnsw = input () байхад userAnsw.isdigit () биш: print ("Энэ бол тоо биш байсан. Хариултынхаа дугаарыг оруулна уу:") userAnsw = input () userAnsw = int (userAnsw) биш байхад (userAnsw> 0 ба userAnsw <= len (боломжтой)): print ("Энэ тоо ямар ч хариулттай тохирохгүй байна. Хариултынхаа дугаарыг оруулна уу:") userAnsw = input ()

947361 12
947361 12

Алхам 12. Хэрэглэгчийн хариулт зөв эсэхийг шалгана уу

Үүнийг хийхийн тулд хэрэглэгч дугаар оруулсан хариултын текстийг аваад зөв хариултын тексттэй харьцуулна уу. Хэрэв тэдгээр нь ижил байвал хэрэглэгчийн хариулт зөв байсан бөгөөд коррКаунт хувьсагчийг 1 -ээр нэмэгдүүлэх ёстой. Үгүй бол энэ нь буруу бөгөөд хэрэглэгчид зөв хариултыг хэлэх ёстой. Эцэст нь хоосон мөрийг хэвлээд дараагийн асуултанд зай нэмж өгнө үү. Дараах кодыг оруулна уу.

боломжтой бол [userAnsw-1] == qaItem.corrAnsw: хэвлэх ("Таны хариулт зөв байсан.") corrCount + = 1 өөр: хэвлэх ("Таны хариулт буруу байсан.") хэвлэх ("Зөв хариулт нь:" + qaItem. corrAnsw) хэвлэх ("")

947361 13
947361 13

Алхам 13. Дүгнэлт гаргах

Эцэст нь хэрэглэгч хичнээн олон асуултыг зөв хийснийг мэдэхийг хүсч магадгүй юм. Дараах хэллэгийг for-loop-ийн гадна нэмж хэлээрэй.

хэвлэх ("Та хариулсан" + str (corrCount) + "of" + str (len (qaList)) + "асуултуудад зөв хариулсан.")

947361 14
947361 14

Алхам 14. Кодыг шалгана уу

Догол мөрөнд онцгой анхаарал хандуулах хэрэгтэй. Таны бүрэн код яг одоо иймэрхүү харагдах ёстой:

санамсаргүй ангиллын QA импортлох: def _init _ (өөрөө, асуулт, зөв хариулт, бусад хариултууд): self.question = question self.corrAnsw = зөв хариулт self.otherAnsw = otherAnswers qaList = [QA ("Минск хаана байна?", "Беларусь улсад", ["Орос улсад", "ийм хот байдаггүй"])), QA ("Австралийн нийслэл гэж юу вэ?", "Канберра", ["Сидней", "Нью -Йорк", "Австрали байхгүй")]), QA ("Дараахь зүйлсийн аль нь Дэлхий дээр байхгүй вэ?", "Амар амгалангийн тэнгис", ["Газар дундын тэнгис", "Балтийн тэнгис", "Хойд тэнгис"]), QA ("Дараахь зүйлсийн аль нь биш вэ? тив үү? "," Арктик ", [" Антарктид "," Америк "]), QA (" Дараахь зүйлсийн аль нь Африкийн улс биш вэ? "," Малайз ", [" Мадагаскар "," Жибути "," Өмнөд Африк "," Зимбабве "])] corrCount = 0 random.shuffle (qaList) qaItem for qaList: print (qaItem.question) print (" Боломжит хариултууд нь: ") боломжтой = qaItem.otherAnsw + [qaItem.corrAnsw] # дөрвөлжин хаалт нь зөв хариултыг бусад жагсаалттай санамсаргүй байдлаар нэгтгэх жагсаалт болгон хувиргадаг. shuffle (боломжтой) count = 0 # жагсаалтын индексүүд 0 i n python байхад тоолох <len (боломжтой): хэвлэх (str (тоолох + 1) + ":" + боломжтой [тоо]) тоо + = 1 хэвлэх ("Хариултынхаа тоог оруулна уу:") userAnsw = input () while not userAnsw.isdigit (): print ("Энэ бол тоо биш байсан. Хариултынхаа дугаарыг оруулна уу: ") userAnsw = input () userAnsw = int (userAnsw) байхад биш (userAnsw> 0 ба userAnsw <= len (боломжтой)): print (" Энэ тоо ямар ч хариулттай тохирохгүй байна. Хариултынхаа дугаарыг оруулна уу: ") userAnsw = input () боломжтой бол [userAnsw-1] == qaItem.corrAnsw: print (" Таны хариулт зөв байсан. ") CorrCount += 1 өөр: хэвлэх (" Таны хариулт байсан буруу. ") хэвлэх (" Зөв хариулт нь: " + qaItem.corrAnsw) хэвлэх (" ") хэвлэх (" Та " + str (len (qaList)) +" -ийн + "асуултуудад зөв хариулсан" + str (corrCount) + "" байсан. ")

947361 15
947361 15

Алхам 15. Кодыг ажиллуулна уу

Хэрэв та IDE ашиглаж байгаа бол "Run" тэмдэг эсвэл цэсийн зүйл дээр дарна уу. Хэрэв та текст засварлагч ашиглаж байгаа бол програмаа хадгалаад редактороо хаагаад Python програмыг нээнэ үү.

Зөвлөмж

  • Зөв догол мөрийг анхаарч үзээрэй. Функц эсвэл ангийн тодорхойлолтын доторх кодыг давталтын дотор оруулдаг. Буруу догол мөр бүхий Python програм ажиллахгүй болно.
  • Хэрэв та тоглоомыг тасалдуулахыг хүсвэл Ctrl+C дарна уу.
  • Хэрэв та input () -ийн дуудлага бүрийг raw_input () дуудлагаар солих юм бол энэ програм Python 2 дээр ажиллах боловч Python 3 дээр ажиллахаа болино.

Зөвлөмж болгож буй: