Numërimi dhe shuma

Është një rast shumë i zakonshëm që ne interesohemi vetëm për disa nga të dhënat nga një koleksion. Këtu do të praktikojmë si të llogarisim dhe, nëse është e nevojshme, numrat e shumave që na interesojnë, ose që plotësojnë ndonjë kusht.

Numërimi

Forma e përgjithshme e një programi (algoritmi) me të cilin numërojmë elementet e një koleksioni që plotësojnë një kusht të caktuar duket si kjo:

num = 0
for x in collection:
    if (x meets the condition):
        num += 1
print(num)

Deklarimi x + = a rrit vlerën e ndryshores x me a. Kjo është në të vërtetë një formë e shkurtuar e thënies :code: x = x + a, i cili i jep vlerën x + a variablës x.

     Deklarimi x - = a zvogëlon vlerën e ndryshores x me a. Kjo është një formë e shkurtuar e thënies x = x - a, i cili i jep vlerën x - a variablës x.

Në shembullin tonë, pohimi num + = 1 rrit vlerën e ndryshores br me 1.

Ushtrime dhe detyra

Shembull - takim:

     Drejtuesi i ekipit ka ofruar dy mundësi për kohën e takimit që do të zhvillohet nesër. Secili anëtar i ekipit shkroi në një tabelë se cili term do të ishte më i përshtatshëm për të (1 për mandatin e parë, 2 për të dytin). Ky informacion u transferua në rreshtin e parë të programit vijues.

     Plotësoni skenarin e programit, në mënyrë që duke pasur parasysh të dhënat për votimin e anëtarëve të ekipit, ai shtyp se sa votuan për të parin dhe sa për mandatin e dytë.

Për shembull, ne mund të llogarisim numrin e anëtarëve të ekipit që votuan për mandatin e parë, dhe pjesën tjetër llogaritim në fund.

Një mënyrë tjetër është të llogaritni votat si për mandatin e parë ashtu edhe për atë të dytë.

ose, duke supozuar se të dhënat janë “të pastra”, d.m.th., nuk ka vlera përveç 1 dhe 2:

Në rast se informacioni nuk dihet paraprakisht por duhet të futet, ne mund të shkruajmë një program si ky:

Në fillim të këtij programi, ne ngarkojmë numrin e votave n, atëherë përdorim loop for për të përsëritur ngarkimin dhe numërimin e një votimi n herë.

Detyrë - provë me shkrim:

     Disa njerëz morën testin e aftësisë së trafikut, që është parakusht për të marrë pjesën praktike të provimit. Një test konsiderohet i kaluar nëse numri i përgjigjeve të pasakta është më i vogël se ose i barabartë me 3.

     Në fillim të skenarit janë dhënë rezultatet e testit të një grupi kandidatësh (numri i përgjigjeve të pasakta për secilin person që e ka marrë testin). Plotësoni skenarin duke renditur sa kandidatë kanë kaluar testin.

Detyrë - pishinë

     Një grup fëmijësh po përgatitet një vizitë në pishinë. Çdokush më i vogël se 160 centimetra mund të shkojë vetëm në pishinën më të vogël. Organizatori interesohet se sa fëmijë janë nën 160 centimetra në mënyrë që të planifikojnë grupet.

     Lartësitë e fëmijëve jepen në fillim të programit. Përfundoni programin për të shtypur numrin e fëmijëve më të ulët se 160 centimetra.

Detyrë - lagështia

     Në një kopsht botanik, lagështia e tokës matet një herë në ditë për specie të rralla dhe të ndjeshme. Lagështia shprehet në numra nga 0 deri në 1, dhe kushtet për zhvillimin e bimëve konsiderohen të jenë të mira kur lagështia është midis 0.3 dhe 0.7 (përfshirë kufijtë).

     Vlerat e lagështisë (matur gjatë një periudhe kohe) jepen në fillim të skenarit. Plotësoni skenarin duke shtypur numrin e ditëve kur lagështia nuk ishte e mirë.

Mbledhja

Në një grup të madh të problemeve praktike, ne arrijmë në rezultat duke e ndërtuar gradualisht (akumuluar) atë ndërsa kalojmë nëpër të dhëna. Për shembull, nëse kemi nevojë për shumën e disa numrave, mund ta arrijmë atë në këtë mënyrë të përgjithshme:

total = 0
for num in collection:
    total += num
print(total)

Kur llogaritim shumën e të gjithë elementëve të një koleksioni, marrim të njëjtin rezultat duke thirrur funksionin sum:

print(sum(collection))

Do të përdorim formimin gradual të rezultateve kur na duhen vetëm disa elementë nga koleksioni, domethënë ato që plotësojnë kushtin e dhënë. Në këtë rast, algoritmi për llogaritjen e shumës në përgjithësi do të duket kështu:

total = 0
for num in collection:
    if (num meets the condition):
        total += num
print(total)

Për të marrë mesataren e të dhënave që plotësojnë një kusht, është e nevojshme të numërohen dhe të shtohen të dhëna të tilla, dhe pastaj të ndahen shumën e tyre sipas numrit të tyre. Në rastin e përgjithshëm, duket kështu:

total = 0
counter = 0
for num in collection:
    if (num meets the condition):
        total += num
        counter += 1
print(total / counter)

Vini re se në Python, shuma dhe mesatarja e elementeve të zgjedhur të koleksionit mund të merren në një mënyrë më të shkurtër dhe më efikase. Ne zgjodhëm metodën e mësipërme sepse duket pothuajse e njëjtë si në gjuhët e tjera të programimit.

Shembuj dhe detyra

Shembull - Rezultati mesatar i testit të IQ:

     Janë dhënë rezultatet e një testi IQ për një grup njerëzish. Një rezultat prej -1 do të thotë që personi nuk e ka marrë provën. Përfundoni programin duke shtypur mesataren e fituar në provë.

Ne mund ta shkruajmë programin kështu:

Detyrë - në detyrë:

     Në Ndërmarrjen X, të gjithë punonjësit herë pas here mbeten në thirrje. Norma për periudhën e mëparshme është 20 orë telefonatë. Hourdo orë shtesë (mbi 20 orë) në telefon paguhet gjithashtu. Jepet numri i orëve të thirrjeve për secilin punonjës, dhe drejtori dëshiron të dijë numrin e përgjithshëm të orëve në telefon mbi normën.

     Përfundoni programin duke llogaritur dhe shtypur numrin e përgjithshëm të orëve jashtë orarit në telefon.

Nëse zgjidhni detyrën si duhet, duhet të merrni rezultatin 25 për të dhënat e dhëna, pasi \((21-20)+(23-20)+(34-20)+(25-20)+(22-20)=25\).

Detyrë - rendimenti mesatar:

     Në një pemishte pas vitit të tretë, monitorohet rendimenti i kumbullës për pemë. Pemët me rendiment nën 3 kilogram konsiderohen të dëmtuara ose të sëmura dhe do të nxirren jashtë.

     Jepet rendimenti i të gjitha pemëve në pemishte. Përfundoni programin duke llogaritur dhe shtypur rendimentin mesatar të pemëve të shëndetshme (me rendiment prej 3 kilogramë ose më shumë).

Ju duhet të merrni një rezultat prej afërsisht 14,757 për të dhënat e dhëna.