Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Python
grosikdora3
kérdése
132
Írnom kell egy Python programot, amely bekér három számot a felhasználótól és kiírja a képernyőre a
legkisebb értéket ezek közül....ezt a feladatot valaki elmagyarázná nekem az elejétől?nagyon kezdő vagyok,de annál jobban szeretném megtanulni!Hol kezdjem,hogyan?előre köszönöm a segítséget!
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika
Válaszok
2
VF{ Informatikus }
válasza
Jó lett volna tudni, hogy milyen fejezet/lecke alkalmával kaptátok ezt a feladatot, hogy az elvárásoknak megfelelő megoldást javasolhassunk.
A legegyszerűbb megoldás ez volna:
print('A legkisebb:', min([int(input('Kérem az %d. számot: ' % (i + 1))) for i in range(3)]))
Hogy jobban lásd mi történik ott, szétszedem:
lista = []
for i in range(3):
szam = int(input('Kérem az %d. számot: ' % (i + 1)))
lista.append(szam)
legkisebb = min(lista)
print('A legkisebb:', legkisebb)
Itt már egyszerűbb követni a lépéseket:
• létrehozzuk a lista nevű változót és kezdőértékként egy üres listát rendelünk hozzá
• 3-szor végrehajtjuk a következőket:
• beolvasunk egy felhasználó által beírt karakterláncot, egész számmá alakítjuk és eltároljuk a szam változóban
• a szam változó értékét hozzácsapjuk a lista változóban tárolt lista végéhez
• a lista változóban tárolt értékek közül kikérjük a legkisebbet és eltároljuk a legkisebb változóban
• kiírjuk a legkisebb változó értékét
Korábban volt aki jelezte, hogy a tanára nem fogadta el a min() függvényt használó megoldást. Így oldhatjuk meg nélküle:
lista = []
for i in range(3):
szam = int(input('Kérem az %d. számot: ' % (i + 1)))
lista.append(szam)
legkisebb = None
for szam in lista:
if legkisebb == None or szam < legkisebb:
legkisebb = szam
print('A legkisebb:', legkisebb)
Itt a min() függvény helyére került új rész annyit tesz, hogy:
• létrehozzuk a legkisebb nevű változót és kezdőértékként None-t rendelünk hozzá
• sorra vesszük a lista változóban tárolt értékeket és mindegyikre végrehajtjuk a következőket:
• ha a legkisebb változó értéke None vagy a szam változó értéke kisebb mint a legkisebb értéke
• a szam változó értékét eltároljuk a legkisebb változóban
A fenti változtatásból látszik, hogy a számok listában tárolása szükségtelenné vált és a két ciklus utasítást összevonhatjuk:
legkisebb = None
for i in range(3):
szam = int(input('Kérem az %d. számot: ' % (i + 1)))
if legkisebb == None or szam < legkisebb:
legkisebb = szam
print('A legkisebb:', legkisebb)
A lépések mindegyike már ismerős a korábbi megoldásokból:
• létrehozzuk a legkisebb nevű változót és kezdőértékként None-t rendelünk hozzá
• 3-szor végrehajtjuk a következőket:
• beolvasunk egy felhasználó által beírt karakterláncot, egész számmá alakítjuk és eltároljuk a szam változóban
• ha a legkisebb változó értéke None vagy a szam változó értéke kisebb mint a legkisebb értéke
• a szam változó értékét eltároljuk a legkisebb változóban
• kiírjuk a legkisebb változó értékét
Sajnálatos módon láttam már olyan megoldást is, hogy külön hasonlítgatták a 3 számot:
szam1 = int(input('Kérem az 1. számot: '))
szam2 = int(input('Kérem az 2. számot: '))
szam3 = int(input('Kérem az 3. számot: '))
Remélhetőleg a fentiekből már érthető mi történt itt:
• beolvasunk egy felhasználó által beírt karakterláncot, egész számmá alakítjuk és eltároljuk a szam1 változóban
• beolvasunk egy felhasználó által beírt karakterláncot, egész számmá alakítjuk és eltároljuk a szam2 változóban
• beolvasunk egy felhasználó által beírt karakterláncot, egész számmá alakítjuk és eltároljuk a szam3 változóban
• ha a szam1 változó értéke kisebb mint a szam2 és szam3 változók értékei
• kiírjuk a szam1 változó értékét
• ha a szam2 változó értéke kisebb mint a szam3 változó értéke
• kiírjuk a szam2 változó értékét
• különben
• kiírjuk a szam3 változó értékét
Ez egy csúnya megoldás és legfeljebb olyan esetekben van létjogosultsága ha a feladat kiköti, hogy bizonyos nyelvi elemeket és/vagy függvényeket nem lehet használni.
1
Még nem érkezett komment!
Nayem{ Informatikus }
válasza
# Mivel az elején vagy, így próbáltam a legegyszerűbb módon vázolni,
# hogyan is néz ki ennek a feladatnak az egyik megoldása. Nyugodtan bemásolhatod az
# egész szöveget, amit írtam és futtathatod.
# Létrehozunk egy üres listát:
megadott_szamok_listaja = []
# Bekérjük a 3 számot a felhasználótól:
# (nem volt kikötve, hogy egész szám (int) legyen, így float-ot használtam)
szam_1 = float(input("1. szám: "))
szam_2 = float(input("2. szám: "))
szam_3 = float(input("3. szám: "))
# Az üres listát feltöltjük a megadott értékekkel:
megadott_szamok_listaja.append(szam_1)
megadott_szamok_listaja.append(szam_2)
megadott_szamok_listaja.append(szam_3)
# Kiíratjuk az értékekkel feltöltött listát:
# (feladat szerint nem kell)
print(f"A lista elemei: {megadott_szamok_listaja}")
# A min() függvénnyel kiíratjuk a lista legkisebb elemét:
print(f"A lista legkisebb eleme a(z) {min(megadott_szamok_listaja)}")
0
VF:
Szép, hogy egyszerűsíted a kódot a kezdő számára, de lett volna ott még egy lehetőség: ha már úgyis külön változókba olvastattad az értékeket, hagyd ki teljesen a megadott_szamok_listaja listát: min(szam_1, szam_2, szam_3) . Jócskán megrövidíti a kódot és ilyent én még nem mutattam neki.
3 hónapja1