Working with Strings in Python 3

05 Sep, 2020
In Python, sequences of characters are referred to as Strings. It used in Python to record text information, such as names. Python strings are “immutable” which means they cannot be changed after they are created.
Strings can be created using single quotes, double quotes, or even triple quotes. Python treats single quotes the same as double-quotes.
Python3
# creating string# with single QuotesString = 'Hello Geek'print("Creating string with single quotes :", String)  # Creating String# with double QuotesString = "yes, I am Geek"print("Creating String with double quotes :", String)  # Creating String# with triple QuotesString = '''yes, I am Geek'''print("Creating String with triple quotes :", String)
Creating string with single quotes : Hello Geek
Creating String with double quotes : yes, I am Geek
Creating String with triple quotes : yes, I am Geek

Note: Be careful with quotes!
Python3
# creating string# with single quotesString = 'Yes' I am geek'print(String)
Output
  File "<ipython-input-10-794636cfedda>", line 3
    String = 'Yes' I am geek'
                   ^
SyntaxError: invalid syntax

The reason for the error above is the single quote in Yes’ I stopped the string. If you want to print ‘WithQuotes’ in python, this can’t be done with only single (or double) quotes alone, it requires simultaneous use of both. The best way to avoid this error use double-quotes. 
Example:
Python3
# this code prints the output within quotes. # print WithQuotes within single quotes print("'WithQuotes'") print("Hello 'Python'")     # print WithQuotes within single quotes print('"WithQuotes"') print('Hello "Python"')
'WithQuotes'
Hello 'Python'
"WithQuotes"
Hello "Python"

Note: For more information, refer Single and Double Quotes | Python
 Strings are a sequence of characters, which means Python can use indexes to call parts of the sequence. There are two ways of indexing.
Positive Indexing
Negative Indexing
Positive indexing
Python3
# creating a stringString = "GEEK"  # Show first element in stringprint("The 1st element is : ", String[0])  # Show 2nd element in stringprint("The 2nd element is : ", String[1])  print("The 3rd element is : ", String[2])print("The 4th element is : ", String[3])
The 1st element is :  G
The 2nd element is :  E
The 3rd element is :  E
The 4th element is :  K

Negative indexing
Python3
# creating a stringString = "GEEK"  # Show last element in stringprint("The 4th element is : ", String[-1])  # Show all element in stringprint("The 3rd element is : ", String[-2])  print("The 2nd element is : ", String[-3])print("The 1th element is : ", String[-4])
The 4th element is :  K
The 3rd element is :  E
The 2nd element is :  E
The 1th element is :  G

In Python, Updation or deletion of characters from a string is not allowed. This will cause an error because item assignment or item deletion from a String is not supported. Python can allow you to reassign a new string to an existing one string.
Python3
# Creating string String = "Geeks"  # assign new characterString[0] = "Hi!, Geeks"
Output
Traceback (most recent call last): File “/home/b298782a4e04df4950426bf4bd5bee99.py”, line 5, in <module>   String[0] = “Hi!, Geeks”TypeError: ‘str’ object does not support item assignment
Updating the entire String
Python3
# Creating stringString = "Hello Geeks"print("Before updating : ", String)  # updating entire stringString = "Geeksforgeeks"print("After updating : ", String)  # Update with indexingString = 'Hello World!'print("Updated String :- ", String[:6] + 'Python')
Before updating :  Hello Geeks
After updating :  Geeksforgeeks
Updated String :-  Hello Python

Python slicing is about obtaining a sub-string from the given string by slicing it respectively from start to end.Python slicing can be done in two ways.
slice() Constructor
Extending Indexing
Python3
# Creating a StringString = "Geekforgeeks"  s1 = slice(3)  # print everything except the first elementprint(String[s1])  # print everything UP TO the 6th indexprint(String[:6])  # print everything between both indexprint(String[1:7])
Gee
Geekfo
eekfor

Slicing with negative Index.
Python3
# Creating a StringString = "Geekforgeeks"  s1 = slice(-1)  # print everything except the last elementprint(String[s1])  # print everything between both indexprint(String[0:-3])
Geekforgeek
Geekforge

 We can use [ :  : ] for specifying the frequency to print elements. It specifies the step after which every element will be printed starting from the given index. If nothing is given then it starts from the 0th index.
Python3
# Creating a StringString = "Geekforgeeks"  # print everything with step 1print(String[::1])  # print everything with step 2print(String[2::2])  # print a string backwardsprint(String[::-1])
Geekforgeeks
efrek
skeegrofkeeG

Note: For more information, refer String Slicing in Python
str.format() and f-strings methods are used to add formatted objects to printed string statements. The string format() method formats the given string. It allows for multiple substitutions and value formatting.
Python3
# using format option in a simple stringString = 'Geeksforgeeks'print("{}, A computer science portal for geeks."      .format(String))  String = 'Geeks'print("Hello {}, How are you ?".format(String))  # formatting a string using a numeric constantval = 2print("I want {} Burgers! ".format(val))
Geeksforgeeks, A computer science portal for geeks.
Hello Geeks, How are you ?
I want 2 Burgers! 

Note: For more information, refer Python | format() function
Formatted f-string literals are prefixed with ‘f’ and curly braces { } containing expressions that will be replaced with their values.
Python3
# Creating stringString = 'GeekForGeeks'print(f"{String}: A Computer Science portal for geeks")  # Creating stringString = 'Geek'print(f"Yes, I am {String}")  # Manuplating int within {}bags = 3book_in_bag = 12print(f'There are total {bags * book_in_bag} books')  # work with dictionaries in f-stringsDic = {'Portal': 'Geeksforgeeks', 'for': 'Geeks'}print(f"{Dic['Portal']} is a computer science portal for {Dic['for']}")
GeekForGeeks: A Computer Science portal for geeks
Yes, I am Geek
There are total 36 books
Geeksforgeeks is a computer science portal for Geeks

Note: For more information, refer f-strings in Python 3 – Formatted string literals
python-string
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.