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() -> 'ÅÄÖ' |