Python'da Bilgi Yarışması Nasıl Yapılır (Resimlerle)

İçindekiler:

Python'da Bilgi Yarışması Nasıl Yapılır (Resimlerle)
Python'da Bilgi Yarışması Nasıl Yapılır (Resimlerle)

Video: Python'da Bilgi Yarışması Nasıl Yapılır (Resimlerle)

Video: Python'da Bilgi Yarışması Nasıl Yapılır (Resimlerle)
Video: Python ile Saat ve Sayaç Yapımı - Digital Saat ve Geri Sayım Geliştirme 2024, Mayıs
Anonim

Python öğrenmek istiyorsanız, bazı basit metin tabanlı oyunlarla başlamak iyidir. Bu makale size bir bilgi yarışması oyununun nasıl yapıldığını gösterecektir.

adımlar

947361 1
947361 1

Adım 1. Henüz yapmadıysanız Python'u kurun

Python'un iki ana sürümü vardır: Python 2 ve Python 3. Bunlar birbirinin yerine geçemez ve Python 2 desteği 2020'de sona erecektir, bu nedenle bu makale Python 3'ü yüklediğinizi varsayacaktır.

947361 2
947361 2

Adım 2. Bir metin düzenleyicide veya Python IDE'nizde yeni bir dosya açın

.py ile biten açıklayıcı bir ad verin.

947361 3
947361 3

Adım 3. Rastgele kitaplığı içe aktarın

Olası cevapları rastgele düzenlemek için buna ihtiyacınız olacak.

947361 4
947361 4

Adım 4. Bir "QA" sınıfı tanımlayın

Bir "QA", bir soru ve bir doğru cevaptan ve olası diğer cevapların bir listesinden oluşacaktır. _init_() işlevi, QA() işleviyle yeni bir QA nesnesi oluşturduğunuzda, argümanları karşılık gelen özniteliğe aktarılarak çağrılır. Tip:

sınıf QA: def _init_(self, soru, doğruAnswer, otherAnswers): self.question = soru self.corrAnsw = doğruCevap self.otherAnsw = diğerAnswers

947361 5
947361 5

Adım 5. Bir QA listesi oluşturun

Bir doğru ve bazı yanlış cevapları olan bazı soruları düşünün. Her birinden KG nesneleri oluşturun ve bunları bir listeye koyun. Liste oldukça uzun olacağından, daha iyi okunabilirlik için birden çok satıra bölebilirsiniz. Bütün bunlar aşağıdaki kodla yapılır (metniniz farklı olabilir):

qaList = [QA("Minsk nerede?", "Belarus'ta", ["Rusya'da", "böyle bir şehir yok"]), QA("Avustralya'nın başkenti neresidir?", "Canberra", ["Sidney", "New York", "Avustralya yok"]), QA("Aşağıdakilerden hangisi Dünya'da değil?", "Huzur Denizi", ["Akdeniz", "Baltık Denizi" ", "Kuzey Denizi"]), QA("Aşağıdakilerden hangisi kıta değildir?", "Arctica", ["Antarctica", "Amerika"]), QA("Aşağıdakilerden hangisi bir Afrika ülkesi değildir? ?", "Malezya", ["Madagaskar", "Cibuti", "Güney Afrika", "Zimbabve"])]

947361 6
947361 6

Adım 6. Kaç cevabın doğru olduğunu sayan bir değişken ekleyin

Başlangıçta sıfıra ayarlayın. Satırı ekleyin:

corrCount = 0

947361 7
947361 7

Adım 7. KG listesini karıştırın

Bu, sorularınızın rastgele bir sırada görünmesini sağlayacaktır. Bu, aşağıdaki işlevle yapılır:

rastgele.shuffle(qaList)

947361 8
947361 8

Adım 8. Bir döngü yapın

Program, listenin her bir öğesini gözden geçirmeli ve onunla bir şeyler yapmalıdır. Bu ifadeyle böyle bir döngü oluşturun:

qaList'teki qaItem için:

947361 9
947361 9

Adım 9. Her sorunun çıktısını alın

Döngü ifadesinden sonra şu satırı yazın:

yazdır(qaItem.soru)

947361 10
947361 10

Adım 10. Tüm olası cevapları çıktılayın

Doğru cevabın her zaman aynı konumda olmaması için rastgele bir sırada görünmelidirler. Ayrıca, kullanıcının cevabın tamamını tekrar girmesine gerek kalmaması için önlerine bir sayı gelmelidir. Aşağıdaki kod bunu yapar:

print("Olası cevaplar:") olası = qaItem.otherAnsw + [qaItem.corrAnsw] # köşeli parantezler doğru cevabı diğer listelerle birleştirmek için listeye çevirir random.shuffle(olası) count = 0 # liste dizinleri python'da 0'dan başlar while sayısı < len(mümkün): print(str(sayım+1) + ": " + olası[sayım]) sayım += 1

947361 11
947361 11

Adım 11. Kullanıcının girdisini alın

İlk olarak, kullanıcıya numaralarını girmesi gerektiğini söyleyin. Ardından, kullanıcının girdiğinin gerçekten bir cevaba karşılık gelen bir sayı olup olmadığını kontrol edin. Değilse, kullanıcıya tekrar söyleyin. Bu kodu kullanın (çıktı için oluşturduğunuz while döngüsünün dışında):

print("Lütfen yanıtınızın numarasını giriniz:") userAnsw = input() değil, userAnsw.isdigit(): print("Bu bir sayı değildi. Lütfen yanıtınızın numarasını giriniz:") userAnsw = input() userAnsw = int(userAnsw) değil (userAnsw > 0 ve userAnsw <= len(mümkün)): print("Bu sayı herhangi bir cevaba karşılık gelmiyor. Lütfen yanıtınızın numarasını girin:") userAnsw = input()

947361 12
947361 12

Adım 12. Kullanıcının cevabının doğru olup olmadığını kontrol edin

Bunu yapmak için, kullanıcının bir sayı girdiği yanıtın metnini alın ve doğru yanıtın metniyle karşılaştırın. Aynı ise, kullanıcının cevabı doğrudur ve corrCount değişkeni 1 arttırılmalıdır. Aksi halde yanlıştır ve kullanıcıya doğru cevabın söylenmesi gerekir. Son olarak, bir sonraki soruya biraz boşluk eklemek için boş bir satır yazdırın. Aşağıdaki kodu girin:

mümkünse[userAnsw-1] == qaItem.corrAnsw: print("Cevabınız doğruydu.") corrCount += 1 else: print("Cevabınız yanlıştı.") print("Doğru cevap şuydu: " + qaItem. corrAnsw) yazdır("")

947361 13
947361 13

Adım 13. Bir sonuç çıktısı alın

Sonunda, kullanıcı muhtemelen kaç soruyu doğru bildiğini bilmek ister. Bu nedenle, for döngüsünün dışına aşağıdaki ifadeyi ekleyerek onlara söyleyin:

print(" + str(len(qaList)) + " sorularının " + str(corrCount) + " sorularını doğru yanıtladınız.")

947361 14
947361 14

Adım 14. Kodunuzu kontrol edin

Girintiye özellikle dikkat edin. Tam kodunuz şimdi şöyle görünmelidir:

rasgele sınıf içe aktar QA: def _init_(self, soru, rightAnswer, otherAnswers): self.question = soru self.corrAnsw = rightAnswer self.otherAnsw = otherAnswers qaList = [QA("Minsk nerede?", "Belarus'ta", ["Rusya'da", "böyle bir şehir yok"]), QA("Avustralya'nın başkenti neresidir?", "Canberra", ["Sidney", "New York", "Avustralya yok"]), QA("Aşağıdakilerden hangisi Dünya'da değildir?", "Huzur Denizi", ["Akdeniz", "Baltık Denizi", "Kuzey Denizi"]), QA("Aşağıdakilerden hangisi değildir? bir kıta?", "Arctica", ["Antarctica", "Amerika"]), QA("Aşağıdakilerden hangisi bir Afrika ülkesi değildir?", "Malezya", ["Madagaskar", "Cibuti", "Güney Africa", "Zimbabwe"])] corrCount = 0 qaList'teki qaItem için random.shuffle(qaList): print(qaItem.question) print("Olası cevaplar:") olası = qaItem.otherAnsw + [qaItem.corrAnsw] # köşeli parantezler doğru cevabı diğer listelerle birleştirmek için listeye çevirir random.shuffle(mümkün) count = 0 # liste indeksleri 0 i'den başlar n python while count < len(mümkün): print(str(count+1) + ": " + olası[count]) count += 1 print("Lütfen yanıtınızın numarasını giriniz:") userAnsw = input() userAnsw.isdigit() değilken: print("Bu bir sayı değildi. Lütfen yanıtınızın numarasını girin:") userAnsw = input() userAnsw = int(userAnsw) iken (userAnsw > 0 ve userAnsw <= len(mümkün)): print("Bu sayı herhangi bir cevaba karşılık gelmiyor. Lütfen yanıtınızın numarasını giriniz:") userAnsw = input() mümkünse[userAnsw-1] == qaItem.corrAnsw: print("Cevabınız doğruydu.") corrCount += 1 else: print("Cevabınız yanlış.") print("Doğru cevap: " + qaItem.corrAnsw) print("") print(" + str(len(qaList)) + " sorularının " + str(corrCount) + " sorularını doğru yanıtladınız. ")

947361 15
947361 15

Adım 15. Kodu çalıştırın

Bir IDE kullanıyorsanız, "Çalıştır" sembolüne veya menü öğesine tıklayın. Bir metin düzenleyici kullanıyorsanız, programınızı kaydedin, düzenleyiciyi kapatın ve programınızı Python ile açın.

İpuçları

  • Doğru girintiye dikkat edin. Bir işlevin veya sınıf tanımının içindeki kod, bir döngü içindeki kod gibi girintilidir. Yanlış girintili bir Python programı çalışmayacaktır.
  • Oyunu durdurmak ve bitirmek istemiyorsanız Ctrl+C tuşlarına basın.
  • Her input() çağrısını bir raw_input() çağrısıyla değiştirirseniz, bu program Python 2'de çalışır, ancak Python 3'te çalışmayı durdurur.

Önerilen: