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#
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. |
|
int
|
Tolkar strängen som heltal. Fel om det inte går. |
|
len
|
Längden dvs antalet tecken. |
|
list
|
Skapar en lista av de ingående tecknen. |
|
ord
|
Ger teckenkoden för sträng med 1 tecken. |
|
chr
|
Inversen till |
|
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)
|
|
'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()
|
|
|
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. |
|
lstrip()
|
Tar bort blanktecken i början, |
|
rstrip()
|
i slutet |
|
strip()
|
samt både i början och slutet. |
|
partition(delim)
|
Returnerar en tuppel. Se exemplet. |
|
replace(s1, s2)
|
Byter alla förekomster av s1 mot s2. |
|
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. |
|