Pythonban hogyan kellene megoldanom ezt a kettő feladatot?
gerard swinnen konyvbol tanulok es van ket feladat:
az első a 7es szorzotabla elso 20 tagjat kell kiiratnom:
a,b=7,1
while (b!=20)
_b=b+1
_print a*b
itt az a problema hogy a 7es nincs benne csak 14-tol 140-ig irja ki
a masik ahol mindig sikerul végtelenitenem
"Írjon egy programot, ami euróban kifejezett pézösszegeket kanadai dollárba vált át és az
eredményt egy táblázatba írja ki. A táblázatban a pézösszegek « geometriai haladvány »
szerint növekedjenek úgy, mint az alábbi példában :
1 euro = 1.65 dollar
2 euro = 3.30 dollar
4 euro = 6.60 dollar
8 euro = 13.20 dollar
stb. ( 16384 euronál kell megállni)"
köszi a segitsegeteket
-- idézet
a,b=7,1
while (b!=20)
_b=b+1
_print a*b
itt az a problema hogy a 7es nincs benne csak 14-tol 140-ig irja ki
-- idézet vége
Hát mivel a b kezdetben 1, és rögtön azzal kezded, hogy növeled, persze, hogy a*2-vel kezdi.
Két javaslat:
- !=20 helyett értelmesebb lenne <=20
- a b növelését a szorzás után tedd meg
a masodiknal is hasonlo a problemam
a,b= 1, 1.65
while (b!=16384):
_a=a*2
_print a, a*b
köszi mindkettot megoldottam
masik kerdes tegnap alltam neki tanulni a pythont 29 eves gepesztechnikus vagyok ha ilyen egyszeru feladatoknal elakadok az jelentheti hogy nincs hozza vénám?
Az ilyeneket, hogy b != 20 tényleg kerülni kell mint a tüzet, egy apró logikai hiba valahol, és végtelen ciklust kapsz, nem poén.
Ha végig akarsz menni x számon\elemen\akármin, akkor for ciklust használj, ne while t. A while pl akkor jó, ha nincs köze a számokhoz a futás feltételének(ilyen lehet pl egy pause funkció). Nem csak egyszerűbb, de a hibalehetőség is kisebb. Ebben az esetben így nézne ki az első
for i in range(1, 20):
print a*i
(régen nem pythonoztam, lehet, hogy az Range, illetve az sem kizárt, hogy másképp kell megadni neki az argumentumokat, de érted a lényeget, rövidebb, kevesebb a változó(illetve nem kevesebb, de a ciklus után az i nem létezik, nem fog bekavarni)
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!