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
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.
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.
Adım 3. Rastgele kitaplığı içe aktarın
Olası cevapları rastgele düzenlemek için buna ihtiyacınız olacak.
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
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"])]
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
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)
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:
Adım 9. Her sorunun çıktısını alın
Döngü ifadesinden sonra şu satırı yazın:
yazdır(qaItem.soru)
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
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()
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("")
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.")
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. ")
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.