Miért nem működik a Python függvényem? Légyszí oktassatok ki!
Egy adott karakterláncban kellene minden ca1 karaktert ca2 karakterre kicserelnie a kezdo indextol a vegsoig.
Ezt kreáltam:
def karaktercsere(ch,ca1,ca2,kezdo=0,vegso=len(ch)-1):
i=kezdo
while i<=vegso:
if ch[i]==ca1:
ch[i]=ca2 #itt a bibi
i+=1
return ch
szoveg="valami valamikor"
csere=karaktercsere(szoveg,'a','e',0,10)
print(csere)
# nagyon csúnya megoldással:
# (nem próbáltam ki, szóval lehet benne hiba)
i=kezdo
ch2=ch
while i<=vegso:
_if ch[i]==ca1:
__ch2=ch2[kezdo:i-1] + ca2 + ch2[i+1:-1]
_i+=1
return ch2
Mondtam, hogy elrontom! :)
__ch2=ch2[:i-1] + ca2 + ch2[i+1:]
De azért ellenőrizd.
1) Egyáltalán miért while-t használsz? Fölöslegesen az egész túl van komplikálva.
Egy string (és nem karakterlánc, az ilyen magyarított kifejezéseket meg ámblokk a magyar változóneveket felejtsd el, gusztustalan és nem is clean) nem módosítható így.
Stringben egyszerűen így lehet karaktert átcserélni:
mytext = 'hüje'
mytext = mytext.replace('j', 'ly')
print(mytext)
Akkor listává kell alakítani, for ciklussal végigiterálni aztán újra összefűzni stringgé.
Alapvetően itt fő gond, hogy a kérdező a while meg a for közti különbséget se érti.
> "a tomboket meg nem tanultam"
A Pythonban olyan beépített típusok vannak erre, hogy list, tuple, dictionary, ezeknek nézz majd utána. Tömb helyett neked a list fog kelleni.
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!