We would cover strings under the following topics:
- Accessing String Values
- Escape Characters
- Special String Operators
- Formatting a String
- Multi-line Strings
- Unicode Characters
- String Methods
- Watch the Video
A string in Python is a sequence characters enclosed in quotes. However, both single and double quotes are treated the same in Python.
As you know, you don’t have to declare a string variable before using it. You simply need to assign a string to a variable. For example, the following statements creates strings:
channel = "Python Programming Tutorials" name = "Kindson The Genius"
2. Accessing String Values
It is important to note that Python does not have character type. It treats characters just the same a strings. So a single character is considered to be a string of length 1.
You can access string and also part of a string using the index. The index begins from 0 (the first character in the string) to the length of the string.
Let’s take for example:
channel = "Python Programming Tutorials" name = "Kindson The Genius" str1 = channel firstname = name[0:7] print(str1) print(firstname)"
If the above program executes, then the variable str1 would contain the letter P. Also, the variable firstname would contain the string Kindson.
Escape characters are characters used for formatting a string output. They are also called non-printable characters. Escape characters are represented using backslash notation.
|Notation||Hex character||What it means|
|\a||0x07||Bell or alert|
|\nnn||Octal notation, where n is in the range 0.7|
|\xnn||Hexadecimal notation. n is in the range from 0.9, a.f, or A.F|
4. Special String Operators
There are some operators that can be used to perform certain operations in a string. For example, joining two strings together or splitting a string into parts. Or maybe retrieving part of a string. The table below gives a list of these operators and their description.
Assuming a = “Hello” and b = “Python”
|Operator||Operation description||For example|
|+||Concatenation – Adds two strings togeterh||a + b will give HelloPython|
|*||Repetition – Creates new strings, by joining multiple copies of the same string||a*2 will give -HelloHello|
|||Slice – Produces the character from the specified index||a will give e|
|[ : ]||Range Slice – Gives the characters from the specified range||a[1:4] will give ell|
|in||Membership – Returns true if a character exists in the specified string||H in a will give 1|
|not in||Membership – Returns true if a character does not exist in the specified string||M not in a will give 1|
|r/R||Raw String – Suppresses actual meaning of the Escape characters. The syntax for raw strings is exactly the same as for normal strings with the exception of the raw string operator, the letter “r,” which precedes the quotation marks. The “r” can be lowercase (r) or uppercase (R) and must be placed immediately before the opening quotation mark.||print r’\n’ prints \n and print R’\n’prints \n|
|%||Format – Performs formatting on a string|
5. Formatting a String
A string can be formatted using the formatting operator, %. It kind of allows you to get the behavior of the printf() function used in C programming language.
To use it, you place the formatter inside a string and then specify the string that should be in place of the formatter. For example:
print("My first car was %s. I used if for %d years" %("Camry", 6))
If the above line executes, then the output will be:
My first car is Camry. I used if for 6 years
The complete list of string formatters are given in the table below:
|%s||string conversion via str() prior to formatting|
|%i||signed decimal integer|
|%d||signed decimal integer|
|%u||unsigned decimal integer|
|%x||hexadecimal integer (lowercase letters)|
|%X||hexadecimal integer (UPPERcase letters)|
|%e||exponential notation (with lowercase ‘e’)|
|%E||exponential notation (with UPPERcase ‘E’)|
|%f||floating point real number|
|%g||the shorter of %f and %e|
|%G||the shorter of %f and %E|
Other symbols that could also be used are given below. I recommend you try each of them to see how they work.
|Symbol||What is does|
|*||argument specifies width or precision.|
|+||display the sign.|
|<sp>||leaves a blank space before a positive number.|
|#||adds the octal leading zero ( ‘0’ ) or hexadecimal leading ‘0x’ or ‘0X’, depending on whether ‘x’ or ‘X’ were used.|
|0||pad from left with zeros|
|%||‘%%’ leaves you with a single string literal ‘%’|
|(var)||mapping variable (dictionary arguments)|
|m.n.||m is the minimum total width and n is the number of digits to display after the decimal point|
6. Multi-line Strings
Python also supports multi-line strings. This achieved using triple quotation marks. For example:
text = """It is very good for you to learn programming. I also think that starting with Python is probably the easiest way to achieve it. The remember to watch the videos"""
Also, you can place escape characters inside the multiline string. For example, you may want to force a new line, in that case you simple add \n inside the string. Try to watch the video to see how all these works.
7. Unicode String
A normal Python string is stored in memory as 8-bit ASCII code. While unicode strings are stored as 16-bit unicode. The benefit of this is to allow a wider range of character set. For example some foreign language characters or scripts. (eg Chinese!)
to create a unicode string, simply place letter u before the string. This is shown below:
ustr = u'Python Programing'
8. String Method
It’s important for you to know how to manipulate strings. This you can do using the string methods. A table of string methods and description is given below.
|SN||Methods and brief description|
|1||capitalize()Capitalizes first letter of particular string|
|2||center(width, fillchar)Returns a space-padded string with the original string centered to a total of width columns.|
|3||count(str, beg= 0,end=len(string))Counts how many times str occurs in string or in a substring of string if starting index beg and ending index end are given.|
|4||decode(encoding=’UTF-8′,errors=’strict’)Decodes the string using the codec registered for encoding. encoding defaults to the default string encoding.|
|5||encode(encoding=’UTF-8′,errors=’strict’)Returns encoded string version of string; on error, default is to raise a ValueError unless errors is given with ‘ignore’ or ‘replace’.|
|6||endswith(suffix, beg=0, end=len(string))Checks if string or a substring of string (if starting index beg and ending index end are given) ends with suffix; returns true if yes. Returns false if otherwise|
|7||expandtabs(tabsize=8)Expands tabs in string to multiple spaces; defaults to 8 spaces per tab if tabsize not provided.|
|8||find(str, beg=0 end=len(string))Determine if str occurs in string or in a substring of string if starting index beg and ending index end are given returns index if found and -1 otherwise.|
|9||index(str, beg=0, end=len(string))Same as find(), but raises an exception if str not found.|
|10||isalnum()Returns true if string has at least 1 character and all characters are alphanumeric and false otherwise.|
|11||isalpha()Returns true if string has at least 1 character and all characters are alphabetic and false otherwise.|
|12||isdigit()Returns true if string contains only digits and false otherwise.|
|13||islower()Returns true if string has at least 1 cased character and all cased characters are in lowercase and false otherwise.|
|14||isnumeric()Returns true if a unicode string contains only numeric characters. It returns false if otherwise.|
|15||isspace()Returns true if string contains only whitespace characters. It returns false if otherwise.|
|16||istitle()Returns true if string is properly “titlecased” and false otherwise.|
|17||isupper()Returns true if string has at least one cased character and all cased characters are in uppercase. It returns if otherwise.|
|18||join(seq)Merges the string representations of elements in sequence seq into a string, with separator string.|
|19||len(string)Returns the length of the string. That is number of characters in the string|
|20||ljust(width[, fillchar])Returns a space-padded string with the original string left-justified to a total of width columns.|
|21||lower()Converts all uppercase letters in string to lowercase.|
|22||lstrip()Removes all leading whitespace in string.|
|23||maketrans()Returns a translation table to be used in translate function.|
|24||max(str)Returns the max alphabetical character from the string str.|
|25||min(str)Returns the min alphabetical character from the string str.|
|26||replace(old, new [, max])Replaces all occurrences of old in string with new or at most max occurrences if max given.|
|27||rfind(str, beg=0,end=len(string))Same as find(), but search backwards in string.|
|28||rindex( str, beg=0, end=len(string))Same as index(), but searched backwards in the given string.|
|29||rjust(width,[, fillchar])Returns a space-padded string with the original string right-justified to a total of width columns.|
|30||rstrip()Removes all trailing whitespace of string.|
|31||split(str=””, num=string.count(str))Splits the string according to delimiter str (space if not provided) and returns list of substrings; split into at most num substrings if specified.|
|32||splitlines( num=string.count(‘\n’))Splits string at all (or num) NEWLINEs and returns a list of each line with NEWLINEs removed.|
|33||startswith(str, beg=0,end=len(string))Checks if string or a substring of string (if starting index beg and ending index end are given) starts with substring str. Returns true if yes. Returns false if otherwise|
|34||strip([chars])Performs both lstrip() and rstrip() on string.|
|35||swapcase()Coverts uppercase letters to lowercase and lowercase letters to uppercase in a string.|
|36||title()Returns the “titlecased” version of string. This means that all words begin with uppercase and the rest are lowercase.|
|37||translate(table, deletechars=””)Translates string according to translation table str(256 chars), removing those in the del string.|
|38||upper()Converts the lowercase letters in string to uppercase.|
|39||zfill (width)Returns the original string leftpadded with 0s to a total of width characters; intended for numbers. zfill() retains any sign given .|
|40||isdecimal()Returns true if a unicode string contains only decimal characters. Returns false if othewise.|