Tek seferlik hesaplama döngüsü
Her Pokémon’un jenerasyonunu temsil eden bir tamsayı listesi oturumuna generations adıyla yüklendi. Her jenerasyonun sayısını toplamak ve bu sayıların toplam içindeki yüzde payını hesaplamak istiyorsun.
Aşağıdaki döngü bu işi yapmak için yazıldı:
for gen,count in gen_counts.items():
total_count = len(generations)
gen_percent = round(count / total_count * 100, 2)
print(
'generation {}: count = {:3} percentage = {}'
.format(gen, count, gen_percent)
)
Hadi bu döngüyü, tek seferlik bir hesabı döngünün dışına taşıyarak daha verimli hale getirelim.
Bu egzersiz, kursun bir parçasıdır
Verimli Python Kodu Yazmak
Egzersiz talimatları
collectionsmodülündenCounter'ı içe aktar.generationslistesinden her jenerasyonun sayısını toplamak içinCounter()kullan. Bunugen_countsolarak kaydet.- Tek seferlik bir hesabı döngünün dışına (üstüne) alacak şekilde daha iyi bir for döngüsü yaz. Orijinal for döngüsüyle aynı sözdizimini kullan (tek seferlik hesabı kopyala ve döngünün üstüne yapıştır).
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Import Counter
____
# Collect the count of each generation
gen_counts = ____
# Improve for loop by moving one calculation above the loop
total_count = ____
for gen,count in gen_counts.items():
gen_percent = round(count / total_count * 100, 2)
print('generation {}: count = {:3} percentage = {}'
.format(gen, count, gen_percent))