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
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
-
Strängar kan konkateneras med
+
-operatorn. -
Strängar kan mångfaldigas med
*
-operatorn. -
Enskilda tecken kan nås med indicering (
[heltalsvärde]
-operatorn). -
Delsträngar kan skapas med
[start:stop]
- och[start:stop:incr]
-uttryck. -
Medlemsskap kan testas med operatorn
in
.
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() -> 'ÅÄÖ' |