Hogyan tudom megírni ezt a scriptet?(Python)
Adott a feladat:"Írjon egy scriptet, melynek bemenetele két egész szám: a és b. A script kiírja az összes páros kétjegyű számot az [a, b] intervallumon."
Majdnem minden megvan, csak arra nem jöttem még rá, hogy hogyan tudom kiíratni a páros és kétjegyű számokat.
Idáig jutottam:
x1=eval(input("a: "))
x2=eval(input("b: "))
print(list(range(x1,x2,2)))
Nem eval(), hanem int().
Nem elég listává alakítani a range generátort, hanem meg kell vizsgálni a számokat egyesével. Tehát for ciklus kell.
Meg kell nézned, hogy az x1 páros-e, mert ha páratlan, akkor eggyel növelni kell, különben az istennek nem lesznek páros számaid a range-ből. "Gyorsíthatod" a szkriptet, ha nem x1-től, hanem x1 és a legkisebb páros kétjegyű szám maximumától indítod a range-t. Nem x2-ig, hanem x2 és a legnagyobb kétjegyű páros szám plusz 1 minimumáig.
Mutasd meg, ez alapján meddig jutottál...
szia, itt egy megoldás: [link]
Az eval valóban szokatlan, de a feladathoz teljesen jó megoldás. Még annyi kiegészítés az első válaszhoz, hogy a range az nem generátor.
Nem értek a python hoz.
Csinálsz egy ciklust ami a pl kisebb bekért számtól a nagyobb bekért számig megy. Először lecsekkolod melyik a kisebb. Aztán a páros számokon ugrálva végig kiíratod. A páros ahogy a páratlan számok is egymást követve kettővel következnek egymás után így könnyű dolgod van a kiíratásukkal. Ha az szám páros akkor a következő páros szám a x1+2 ha páratlan akkor is x1+2 de neked a párosak kellenek ezért ha az első szám páratlan akkor (x1+2)-1. Szóval még ciklus előtt meg kell tudni hogy páros e az első e vagy sem. Ha páratlan csinálhatod még azt is hogy megnöveled eggyel ciklus előtt.
// a kisebb megkeresése hogy emelkedő sorrendbe tudd kiíratni.
var lowest
if(x1 < x2)
lowest = x1
else
lowest = x2
if(lowest%2 == 2) //ha páratlan
++lowest // akkor párost csinálsz bele
// a ciklus ami x2 ig fut max.
while(lowest <= x2)
Print(lowest)
lowest+=2 // ugrás a kövi páros számra.
Előző vagyok elrontottam ezt a sort
if(lowest%2 == 2)
Így helyes
if(lowest%2 == 1)
Előző vagyok be néztem a feladatot szóval csak azokat a páros számokat kell kiírni amik kétjegyűek.
Tudod egy numerikus érték akkor kétjegyű ha az értéke 10 el egyenlő vagy nagyobb de 100 tól kisebb. Szóval amit fentebb írtam csak ki kell egészíteni egy extra feltételvizsgálattal a megfelelő helyen.
if(lowest>9 && lowest<100)
// Ez egy kétjegyű szám
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!