Any data type written as text is a string. Any data under single, double, or triple quotes are strings. There are different string methods and built-in functions to deal with string data types. To check the length of a string use the len() method.
Creating a String
letter='P'# A string could be a single character or a bunch of textsprint(letter) # Pprint(len(letter)) # 1greeting='Hello, World!'# String could be made using a single or double quote,"Hello, World!"print(greeting) # Hello, World!print(len(greeting)) # 13sentence="I hope you are enjoying 30 days of Python Challenge."print(sentence)
A multiline string is created by using triple single (”’) or triple double quotes (“””). See the example below.
multiline_string='''I am a teacher and enjoy teaching.I didn't find anything as rewarding as empowering people.That is why I created 30 days of python.'''print(multiline_string)
# Another way of doing the same thingmultiline_string="""I am a teacher and enjoy teaching.I didn't find anything as rewarding as empowering people.That is why I created 30 days of python."""print(multiline_string)
String Concatenation
We can connect strings together. Merging or connecting strings is called concatenation. See the example below:
first_name='Tech'last_name='G'space=' 'full_name=first_name+space+last_nameprint(full_name) # Tech G# Checking the length of a string using len() built-in functionprint(len(first_name)) # 4print(len(last_name)) # 1print(len(first_name) >len(last_name)) # Trueprint(len(full_name)) # 6
Escape Sequences in Strings
In Python and other programming languages, \ followed by a character is an escape sequence. Let us see the most common escape characters:
\n: new line
\t: Tab means(8 spaces)
\\: Backslash
\’: Single quote (‘)
\”: Double quote (“)
Now, let us see the use of the above escape sequences with examples.
print('I hope everyone is enjoying the Python Challenge.\nAre you ?') # line breakprint('Days\tTopics\tExercises') # adding tab space or 4 spaces print('Day 1\t3\t5')
print('Day 2\t3\t5')
print('Day 3\t3\t5')
print('Day 4\t3\t5')
print('This is a backslash symbol (\\)') # To write a backslashprint('In every programming language it starts with \"Hello, World!\"') # to write a double quote inside a single quote# outputIhopeeveryoneisenjoyingthePythonChallenge.
Areyou ?
DaysTopicsExercisesDay155Day2620Day3523Day4135Thisisabackslashsymbol (\)
Ineveryprogramminglanguageitstartswith"Hello, World!"
String formatting
Old Style String Formatting (% Operator)
In Python, there are many ways of formatting strings. In this section, we will cover some of them. The “%” operator is used to format a set of variables enclosed in a “tuple” (a fixed size list), together with a format string, which contains normal text together with “argument specifiers”, special symbols like “%s”, “%d”, “%f”, “%.number of digitsf”.
%s – String (or any object with a string representation, like numbers)
%d – Integers
%f – Floating point numbers
“%.number of digitsf” – Floating point numbers with fixed precision
# Strings onlyfirst_name='Tech'last_name='G'language='Python'formated_string='I am %s %s. I teach %s'%(first_name, last_name, language)
print(formated_string)
# Strings and numbersradius=10pi=3.14area=pi*radius**2formated_string='The area of circle with a radius %d is %.2f.'%(radius, area) # 2 refers the 2 significant digits after the pointpython_libraries= ['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']
formated_string='The following are python libraries:%s'% (python_libraries)
print(formated_string) # "The following are python libraries:['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']"
New Style String Formatting (str.format)
This formatting is introduced in Python version 3.
first_name='Tech'last_name='G'language='Python'formated_string='I am {} {}. I teach {}'.format(first_name, last_name, language)
print(formated_string)
a=4b=3print('{} + {} = {}'.format(a, b, a+b))
print('{} - {} = {}'.format(a, b, a-b))
print('{} * {} = {}'.format(a, b, a*b))
print('{} / {} = {:.2f}'.format(a, b, a/b)) # limits it to two digits after decimalprint('{} % {} = {}'.format(a, b, a%b))
print('{} // {} = {}'.format(a, b, a//b))
print('{} ** {} = {}'.format(a, b, a**b))
# output4+3=74-3=14*3=124/3=1.334%3=14//3=14**3=64# Strings and numbersradius=10pi=3.14area=pi*radius**2formated_string='The area of a circle with a radius {} is {:.2f}.'.format(radius, area) # 2 digits after decimalprint(formated_string)
String Interpolation / f-Strings (Python 3.6+)
Another new string formatting is string interpolation, f-strings. Strings start with f and we can inject the data in their corresponding positions.
Python strings are sequences of characters and share their basic methods of access with other Python-ordered sequences of objects – lists and tuples. The simplest way of extracting single characters from strings (and individual members from any sequence) is to unpack them into corresponding variables.
Unpacking Characters
language = 'Python'
a,b,c,d,e,f = language # unpacking sequence characters into variables
print(a) # P
print(b) # y
print(c) # t
print(d) # h
print(e) # o
print(f) # n
Accessing Characters in Strings by Index
In programming, counting starts from zero. Therefore the first letter of a string is at zero index and the last letter of a string is the length of a string minus one.
If we want to start from the right end we can use negative indexing. -1 is the last index.
language='Python'last_letter=language[-1]
print(last_letter) # nsecond_last=language[-2]
print(second_last) # o
Slicing Python Strings
In Python we can slice strings into substrings.
language='Python'first_three=language[0:3] # starts at zero index and up to 3 but not include 3print(first_three) #Pytlast_three=language[3:6]
print(last_three) # hon# Another waylast_three=language[-3:]
print(last_three) # honlast_three=language[3:]
print(last_three) # hon
Many string methods allow us to format strings. See some of the string methods in the following example:
capitalize(): Converts the first character of the string to a capital letter
challenge='thirty days of python'print(challenge.capitalize()) # 'Thirty days of python'
count(): returns occurrences of substring in string, count(substring, start=.., end=..). The start is a starting indexing for counting and the end is the last index to count.
challenge='thirty days of python'print(challenge.count('y')) # 3print(challenge.count('y', 7, 14)) # 1, print(challenge.count('th')) # 2`
endswith(): Checks if a string ends with a specified ending
challenge='thirty days of python'print(challenge.endswith('on')) # Trueprint(challenge.endswith('tion')) # False
expandtabs(): Replaces tab character with spaces, default tab size is 8. It takes the tab size argument
challenge='thirty\tdays\tof\tpython'print(challenge.expandtabs()) # 'thirty days of python'print(challenge.expandtabs(10)) # 'thirty days of python'
find(): Returns the index of the first occurrence of a substring, if not found returns -1
challenge='thirty days of python'print(challenge.find('y')) # 16print(challenge.find('th')) # 17
rfind(): Returns the index of the last occurrence of a substring, if not found returns -1
challenge='thirty days of python'print(challenge.rfind('y')) # 5print(challenge.rfind('th')) # 1
format(): formats string into a nicer output
More about string formatting check this link
first_name='Asabeneh'last_name='Yetayeh'age=250job='teacher'country='Finland'sentence='I am {} {}. I am a {}. I am {} years old. I live in {}.'.format(first_name, last_name, age, job, country)
print(sentence) # I am Asabeneh Yetayeh. I am 250 years old. I am a teacher. I live in Finland.radius=10pi=3.14area=pi*radius**2result='The area of a circle with radius {} is {}'.format(str(radius), str(area))
print(result) # The area of a circle with radius 10 is 314
index(): Returns the lowest index of a substring, additional arguments indicate the starting and ending index (default 0 and string length – 1). If the substring is not found it raises a valueError.
challenge='thirty days of python'sub_string='da'print(challenge.index(sub_string)) # 7print(challenge.index(sub_string, 9)) # error
rindex(): Returns the highest index of a substring, additional arguments indicate the starting and ending index (default 0 and string length – 1)
challenge='thirty days of python'sub_string='da'print(challenge.rindex(sub_string)) # 8print(challenge.rindex(sub_string, 9)) # error
isalnum(): Checks alphanumeric character
challenge='ThirtyDaysPython'print(challenge.isalnum()) # Truechallenge='30DaysPython'print(challenge.isalnum()) # Truechallenge='thirty days of python'print(challenge.isalnum()) # False, space is not an alphanumeric characterchallenge='thirty days of python 2019'print(challenge.isalnum()) # False
isalpha(): Checks if all string elements are alphabet characters (a-z and A-Z)
challenge='thirty days of python'print(challenge.isalpha()) # False, space is once again excludedchallenge='ThirtyDaysPython'print(challenge.isalpha()) # Truenum='123'print(num.isalpha()) # False
isdecimal(): Checks if all characters in a string are decimal (0-9)
challenge='thirty days of python'print(challenge.isdecimal()) # Falsechallenge='123'print(challenge.isdecimal()) # Truechallenge='\u00B2'print(challenge.isdigit()) # Falsechallenge='12 3'print(challenge.isdecimal()) # False, space not allowed
isdigit(): Checks if all characters in a string are numbers (0-9 and some other unicode characters for numbers)
isidentifier(): Checks for a valid identifier – it checks if a string is a valid variable name
challenge='30DaysOfPython'print(challenge.isidentifier()) # False, because it starts with a numberchallenge='thirty_days_of_python'print(challenge.isidentifier()) # True
islower(): Checks if all alphabet characters in the string are lowercase
challenge='thirty days of python'print(challenge.islower()) # Truechallenge='Thirty days of python'print(challenge.islower()) # False
isupper(): Checks if all alphabet characters in the string are uppercase
challenge='thirty days of python'print(challenge.isupper()) # Falsechallenge='THIRTY DAYS OF PYTHON'print(challenge.isupper()) # True
strip(): Removes all given characters starting from the beginning and end of the string
challenge='thirty days of pythoonnn'print(challenge.strip('noth')) # 'irty days of py'
replace(): Replaces substring with a given string
challenge='thirty days of python'print(challenge.replace('python', 'coding')) # 'thirty days of coding'
split(): Splits the string, using given string or space as a separator
challenge='thirty days of python'print(challenge.split()) # ['thirty', 'days', 'of', 'python']challenge='thirty, days, of, python'print(challenge.split(', ')) # ['thirty', 'days', 'of', 'python']
title(): Returns a title cased string
challenge='thirty days of python'print(challenge.title()) # Thirty Days Of Python
swapcase(): Converts all uppercase characters to lowercase and all lowercase characters to uppercase characters
challenge='thirty days of python'print(challenge.swapcase()) # THIRTY DAYS OF PYTHONchallenge='Thirty Days Of Python'print(challenge.swapcase()) # tHIRTY dAYS oF pYTHON
startswith(): Checks if String Starts with the Specified String
challenge='thirty days of python'print(challenge.startswith('thirty')) # Truechallenge='30 days of python'print(challenge.startswith('thirty')) # False
Now do some exercises for your brain and muscles.
Exercises – Day 4
Concatenate the string ‘Thirty’, ‘Days’, ‘Of’, ‘Python’ to a single string, ‘Thirty Days Of Python’.
Concatenate the string ‘Coding’, ‘For’ , ‘All’ to a single string, ‘Coding For All’.
Declare a variable named company and assign it to an initial value “Coding For All”.
Print the variable company using print().
Print the length of the company string using len() method and print().
Change all the characters to uppercase letters using upper() method.
Change all the characters to lowercase letters using lower() method.
Use capitalize(), title(), swapcase() methods to format the value of the string Coding For All.
Cut(slice) out the first word of Coding For All string.
Check if Coding For All string contains a word Coding using the method index, find or other methods.
Replace the word coding in the string ‘Coding For All’ to Python.
Change Python for Everyone to Python for All using the replace method or other methods.
Split the string ‘Coding For All’ using space as the separator (split()) .
“Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon” split the string at the comma.
What is the character at index 0 in the string Coding For All.
What is the last index of the string Coding For All.
What character is at index 10 in “Coding For All” string.
Create an acronym or an abbreviation for the name ‘Python For Everyone’.
Create an acronym or an abbreviation for the name ‘Coding For All’.
Use index to determine the position of the first occurrence of C in Coding For All.
Use index to determine the position of the first occurrence of F in Coding For All.
Use rfind to determine the position of the last occurrence of l in Coding For All People.
Use index or find to find the position of the first occurrence of the word ‘because’ in the following sentence: ‘You cannot end a sentence with because because because is a conjunction’
Use rindex to find the position of the last occurrence of the word because in the following sentence: ‘You cannot end a sentence with because because because is a conjunction’
Slice out the phrase ‘because because because’ in the following sentence: ‘You cannot end a sentence with because because because is a conjunction’
Find the position of the first occurrence of the word ‘because’ in the following sentence: ‘You cannot end a sentence with because because because is a conjunction’
Slice out the phrase ‘because because because’ in the following sentence: ‘You cannot end a sentence with because because because is a conjunction’
Does ”Coding For All’ start with a substring Coding?
Does ‘Coding For All’ end with a substring coding?
‘ Coding For All ‘ , remove the left and right trailing spaces in the given string.
Which one of the following variables returns True when we use the method isidentifier():
Python in 30Days
python_in_thirty_days
The following list contains the names of some of Python libraries: [‘Django’, ‘Flask’, ‘Bottle’, ‘Pyramid’, ‘Falcon’]. Join the list with a hash with a space string.
Use the new line escape sequence to separate the following sentences.
Iamenjoyingthischallenge.
Ijustwonderwhatisnext.
Use a tab escape sequence to write the following lines.
NameAgeCountryCityTech 250FinlandHelsinki
Use the string formatting method to display the following:
radius = 10
area = 3.14 * radius ** 2
The area of a circle with radius 10 is 314 meters square.
Make the following using string formatting methods:
1 thought on “Python in 30 Days: Day 4 – Strings”