Python Strings PDF
Python Strings PDF
Complete
Python
In
Simple Way
1 https://www.youtube.com/durgasoftware
STRING
DATA TYPE
STUDY MATERIAL
2 https://www.youtube.com/durgasoftware
The most commonly used object in any project and in any programming language is String
only. Hence we should aware complete information about String data type.
What is String?
Any sequence of characters within either single quotes or double quotes is considered as a
String.
Syntax:
s = 'durga'
s = "durga"
Note: In most of other languges like C, C++, Java, a single character with in single quotes
is treated as char data type value. But in Python we are not having char data type.Hence it
is treated as String only.
Eg:
>>> ch = 'a'
>>> type(ch)
<class 'str'>
Eg:
>>> s = '''durga
software
solutions'''
We can also use triple quotes to use single quotes or double quotes as symbol inside
String literal.
3 https://www.youtube.com/durgasoftware
How to Access Characters of a String?
We can access characters of a string by using the following ways.
1) By using index
2) By using slice operator
1) >>> s='durga'
2) >>> s[0]
3) 'd'
4) >>> s[4]
5) 'a'
6) >>> s[-1]
7) 'a'
8) >>> s[10]
9) IndexError: string index out of range
Note: If we are trying to access characters of a string with out of range index then we will
get error saying: IndexError
Q) Write a Program to Accept some String from the Keyboard and display its
Characters by Index wise (both Positive and Negative Index)
test.py:
Note:
If we are not specifying bEgin index then it will consider from bEginning of the string.
If we are not specifying end index then it will consider up to end of the string.
The default value for step is 1.
***Note:
In the backward direction if end value is -1 then result is always empty.
In the forward direction if end value is 0 then result is always empty.
5 https://www.youtube.com/durgasoftware
In Forward Direction:
default value for bEgin: 0
default value for end: length of string
default value for step: +1
In Backward Direction:
default value for bEgin: -1
default value for end: -(length of string+1)
Note: Either forward or backward direction, we can take both +ve and -ve values for
bEgin and end index.
print("durga"+"soft") durgasoft
print("durga"*2) durgadurga
6 https://www.youtube.com/durgasoftware
Note:
1) To use + operator for Strings, compulsory both arguments should be str type.
2) To use * operator for Strings, compulsory one argument should be str and other
argument should be int.
Alternative ways:
1) s = "Learning Python is very easy !!!"
2) print("Forward direction")
3) for i in s:
4) print(i,end=' ')
5) print("Forward direction")
6) for i in s[::]:
7) print(i,end=' ')
8)
9) print("Backward direction")
10) for i in s[::-1]:
11) print(i,end=' ')
7 https://www.youtube.com/durgasoftware
Checking Membership:
We can check whether the character or string is the member of another string or not by
using in and not in operators
s = 'durga'
print('d' in s) True
print('z' in s) False
Output:
D:\python_classes>py test.py
Enter main string:durgasoftwaresolutions
Enter sub string:durga
durga is found in main string
D:\python_classes>py test.py
Enter main string:durgasoftwaresolutions
Enter sub string:python
python is not found in main string
Comparison of Strings:
We can use comparison operators (<, <=, >, >=) and equality operators (==, !=) for
strings.
Comparison will be performed based on alphabetical order.
Output:
D:\python_classes>py test.py
Enter first string:durga
8 https://www.youtube.com/durgasoftware
Enter Second string:durga
Both strings are equal
D:\python_classes>py test.py
Enter first string:durga
Enter Second string:ravi
First String is less than Second String
D:\python_classes>py test.py
Enter first string:durga
Enter Second string:anil
First String is greater than Second String
Finding Substrings:
We can use the following 4 methods
9 https://www.youtube.com/durgasoftware
find():
s.find(substring)
Returns index of first occurrence of the given substring. If it is not available then we will
get -1.
Note: By default find() method can search total string. We can also specify the
boundaries to search.
s.find(substring,bEgin,end)
It will always search from bEgin index to end-1 index.
1) s="durgaravipavanshiva"
2) print(s.find('a'))#4
3) print(s.find('a',7,15))#10
4) print(s.find('z',7,15))#-1
index():
index() method is exactly same as find() method except that if the specified substring is
not available then we will get ValueError.
Output:
D:\python_classes>py test.py
Enter main string:learning python is very easy
Enter sub string:python
substring found
10 https://www.youtube.com/durgasoftware
D:\python_classes>py test.py
Enter main string:learning python is very easy
Enter sub string:java
substring not found
Output:
D:\python_classes>py test.py
Enter main string:abbababababacdefg
Enter sub string:a
Found at position 0
Found at position 3
Found at position 5
Found at position 7
Found at position 9
Found at position 11
D:\python_classes>py test.py
Enter main string:abbababababacdefg
Enter sub string:bb
Found at position 1
11 https://www.youtube.com/durgasoftware
1) s="abcabcabcabcadda"
2) print(s.count('a'))
3) print(s.count('ab'))
4) print(s.count('a',3,7))
Output:
6
4
2
Eg 1:
s = "Learning Python is very difficult"
s1 = s.replace("difficult","easy")
print(s1)
Output: bbbbbbbbbbbbbb
Eg:
s = "abab"
s1 = s.replace("a","b")
print(s,"is available at :",id(s))
print(s1,"is available at :",id(s1))
12 https://www.youtube.com/durgasoftware
Output:
abab is available at : 4568672
bbbb is available at : 4568704
In the above example, original object is available and we can see new object which was
created because of replace() method.
Splitting of Strings:
We can split the given string according to specified seperator by using split() method.
l = s.split(seperator)
The default seperator is space. The return type of split() method is List.
Output:
durga
software
solutions
1) s="22-02-2018"
2) l=s.split('-')
3) for x in l:
4) print(x)
Output:
22
02
2018
Joining of Strings:
We can join a Group of Strings (List OR Tuple) wrt the given Seperator.
s = seperator.join(group of strings)
Eg 1:
t = ('sunny', 'bunny', 'chinny')
s = '-'.join(t)
print(s)
Output: sunny-bunny-chinny
13 https://www.youtube.com/durgasoftware
Eg 2:
l = ['hyderabad', 'singapore', 'london', 'dubai']
s = ':'.join(l)
print(s)
Output: hyderabad:singapore:london:dubai
Output:
LEARNING PYTHON IS VERY EASY
learning python is very easy
LEARNING pYTHON IS VERY eASY
Learning Python Is Very Easy
Learning python is very easy
14 https://www.youtube.com/durgasoftware
Output:
True
False
True
Eg:
1) print('Durga786'.isalnum()) True
2) print('durga786'.isalpha()) False
3) print('durga'.isalpha()) True
4) print('durga'.isdigit()) False
5) print('786786'.isdigit()) True
6) print('abc'.islower()) True
7) print('Abc'.islower()) False
8) print('abc123'.islower()) True
9) print('ABC'.isupper()) True
10) print('Learning python is Easy'.istitle()) False
11) print('Learning Python Is Easy'.istitle()) True
12) print(' '.isspace()) True
Demo Program:
D:\python_classes>py test.py
Enter any character:7
Alpha Numeric Character
it is a digit
D:\python_classes>py test.py
Enter any character:a
Alpha Numeric Character
Alphabet character
Lower case alphabet character
D:\python_classes>py test.py
Enter any character:$
Non Space Special Character
D:\python_classes>py test.py
Enter any character:A
Alpha Numeric Character
Alphabet character
Upper case alphabet character
1) name = 'durga'
2) salary = 10000
3) age = 48
4) print("{} 's salary is {} and his age is {}".format(name,salary,age))
5) print("{0} 's salary is {1} and his age is {2}".format(name,salary,age))
6) print("{x} 's salary is {y} and his age is {z}".format(z=age,y=salary,x=name))
Output:
durga 's salary is 10000 and his age is 48
durga 's salary is 10000 and his age is 48
durga 's salary is 10000 and his age is 48
16 https://www.youtube.com/durgasoftware
Important Programs regarding String Concept
1st Way:
1) s = input("Enter Some String:")
2) print(s[::-1])
2nd Way:
1) s = input("Enter Some String:")
2) print(''.join(reversed(s)))
3rd Way:
1) s = input("Enter Some String:")
2) i=len(s)-1
3) target=''
4) while i>=0:
5) target=target+s[i]
6) i=i-1
7) print(target)
17 https://www.youtube.com/durgasoftware
Output: Enter Some String:Learning Python is very easy!!
easy!!! very is Python Learning
2nd Way:
1) s=input("Enter Some String:")
2) i=0
3) print("Characters at Even Position:")
4) while i< len(s):
5) print(s[i],end=',')
6) i=i+2
7) print()
8) print("Characters at Odd Position:")
9) i=1
10) while i< len(s):
11) print(s[i],end=',')
12) i=i+2
18 https://www.youtube.com/durgasoftware
Q5) Program to Merge Characters of 2 Strings into a Single
String by taking Characters alternatively
Input: s1 = "ravi"
s2 = "reja"
Output: rtaevjia
Output:
Enter First String:durga
Enter Second String:ravisoft
druarvgiasoft
19 https://www.youtube.com/durgasoftware
Q7) Write a Program for the following Requirement
Input: a4b3c2
Output: aaaabbbcc
20 https://www.youtube.com/durgasoftware
Q10) Write a Program to find the Number of Occurrences of
each Character present in the given String?
Input: ABCABCABBCDE
Output: A-3,B-4,C-3,D-1,E-1
Output:
D:\durgaclasses>py test.py
Enter Some String:one two three four five six seven
Original String: one two three four five six seven
output String: one owt three ruof five xis seven
21 https://www.youtube.com/durgasoftware
Formatting the Strings:
֍ We can format the strings with variable values by using replacement operator {} and
format() method.
֍ The main objective of format() method to format string into meaningful output form.
1) name = 'durga'
2) salary = 10000
3) age = 48
4) print("{} 's salary is {} and his age is {}".format(name,salary,age))
5) print("{0} 's salary is {1} and his age is {2}".format(name,salary,age))
6) print("{x} 's salary is {y} and his age is {z}".format(z=age,y=salary,x=name))
Output:
durga 's salary is 10000 and his age is 48
durga 's salary is 10000 and his age is 48
durga 's salary is 10000 and his age is 48
d Decimal IntEger
f Fixed point number(float).The default precision is 6
b Binary format
o Octal Format
x Hexa Decimal Format (Lower case)
X Hexa Decimal Format (Upper case)
Eg-1:
Output:
The intEger number is: 123
The intEger number is: 123
The intEger number is: 123
The intEger number is: 00123
22 https://www.youtube.com/durgasoftware
Eg-2:
Output:
The float number is: 123.4567
The float number is: 123.456700
The float number is: 123.457
The float number is: 0123.457
The float number is: 0123.450
The float number is: 786786123.450
Note:
֍ {:08.3f}
֍ Total positions should be minimum 8.
֍ After decimal point exactly 3 digits are allowed.If it is less then 0s will be placed in the
last positions
֍ If total number is < 8 positions then 0 will be placed in MSBs
֍ If total number is >8 positions then all intEgral digits will be considered.
֍ The extra digits we can take only 0
1) print("Binary Form:{0:b}".format(153))
2) print("Octal Form:{0:o}".format(153))
3) print("Hexa decimal Form:{0:x}".format(154))
4) print("Hexa decimal Form:{0:X}".format(154))
Output:
Binary Form:10011001
Octal Form:231
Hexa decimal Form:9a
Hexa decimal Form:9A
Note: We can represent only int values in binary, octal and hexadecimal and it is not
possible for float values.
23 https://www.youtube.com/durgasoftware
Note:
1) {:5d} It takes an intEger argument and assigns a minimum width of 5.
2) {:8.3f} It takes a float argument and assigns a minimum width of 8 including "." and
after decimal point excatly 3 digits are allowed with round operation if required
3) {:05d} The blank places can be filled with 0. In this place only 0 allowed.
Output:
int value with sign:+123
int value with sign:-123
float value with sign:+123.456000
float value with sign:-123.456000
1) print("{:5d}".format(12))
2) print("{:<5d}".format(12))
3) print("{:<05d}".format(12))
4) print("{:>5d}".format(12))
5) print("{:>05d}".format(12))
6) print("{:^5d}".format(12))
7) print("{:=5d}".format(-12))
8) print("{:^10.3f}".format(12.23456))
9) print("{:=8.3f}".format(-12.23456))
24 https://www.youtube.com/durgasoftware
Output:
12
12
12000
12
00012
12
-12
12.235
- 12.235
1) print("{:5d}".format(12))
2) print("{:5}".format("rat"))
3) print("{:>5}".format("rat"))
4) print("{:<5}".format("rat"))
5) print("{:^5}".format("rat"))
6) print("{:*^5}".format("rat")) #Instead of * we can use any character(like +,$,a etc)
Output:
12
rat
rat
rat
rat
*rat*
Note: For numbers default alignment is right where as for strings default alignment is left
1) print("{:.3}".format("durgasoftware"))
2) print("{:5.3}".format("durgasoftware"))
3) print("{:>5.3}".format("durgasoftware"))
4) print("{:^5.3}".format("durgasoftware"))
5) print("{:*^5.3}".format("durgasoftware"))
Output:
dur
dur
dur
25 https://www.youtube.com/durgasoftware
dur
*dur*
1) person={'age':48,'name':'durga'}
2) print("{p[name]}'s age is: {p[age]}".format(p=person))
Output:
durga's age is: 48
Note: p is alias name of dictionary
person dictionary we are passing as keyword argument
1) person={'age':48,'name':'durga'}
2) print("{name}'s age is: {age}".format(**person))
1) class Person:
2) age=48
3) name="durga"
4) print("{p.name}'s age is :{p.age}".format(p=Person()))
1) class Person:
2) def __init__(self,name,age):
3) self.name=name
4) self.age=age
5) print("{p.name}'s age is :{p.age}".format(p=Person('durga',48)))
6) print("{p.name}'s age is :{p.age}".format(p=Person('Ravi',50)))
Note: Here Person object is passed as keyword argument. We can access by using its
reference variable in the template string
1) string="{:{fill}{align}{width}}"
2) print(string.format('cat',fill='*',align='^',width=5))
3) print(string.format('cat',fill='*',align='^',width=6))
26 https://www.youtube.com/durgasoftware
4) print(string.format('cat',fill='*',align='<',width=6))
5) print(string.format('cat',fill='*',align='>',width=6))
Output:
*cat*
*cat**
cat***
***cat
1) num="{:{align}{width}.{precision}f}"
2) print(num.format(123.236,align='<',width=8,precision=2))
3) print(num.format(123.236,align='>',width=8,precision=2))
Output:
123.24
123.24
1) import datetime
2) #datetime formatting
3) date=datetime.datetime.now()
4) print("It's now:{:%d/%m/%Y %H:%M:%S}".format(date))
1) complexNumber=1+2j
2) print("Real Part:{0.real} and Imaginary Part:{0.imag}".format(complexNumber))
27 https://www.youtube.com/durgasoftware