Kezdőoldal » Számítástechnika » Programozás » Meg tudja ezt valakit oldani?...

Meg tudja ezt valakit oldani? (Python)

Figyelt kérdés

Irjunk egy programot amely beolvas 10 számot, és kiírja hány páros van közöttük.

Próbálkoztam már vele 1 órát, de semmi.



2022. jan. 11. 19:26
1 2
 1/11 anonim ***** válasza:
86%
Igen.
2022. jan. 11. 19:26
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Köszi!
2022. jan. 11. 19:34
 3/11 anonim ***** válasza:
80%
Modulonak nézz utána.
2022. jan. 11. 19:37
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Az micsoda? Egy linket dobsz?
2022. jan. 11. 19:42
 5/11 anonim ***** válasza:
A Google kidob rá neked annyi linket amennyit nem akarsz.
2022. jan. 11. 19:56
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
100%

szamok = [int(input(f'Irj be egy szamot ({i}): ')) for i in range(10)]

print(len([szam for szam in szamok if szam % 2 == 0]))

2022. jan. 11. 20:03
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:
Köszi szépen!
2022. jan. 11. 20:13
 8/11 anonim ***** válasza:

Kód nélkül, csak a logikája:


Először is be kell kérni a felhasználótól egy számot (input), eltárolni egy változóban, majd megvizsgálni, hogy kettővel osztva mi a maradéka. A maradékos osztás a modulo, Pythonban a % operátorral tudsz ilyet elvégezni, pl. 6%2 eredménye 0. 7%2 eredménye 1.

Tehát azt kell vizsgálni egy felétellel (if), hogy a bekért változó %2 értéke nulla-e. És ezt kell tízszer megcsinálni, ezért az egészet egy tízszer futó ciklusba (for) kell tenni. A darabszám pedig többféleképpen megkapható: vagy egy "darab" (kezdetben nulla)változót növelsz, ha találsz párosat (if-en belül) vagy elmented a párosakat egy listába és nézed a hosszát (len), ahogy a #6 válaszban.

2022. jan. 12. 10:17
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Sosem ertem ezeket a python megoldasokat, mi ertelme listat generalni, ha semmi szukseg ra? Optimalizal valamit az interpreter, amitol gyorsabb lesz es igy megeri O(1) helyett O(n) space complexity-vel megoldani?

Meg csak feltetelvizsgalat sem kell ehhez a feladathoz.

2022. jan. 12. 10:29
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
100%

A kérdés, hogy mennyit értett, és tanult meg a kérdező a bemásolt megoldásból? Illetve, hogy mit szándékozik a tanulmányaival kezdeni? Gyanítom, nem művészeti gimibe jár, ha Pythonoznak infó órán. Szóval vélhetően informatikai szakma megszerzésére készül. Ekkor viszont felvetődik bennem, hogy egy ilyen egyszerű feladatnál a kész megoldás átnyújtásával mivel jutott a kérdező előbbre? (Azon túl, hogy lett némi extra szabadideje.)

Tapasztalatom, hogy néha jobb megszenvedni valamivel, mert úgy tanul az ember. A gondolkodás nem egy olyan dolog, amit be lehet magolni. Arra rá kell érezni, ami viszont csak rengeteg gyakorlás - és közben bizony több-kevesebb kudarc, tévedés, "szívás" - útján lehetséges.

Egyébként a legtöbb esetben célravezető, ha átgondolod, hogy fejben, illetőleg "offline" módon hogyan tudnád az adott feladatot megoldani? Hogyan döntöd el, hogy mikor páros egy szám? Ha 2-vel osztva nulla maradékot ad. Persze, a maradékképzésnek utána kell nézni, hogy hogyan kell megvalósítani, ami szintén nem baj, hiszen az információ megszerzése is egy fejlesztendő képesség. (Ami létszükséglet, ha akarod valamire vinni a szakmában.) De ha mégsem szeretnél keresni, az sem baj, létezik más megoldás is. Mondjuk elosztod a számot 2-vel, az eredményt kerekíted, ezt megszorzod 2-vel, és ha ugyanaz jön ki, akkor páros a szám. Ez a szép a programozásban - és a gondolkodásban -, hogy teret ad a kreativitásnak. Nincs olyan, hogy valamit így, vagy úgy KELL megcsinálni. Legfeljebb csak olyan van, hogy hogyan célszerű. De ha neked van valami más ötleted, ami működik, senki nem tiltja meg, hogy azt alkalmazd.

Az összeszámolást meg talán nem kell ecsetelnem. Fogsz egy (kezdetben 0 értékű) változót, és ahányszor páros számra bukkansz, mindig megnöveled 1-gyel.

Persze, ehhez azért a nagyon alapokkal, pl. a vezérlési szerkezetekkel (elágazás, ciklus, stb.) tisztában kell lenni. Ha ez nincs meg, akkor nem a feladatmegoldással van igazából problémád, hanem az alapok elsajátításával, ami persze némi tanulással és gyakorlással korrigálható.

2022. jan. 12. 12:17
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!