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
Verimli Python Kodu Yazmak
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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))