TypeError, Stränghantering, Python
vokaler = 'aouåeiyäöAOUÅEIYÄÖ'
def allsprak(mening):
mening=mening.split()
for i in mening:
if mening[0] in vokaler:
return mening
mening=mening[1:] + mening[0]
return allsprak(mening)
print(allsprak(mening))
Jag har följande funktion som jag har skapat som jag vill ska ta en sträng (mening), splitta den till en lista och sedan för varje element (ord) i listan så vill jag att den ska ta alla bokstäver i ordet som ligger framför den första vokalen och sedan lägga de i slutet av ordet istället.
T.ex om jag har input:
Stort och fint träd
så vill jag få output:
ortSt och intf ädtr
Jag får däremot TypeError vid:
mening=mening[1:] + mening[0]
Om jag tar bort följande rad
(*)
mening=mening.split()
så får jag output:
ort och fint trädSt
Vill dock loopa igenom varje ord och måste därför ha kvar (*) för att kunna göra det.
Vet inte riktigt hur jag ska fixa till detta och skulle behöva hjälp.
Jag tror det ska vara i någonstans där det står mening, men det räcker nog inte. Det ska vara en loop i en loop, en yttre som tar fram ett ord i taget, och en inre som går igenom ordet.
Precis som Laguna skriver borde du ha nestade for-loopar för ord i meningen och den inre för bokstav i ordet.
def allsprak(inrad):
utrad=""
mening=inrad.split(" ")
for ord in mening:
for i in range(len(ord)):
if ord[i] in vokaler:
"Flytta om ordet m.h.a indexet i för första vokalen, lägg till i utrad"
break
return utrad
Lite pseudokod för dessa loopar, borde kunna hjälpa dig på traven.