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)
De igen, ismeri a Python. (-> python assignment operators) A ++, -- operátort nem ismeri.
Másold ide behúzásokkal együtt, mondjuk aláhúzásjellel _ a sorok elején.
Amúgy Pythonban a string nem változtatható. Egy másolatot kell csinálnod az eredetiről úgy, hogy már az eredmény kerüljön bele, vagy listában is tárolhatod a karaktereket, az módosítható.
i+=1 az létezik a pythonban, i++ nem létezik
Ez lesz a probléma:
"vegso=len(ch)-1"
nem hivatkozhatsz a paraméterek között egy másik paraméterre
nekem is santit a vegso=len(ch)-1,de ennelkul sem jo. A feladat szerint kell ennek a parameternek egy alapertelmezett ertek. de akkor hogy?
-------------
"nem valtoztathato a string" - ez a problema, KÖSZÖNÖM! De akkor hogy? Tegyem listaba a karaktereket mar modositva? es utana higy iratom ki szokoz nelkul?
Alap kerdesek, de meg csak itt tartok... 😁
igen az is igaz, hogy a stringet nem tudod módosítani, átírhatod egy tömbre: arr=list(ch) az elején
a végén meg vissza: return ''.join(arr)
Így pl beállítható, hogy a végéig menjen alapból, de nem a legszebb megoldás. Nem tudom hogy lehet szépen megoldani:
def karaktercsere(ch,ca1,ca2, kezdo=0, vegso=-1):
if vegso==-1:
vegso=len(ch)-1
ezer koszonet! :)
a tomboket meg nem tanultam, ergo kell lennie mas megoldasnak is... DE koszonom!!!
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!