January 25, 2021
Working with strings in Python

Python – Strings

We would cover strings under the following topics:

  1. Introduction
  2. Accessing String Values
  3. Escape Characters
  4. Special String Operators
  5. Formatting a String
  6. Multi-line Strings
  7. Unicode Characters
  8. String Methods
  9. Watch the Video

 

1. Introduction

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[0]
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.

 

 

 3.Escape Characters

Escape characters are characters used for formatting a string output. They are also called non-printable characters. Escape characters are represented using backslash notation.

NotationHex characterWhat it means
\a0x07Bell or alert
\b0x08Backspace
\cxControl-x
\C-xControl-x
\e0x1bEscape
\f0x0cFormfeed
\M-\C-xMeta-Control-x
\n0x0aNewline character
\nnnOctal notation, where n is in the range 0.7
\r0x0dCarriage return
\s0x20Space
\t0x09Tab
\v0x0bVertical tab
\xCharacter x
\xnnHexadecimal 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”

OperatorOperation descriptionFor example
+Concatenation – Adds two strings togeterha + b will give HelloPython
*Repetition – Creates new strings, by joining multiple copies of the same stringa*2 will give -HelloHello
[]Slice – Produces the character from the specified indexa[1] will give e
[ : ]Range Slice – Gives the characters from the specified rangea[1:4] will give ell
inMembership – Returns true if a character exists in the specified stringH in a will give 1
not inMembership – Returns true if a character does not exist in the specified stringM not in a will give 1
r/RRaw 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:

FormatterConverts to
%ccharacter
%sstring conversion via str() prior to formatting
%isigned decimal integer
%dsigned decimal integer
%uunsigned decimal integer
%ooctal integer
%xhexadecimal integer (lowercase letters)
%Xhexadecimal integer (UPPERcase letters)
%eexponential notation (with lowercase ‘e’)
%Eexponential notation (with UPPERcase ‘E’)
%ffloating point real number
%gthe shorter of %f and %e
%Gthe 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.

SymbolWhat is does
*argument specifies width or precision.
left justification.
+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.
0pad 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.

SNMethods and brief description
1capitalize()Capitalizes first letter of particular string
2center(width, fillchar)Returns a space-padded string with the original string centered to a total of width columns.
3count(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.
4decode(encoding=’UTF-8′,errors=’strict’)Decodes the string using the codec registered for encoding. encoding defaults to the default string encoding.
5encode(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’.
6endswith(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
7expandtabs(tabsize=8)Expands tabs in string to multiple spaces; defaults to 8 spaces per tab if tabsize not provided.
8find(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.
9index(str, beg=0, end=len(string))Same as find(), but raises an exception if str not found.
10isalnum()Returns true if string has at least 1 character and all characters are alphanumeric and false otherwise.
11isalpha()Returns true if string has at least 1 character and all characters are alphabetic and false otherwise.
12isdigit()Returns true if string contains only digits and false otherwise.
13islower()Returns true if string has at least 1 cased character and all cased characters are in lowercase and false otherwise.
14isnumeric()Returns true if a unicode string contains only numeric characters. It returns false if otherwise.
15isspace()Returns true if string contains only whitespace characters. It returns false if otherwise.
16istitle()Returns true if string is properly “titlecased” and false otherwise.
17isupper()Returns true if string has at least one cased character and all cased characters are in uppercase. It returns if otherwise.
18join(seq)Merges the string representations of elements in sequence seq into a string, with separator string.
19len(string)Returns the length of the string. That is number of characters in the string
20ljust(width[, fillchar])Returns a space-padded string with the original string left-justified to a total of width columns.
21lower()Converts all uppercase letters in string to lowercase.
22lstrip()Removes all leading whitespace in string.
23maketrans()Returns a translation table to be used in translate function.
24max(str)Returns the max alphabetical character from the string str.
25min(str)Returns the min alphabetical character from the string str.
26replace(old, new [, max])Replaces all occurrences of old in string with new or at most max occurrences if max given.
27rfind(str, beg=0,end=len(string))Same as find(), but search backwards in string.
28rindex( str, beg=0, end=len(string))Same as index(), but searched backwards in the given string.
29rjust(width,[, fillchar])Returns a space-padded string with the original string right-justified to a total of width columns.
30rstrip()Removes all trailing whitespace of string.
31split(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.
32splitlines( num=string.count(‘\n’))Splits string at all (or num) NEWLINEs and returns a list of each line with NEWLINEs removed.
33startswith(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
34strip([chars])Performs both lstrip() and rstrip() on string.
35swapcase()Coverts uppercase letters to lowercase and lowercase letters to uppercase in a string.
36title()Returns the  “titlecased” version of string. This means that all words begin with uppercase and the rest are lowercase.
37translate(table, deletechars=””)Translates string according to translation table str(256 chars), removing those in the del string.
38upper()Converts the lowercase letters in string to uppercase.
39zfill (width)Returns the original string leftpadded with 0s to a total of width characters; intended for numbers. zfill() retains any sign given .
40isdecimal()Returns true if a unicode string contains only decimal characters. Returns false if othewise.

 

9. Watch the video

0 0 vote
Article Rating
Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Sifon
Sifon
1 year ago

How do I write a statement that only allows letters not numbers?

while True:
try:
name_of_subject = str(input(‘Please input the name of the course \n’))
print(‘ It\’s clear you want to calculate your average in ‘, name_of_subject)
break
except TypeError:
print(‘ Letters only please. Subject names are not numbers\n’)
except ValueError:
print(‘ Letters only please. Subject names are not numbers\n’)
except SyntaxError:
print(‘ Letters only please. Subject names are not numbers\n’)

this was what I write but it doesn give me errors for inputing numbers when my intention was to allow only letters.

trackback

[…] 9. Working with Strings […]