Strängar

En sträng består av en följd av tecken, d.v.s. bokstäver, siffror, specialtecken, ...

Strängar ("strängkonstanter") omges antingen med apostrofer (') eller citattecken ("). Om strängen omges med apostrofer kan den innehålla citattecken och om den omges av citattecken kan den innehålla apostrofer.

Exempel: 'Take it easy', "Elmer's tune" och 'Hamlet sade "Ur led är tiden"'.

Tecknen som omger strängen (apostroferna eller citationstecknen) hör inte till själva strängen och finns t ex inte med vid utskrift.

En flerraderssträng kan definieras med hjälp av tre av de omgivande tecknen. Exempel: Koden

verse = """Dromedaren med sin puckel går i öknen ut på ruckel""" print(verse)
ger utskriften
Dromedaren med sin puckel går i öknen ut på ruckel

Specialtecken

Strängar kan innehålla otryckbara specialtecken som "radbyte" (newline), tabulatortecken m fl. För att skriva sådana tecken använder man escape-tecknet \ (ofta kallat "backslash") följt av ett eller några tecken. Den viktigaste av dessa är \n för radbyte.

Exempel: print('Hej\nhopp!') skriver Hej på en rad och hopp! på nästa rad.

För att lagra escapetecknet i en sträng måste det föregå av ett escapetecken. Uttrycket print('\\\n\n\\') skriver alltså tre rader med en backslash på första och sista och en blank rad i mitten.

Operatorer för strängar

Kod Utskrift Kommentar
s = "Kilroy" s = s + ' was here'
Konkatenering.
print(s) Kilroy was here
print(s[0]) K
print(s[-2]) r Näst sista. Negativt index räknas bakifrån.
print(s[0:6]) Kilroy Delsträng från och med pos 0 till men inte med position 6.
print(s[:3]) Kil Från början (pos 0).
print(s[-4:-1]) her Till slutet men inte med sista.
print(s[-4:]) here Till slutet.
print('Ha' + 'ha'*3 + '!') Hahahaha! Repetering och konkatenering.
print('was' in s) True

Strängar kan också jämföras med relationsoperatorerna ==, !=, <, <=, > och >=.

Funktioner för strängar

Funktion Betydelse Exempel
float Tolkar strängen som ett flyttal. Fel om det inte går. float('42') -> 42.0
int Tolkar strängen som heltal. Fel om det inte går. int('42') -> 42
len Längden dvs antalet tecken. len('42') -> 2
list Skapar en lista av de ingående tecknen. list('42') -> ['4', '2']
ord Ger teckenkoden för sträng med 1 tecken. ord('a') -> 97
chr Inversen till ord . chr(97) -> 'a'

Strängmetoder

Strängklassen har ett stort antal metoder. Se den officiella dokumentationen för en fullständig förteckning och detaljer.

Observera: Eftersom strängobjekt är oföränderliga returnerar metoder som t ex replace, upper, etc. alltså nya strängobjekt. Originalen är oförändrade.

Metod Betydelse Exempel
count(string) Räknar antalet (icke överlappande) förekomster av en sträng. 'axxxxbxx'.count('x') -> 6
'axxxxbxx'.count('xx') -> 3
'axxxxbxx'.count('xxx') -> 1
find(string) s1.find(s2) returnerar index av den första förekomsten av s2 i s1, eller -1 om s2 inte förekommer i s1. 'abcd'.find('cd') -> 2
'abcd'.find('cde') -> -1
format(v1, v2, ...) Formatkonvertering. Se Formatering. '{:.2f}'.format(3.1) -> '3.10'
index(string) Som find men fel om strängen inte finns.
isalpha() True om bara bokstäver. 'åäöü'.isalpha() -> True
isdigit() True om bara siffror. '123'.isdigit() -> True
'123.'.isdigit() -> False
join(string) Förenar delarna. Se exempel. '-'.join('abc') -> 'a-b-c'
'**'.join('234') -> '2**3**4'
lower() Ger en ny sträng där alla versaler är utbytta mot motsvarande gemener. 'Ab+Åd2'.lower() -> 'ab+åd2'
lstrip() rstrip() strip() Tar bort blanktecken i början,
i slutet
samt både i början och slutet.
' hej '.lstrip() -> 'hej ' ' hej '.rstrip() -> ' hej' ' hej '.strip() -> 'hej'
partition(delim) Returnerar en tuppel. Se exemplet. 'name@address'.partition('@') ->
('name', '@', 'address')
replace(s1, s2) Byter alla förekomster av s1 mot s2. 'Meraaker'.replace('aa','å') ->
'Meråker'
split() split(delim) Gör en lista av delarna i strängen. Om parameter given används den som delare, annars används "white space". 'ta det lugnt'.split() ->
['ta', 'det', 'lugnt']
'ta det lugnt'.split('t') ->
['', 'a de', ' lugn', '']
upper Ger en ny sträng där alla gemenerer är utbytta mot motsvarande versaler. 'åäö'.upper() -> 'ÅÄÖ'

Tillbaka

Valid CSS!