Python, Sträng- byter första och sista tecknet
Hej!
Jag behöver hjälp med denna fråga.
fråga 1: Skriv ett program, i Python, som läser in en sträng, byter första och sista tecknet i strängen och skriver ut resultatet på skärmen.
Exempel: Indata: 'Hejsan' --> Utdata: 'nejsaH'
fråga2: Skriv ett program som läser in en sträng, tar bort varje tecken med udda index och skriver ut resultatet på skärmen.
Här är exempel på kod för att få fram första tecknet:
# Get first character of string i.e. char at index position 0
first_char = sample_str[0]
print('First character : ', first_char)
tomast80 skrev:Här är exempel på kod för att få fram första tecknet:
# Get first character of string i.e. char at index position 0
first_char = sample_str[0]
print('First character : ', first_char)
Hej, tack för ditt svar. jag har inga problem att ta fram exempelvis olika tecken i form av "varannan tecken" eller från tecken 1 till och med tecken 6 som jag visar i exempel nedanför:
print("hejsvejs"[1:6])
ejsve
MEN vet tyvärr inte hur jag ändrar från Hejsan => nejsaH
tack för ditt svar!
Börja med att läsa in en sträng:
in_str=input('Input string:')
Sista tecket är
in_str[-1]
Alla tecken utom första och sista är:
in_str[1:len(in_str)-1]
Och förstatecknet är
in_str[0]
Så för att läsa in en sträng och sedan skriva ut strängen fast byta plats på första och sista tecket:
in_str=input('Input string:')
print(in_str[-1]+in_str[1:len(in_str)-1]+in_str[0])
str_1 = "hejsan"
print(str_1[-1]+str_1[1:5]+str_1[0:1])
nejsah
fråga 1 LÖST
fråga 2: fortfarande olöst
hejsvejs1 skrev:str_1 = "hejsan"
print(str_1[-1]+str_1[1:5]+str_1[0:1])nejsah
fråga 1 LÖST
fråga 2: fortfarande olöst
Du missar att du skall läsa in strängen i fråga 1.
Vidare har du hårdkodat längden på strängen. Så om man byter sträng till en med annan längd slutar din kod att fungera
joculator skrev:Börja med att läsa in en sträng:
in_str=input('Input string:')
Sista tecket är
in_str[-1]
Alla tecken utom första och sista är:
in_str[1:len(in_str)-1]
Och förstatecknet är
in_str[0]
Så för att läsa in en sträng och sedan skriva ut strängen fast byta plats på första och sista tecket:
in_str=input('Input string:') print(in_str[-1]+in_str[1:len(in_str)-1]+in_str[0])
Tack för ditt svar!!
vad menas len i detta?
len (kort för length) ger dig längden på strängen (antal tecken)
joculator skrev:hejsvejs1 skrev:str_1 = "hejsan"
print(str_1[-1]+str_1[1:5]+str_1[0:1])nejsah
fråga 1 LÖST
fråga 2: fortfarande olöst
Du missar att du skall läsa in strängen i fråga 1.
Vidare har du hårdkodat längden på strängen. Så om man byter sträng till en med annan längd slutar din kod att fungera
funkar på en annan sträng. Kan du förklara vad du menar med läsa in?
Testa med en sträng med annan längd. tex .... "telefonkatalog"
Med läsa in menas att ditt ptogram får strängen från tex en textfil eller som i mitt exempel att den som kör programmet får skriva in en sträng när den kör programmet.
Testa mitt exempel så ser du hur det fungerar.
Fråga 2 borde vara en egen tråd (för att det blir mindre rörigt).
Man kan lösa denna fråga på många sätt, vissa mer svårlästa än andra.
Här är en kort lösning som kanske inte är helt uppenbar:
in_str=input('Input string:')
print(in_str[::2])
Men du lär dig mer på att fundera fram en egen lösning och arbeta igenom den (med vår hjälp om du vill).