SharedSage genom exempel / Textsträngar.sagewsOpen in CoCalc

Textsträngar

En textsträng inleds och avslutsa med enkel eller dubbel citationstecken (' respektive ").
print "Hello World!"
Hello World!
Konkatenering av textsträngar görs med addition, d.v.s. operatorn plus (+).
str1 = 'Jag'
str2 = 'gillar'
str3 = 'Sage'
str = str1 + ' ' + str2 + ' ' + str3 + '!'
str
'Jag gillar Sage!'
Notera skillnaden mellan att anropa en textsträngsvariabel och att skriva ut den med print.
print str
Jag gillar Sage!
Antal element i en textsträng bestäms med funktionen len.
len(str)
16
En textsträng kan vara tom, d.v.s. sakna tecken.
len('')
0
De svenska bokstäverna å, Å, ä, Ä, ö och Ö kan ställa till en del bekymmer om de ingår i en textsträng.
'å'
print 'å'
'\xc3\xa5' å
Internt behöver Sage dubbelt minnesutrymme för att lagra dessa bokstäver.
len('å')
2
Det kan vi lösa genom att mata in textsträngen kodad i UTF-8. Det gör vi genom att lägga till prefixet u till textsträngen.
sve_str = u'Åäö'
len(sve_str)
3
Första tecknet i en textsträng har positionen 00, andra tecknet har positionen 11, o.s.v.. Med hakparentes kan vi hänvisa till en delsträng.
str[2:8]
'g gill'
Det sista elementet i en textsträng.
str[-1]
'!'
De tre sista tecknen i textsträngen str.
str[-3:]
'ge!'
Det går inte att ändra enskilda tecken i en textsträng. Vi kan inte skriva str[-1] = '.' om vi vill ändra utropstecknet i str till en punkt. Ett alternativ är att plocka ut de delsträngar som vi inte vill ändra och konkatenera med de nya tecknen.
str[:-1] + '.'
'Jag gillar Sage.'
Man kan även splittra en textsträng till en lista av tecken, ändra i listan och sedan konkatenera till en textsträng.
ny_str = list(str)
ny_str
['J', 'a', 'g', ' ', 'g', 'i', 'l', 'l', 'a', 'r', ' ', 'S', 'a', 'g', 'e', '!']
ny_str[-1] = '.'
ny_str
['J', 'a', 'g', ' ', 'g', 'i', 'l', 'l', 'a', 'r', ' ', 'S', 'a', 'g', 'e', '.']
Genom att applicera join på en tom textsträng med listan som indata, så konkateneras elementen i listan med den tomma textsträngen som 'klister'.
''.join(ny_str)
'Jag gillar Sage.'
Det går med andra ord bra att lägga till valfri textsträng mellan varje tecken.
'-'.join(ny_str)
'J-a-g- -g-i-l-l-a-r- -S-a-g-e-.'
Man kan även använda funktionen replace.
ny_str = str.replace('gillar', u'älskar')
print ny_str
Jag älskar Sage!
Det finns flera funktioner och metoder för textstränga implementerade. För att få en lista skriver man variabelnamnet för en textsträngvariabel följt av punkt och trycker sedan tabulator.
str.swapcase()
'jAG GILLAR sAGE!'
str.upper()
'JAG GILLAR SAGE!'
str.index('i')  # positionen för första i:et i textsträngen.
5