ÎncepețiÎncepe gratuit

Buclă cu calcul unic

O listă de numere întregi care reprezintă generația fiecărui Pokémon a fost încărcată în sesiunea ta sub numele generations. Vrei să aduni numărul de apariții al fiecărei generații și să determini ce procent reprezintă fiecare generație din totalul de elemente.

Bucla de mai jos a fost scrisă pentru a îndeplini această sarcină:

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)
    )

Hai să facem această buclă mai eficientă, mutând calculul unic în afara buclei.

Acest exercițiu face parte din cursul

Scriere eficientă a codului Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă Counter din modulul collections.
  • Folosește Counter() pentru a număra apariția fiecărei generații din lista generations. Salvează rezultatul ca gen_counts.
  • Scrie o buclă for mai bună, care plasează un calcul unic în afara (deasupra) buclei. Folosește exact aceeași sintaxă ca în bucla originală (copiază și lipește pur și simplu calculul unic deasupra buclei).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul