Strings
See w3schools.com for more information and guidance in English.
A string is a sequence of characters, i.e. letters, numbers, symbols, ...
Strings ("string constants") expressed within Python code are surrounded by apostrophies (') or quotation marks ("). If the string is surrounded by apostrophies, it can contain quotation marks and if it is surrounded by quotation marks, it can contain apostopphies.
Example: 'Take it easy', "Elmer's tune" and 'Hamlet said "The time is out of joint"'.
The characters that surround the string (apostrophies or quotation marks) do note belong to the string itself and is not included when the string is printed.
A multi-line string can be defined with the help of three of the surrounding characters. Example: The code
Special characters / symbols
Strings can contain unprintable special characters such as "newline", "tabulator", etc.
To write such characters, you use the escape character \ (often called backslash) followed by one or several characters. The most important and widely used of these is \n for newline.
Example: print('Hello\nworld!') prints Hello on one line and world on the next line.
To store the escape character in a string, it must be preceded by another escape character.
The expression print('\\\n\n\\') writes three lines with a backslash on the first and the last, with a blank line in the middle.
String operators
-
Strings can be concatenated with the
+operator. -
Strings can be repeated with the
*operator. -
Single characters can be reached through the indexing (
[integer value]operator. -
Substrings can be created with
[start:stop]- and[start:stop:step] expressions. -
Membership can be tested with the
inoperator. Example:print('abc' in '123abc456')printsTrue.
| Code | Output | Comment |
|---|---|---|
| s = "Kilroy" s = s + ' was here' |
Concatenation. |
|
| print(s) | Kilroy was here | |
| print(s[0]) | K | |
| print(s[-2]) | r | Penultimate. Negative index counts in reverse. |
| print(s[0:6]) | Kilroy | Substring from (and including) pos 0 to (but not including) pos 6. |
| print(s[:3]) | Kil | From the start (pos 0) to (but not including) pos 3. |
| print(s[-4:-1]) | her | To the end but not including the last character. |
| print(s[-4:]) | here | From position -4 to the end. |
| print('Ha' + 'ha'*3 + '!') | Hahahaha! | Repetition and concatentation. |
| print('was' in s) | True |
String can also be compared with the relational operators (equals, not equals, inequalities)
==,
!=,
<,
<=,
> och
>=.
Functions for strings
| Funktion | Meaning | Example |
|---|---|---|
| float | Reinterprets the string as a floating-point number. Gives an error if that is not possible. | float('42') -> 42.0 |
| int | Reinterprets the string as an integer. Gives an error if that is not possible. | int('42') -> 42 |
| len | The length of the string, i.e. the number of characters. | len('42') -> 2 |
| list | Transforms the sequence of characters in the string into a list. | list('42') -> ['4', '2'] |
| ord | Gives the character code for a string with a single character. | ord('a') -> 97 |
| chr | The inverse of ord, giving the string from a character code. ord . | ord(97) -> 'a' |
Methods for strings
The string data-type (class) has a large number of methods. See the official documentation for a complete listing, and more details. More information.
Note:
Since string objects are immutable, methods like replace, upper, etc, new string objects. The original objects remains unchanged.
| Method | Meaning | Example |
|---|---|---|
| count(string) | Counts the number of (non-overlapping) occurrences of a string inside another string. | 'axxxxbxx'.count('x') -> 6 'axxxxbxx'.count('xx') -> 3 'axxxxbxx'.count('xxx') -> 1 |
| find(string) | s1.find(s2) returns the index of the first occurrence of s2 in s1, or -1 if s2 does not occur in s1. | 'abcd'.find('cd') -> 2 'abcd'.find('cde') -> -1 |
| format(v1, v2, ...) | Format conversion. See Formatting. | '{:.2f}'.format(3.1) -> '3.10' |
| index(string) | Like find but gives an error if the sought string does not occur in the string being searched. | |
| isalpha() | True if only letters. | 'åäöü'.isalpha() -> True |
| isdigit() | True if only numerals. | '123'.isdigit() -> True '123.'.isdigit() -> False |
| join(string) | Joins the strings into a single string. The parameter may be a string or a list. See the exemple. | '-'.join('abc') -> 'a-b-c' '**'.join('234') -> '2**3**4' |
| lower() | Gives a new string where all upper-case letters have been exchanged for corresponding lower-case letters. | 'Ab+Åd2'.lower() -> 'ab+åd2' |
| lstrip rstrip strip | Removes white space at the start or the end of the string, or both at the start and end | ' hej '.lstrip() -> 'hej ' ' hej '.rstrip() -> ' hej' ' hej '.strip() -> 'hej' |
| partition(delim) | Returns a tuple of strings, partitioning it by a given delimiter. See the example. | 'name@address'.partition('@') -> ('name', '@', 'address') |
| replace(s1, s2) | Exchanges all occurrences of s1 with s2. | 'Hej Name! Name is a nice name.'.replace('Name','Johan') -> 'Meråker' |
| split() split(delim) | Makes a list of the parts of the string. If an argument is provided, it is used as a delimiter, otherwise all "white space" is used to split the string. | 'take it easy'.split() -> ['take', 'it', 'easy'] 'take it easy'.split('t') -> ['', 'ake i', ' easy'] |
| upper | Gives a new string where all lower-case letters have been exchanged for corresponding upper-case letters. | 'åäö'.upper() -> 'ÅÄÖ' |