Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

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

Főoldal » Középiskola » Informatika
385
Í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
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: '))

if szam1 < szam2 and szam1 < szam3:
    print('A legkisebb:', szam1)
elif szam2 < szam3:
    print('A legkisebb:', szam2)
else:
    print('A legkisebb:', szam3)

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

# 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