Python Midsem Material
Python Midsem Material
ii)
iii)
iv)
v)
vi)
vii)
viii)
Guido van Rossum was interested on watching a comedy show, which is telecasting on the BBC channel
from 1969 to 1974 The complete Monty Python's FlyingCircus.
Guido Van Rossum thought he needed a name that was short,unique,andslightly mysterious for his
programming language,so he decided to call the language Python.
Web Development
Game Development
Scientific and Numeric applications
Artificial Intelligence and Machine Learning based applications
Data Science related applications
Desktop GUI applications
Software Development
Enterprise-level/Business Applications
Education programs and training courses
Web Scraping Applications
Image Processing and Graphic Design Applications
Data Analysis
iii. Features of Python programming
Now you can type any valid python expression at the prompt.
Python reads the typed expression, evaluates it and prints the result.
ii. Running Python Scripts in IDLE (Integrated Development and Learning Environment):
c=a+b
print "hello"
In the command prompt, and run this program by calling python hello.py.
Make sure you change to the directory where you saved the file before doing it.
Write a Python program to purposefully raise Indentation Error and correct it.
Indentation:
Code blocks are identified by indentation rather than using symbols like curly braces.
Indentation clearly identifies which block of code a statement belongs to. Of course, code blocks can
consist of single statements, too.
When one is new to Python, indentation may come as a surprise. Humans generally prefer to avoid
change, so perhaps after many years of coding with brace delimitation, the first impression of using pure
indentation may not be completely positive.
However, recall that two of Python's features are that it is simplistic in nature and easy to read.
Python does not support braces to indicate blocks of code for class and function definitions or flow
control. Blocks of code are denoted by line indentation.
All the continuous lines indented with same number of spaces would form a block. Python strictly
follow indentation rules to indicate the blocks.
1. Python Numbers
Integers, floating point numbers and complex numbers fall under Python numbers category.
They are defined as int, float and complex classes in Python.
We can use the type() function to know which class a variable or a value belongs to.
Similarly, the isinstance() function is used to check if an object belongs to a particular class.
Example Programs:
In [21]:
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j,complex))
In [1]:
a=34
print(type(a))
b=456792357968700
print(b)
print(type(b))
<class 'int'>
456792357968700
<class 'int'>
Observation: int datatype is used to represent integral values. In python3 long int values can also be
represented by using int type only.
In [2]:
f=3.413
print(f)
print(type(f))
f1=1.2e4
print(f1)
3.413
<class 'float'>
12000.0
Observation: float datatype is used to represent floating point values. We can represent float values
scientifically by 'e'or'E'.
In [3]:
c=3+4j
print(type(c))
print(c.real)
print(c.imag)
<class 'complex'>
3.0
4.0
Observation: In complex datatype we have some inbuilt attributes to retrieve real and imaginary parts.
In [4]:
b=True
print(type(b))
a=5
b=8
c=a<b
print(c)
<class 'bool'>
True
Observation: This datatype is used to represent boolean values. The only allowed values for this datatype
are True and False.
Points to Ponder
a = 1234567890123456789
print(a)
b = 0.1234567890123456789
print(b) # float variable 'b' truncated
c = 1+2j
print(c)
1234567890123456789
0.12345678901234568
(1+2j)
2. Python Strings
In [24]:
s = "This is a string"
print(s)
s = '''A multiline
string'''
print(s)
This is a string
A multiline
string
In [5]:
s1='python'
print(s1)
s2="record"
print(s2)
python
record
In [6]:
s="python is
a freeware"
print(s)
Observation: Multiline string literals are represented by triple quotes.They cannot be represented by using
single or double quotes.
c) Demonstrate the working of ‘id’ and ‘type’ functions.
1. id() function:
id(object)
As we can see the function accepts a single parameter and is used to return the identity of an object.
This identity has to be unique and constant for this object during the lifetime.
Two objects with non-overlapping lifetimes may have the same id() value.
If we relate this to C, then they are actually the memory address, here in Python it is the unique id.
The output is the identity of the object passed.
This is random but when running in the same program, it generates unique and same identity.
Examples:
In [1]:
id(1025)
Out[1]:
2497999538928
In [2]:
Out[2]:
2497999539408
In [3]:
id("RGM")
Out[3]:
2497997578032
In [4]:
s = "RGM"
print(id(s))
2497999585904
In [6]:
s2 = "RGM"
print(id(s2))
2497999585904
In [7]:
print(id(s)==id(s2))
True
In [8]:
# Use in Lists
list1 = ["Python", "Java", "C++"]
print(id(list1[0]))
print(id(list1[2]))
2497932653936
2497999588144
In [10]:
False
In [11]:
print('id of 5 =',id(5))
a = 5
print('id of a =',id(a))
b = a
print('id of b =',id(b))
c = 5.0
print('id of c =',id(c))
id of 5 = 140737105207824
id of a = 140737105207824
id of b = 140737105207824
id of c = 2497999538800
Python have a built-in method called as type which generally come in handy while figuring out the type of
variable used in the program in the runtime.
The type function returns the datatype of any arbitrary object.
In [21]:
print(type(5))
print(type(5.0))
print(type('5'))
print(type("5"))
print(type([]))
print(type(()))
print(type({}))
print(type({a,}))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
<class 'list'>
<class 'tuple'>
<class 'dict'>
<class 'set'>
type takes anything and returns its data type. Integers, strings, lists, dictionaries, tuples, functions,
classes, modules, even types are acceptable.
type can take a variable and return its datatype.
3. range():
In [1]:
r = range(10)
print(type(r))
print(r)
<class 'range'>
range(0, 10)
In [2]:
r = range(10)
print(type(r))
print(r)
for i in r:
print(i)
<class 'range'>
range(0, 10)
0
1
2
3
4
5
6
7
8
9
In [3]:
r = range(10)
print(type(r))
print(r)
for i in r:
print(i,end = ' ')
<class 'range'>
range(0, 10)
0 1 2 3 4 5 6 7 8 9
In [4]:
r = range(10)
print(type(r))
print(r)
for i in r:
print(i,end = '\t')
<class 'range'>
range(0, 10)
0 1 2 3 4 5 6 7 8 9
In [6]:
r = range(10,-25)
print(type(r))
print(r)
for i in r:
print(i,end = ' ')
<class 'range'>
range(10, -25)
In [7]:
r = range(-25,10)
print(type(r))
print(r)
for i in r:
print(i,end = ' ')
<class 'range'>
range(-25, 10)
-25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -
6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9
In [8]:
r = range(1,21,1)
for i in r:
print(i,end = ' ')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
In [9]:
r = range(1,21,2)
for i in r:
print(i,end = ' ')
1 3 5 7 9 11 13 15 17 19
In [10]:
r = range(1,21,3)
for i in r:
print(i,end = ' ')
1 4 7 10 13 16 19
In [11]:
r = range(1,21,4)
for i in r:
print(i,end = ' ')
1 5 9 13 17
In [12]:
r = range(1,21,-5)
for i in r:
print(i,end = ' ')
In [13]:
r = range(21,1,-5)
for i in r:
print(i,end = ' ')
21 16 11 6
In [14]:
r = range(21,0,-5)
for i in r:
print(i,end = ' ')
21 16 11 6 1
In [15]:
r = range(10,20)
print(r[0])
print(r[-1])
r1 = r[1:5]
print(r1)
for i in r1:
print(i)
r[1] = 3445
10
19
range(11, 15)
11
12
13
14
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-15-0c82f2e5b728> in <module>
6 for i in r1:
7 print(i)
----> 8 r[1] = 3445
print(bin(12))
print(bin(0XA11))
print(bin(0o2345))
print(bin(54.67))
0b1100
0b101000010001
0b10011100101
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-16-6aaa1bd5a457> in <module>
2 print(bin(0XA11))
3 print(bin(0o2345))
----> 4 print(bin(54.67))
Observation: bin() is used to convert from any base to binary except float values.
In [17]:
print(oct(456))
print(oct(0b1101))
print(oct(0xAB123))
print(oct(56.5))
0o710
0o15
0o2530443
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-17-3d6cec98201e> in <module>
2 print(oct(0b1101))
3 print(oct(0xAB123))
----> 4 print(oct(56.5))
Observation: oct() is used to convert from any base to octal except float values.
In [18]:
print(hex(675))
print(hex(0b1101))
print(hex(0o456))
print(hex(45.65))
0x2a3
0xd
0x12e
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-18-d5dc2a4af973> in <module>
2 print(hex(0b1101))
3 print(hex(0o456))
----> 4 print(hex(45.65))
Observation: hex() is used to convert from any base to octal except float values.
Converting the value from one type to another type is called as Type casting or Type Coersion.
In [19]:
print(int(45.56))
print(int(True))
print(int(False))
print(int(3+5j))
45
1
0
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-19-857e366a281f> in <module>
2 print(int(True))
3 print(int(False))
----> 4 print(int(3+5j))
Observation: We can use int() to convert from other types to int except complex.We get typeError when we
try to convert complex to int.
In [20]:
print(int('10'))
print(int('10.5'))
print(int('ten'))
10
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-20-b088da98807d> in <module>
1 print(int('10'))
----> 2 print(int('10.5'))
3 print(int('ten'))
Observation: To convert string to int type, compulsary string should contain integer values and specified with
base-10.
In [21]:
print(float('10'))
print(float('10.5'))
print(float('ten'))
10.0
10.5
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-21-3b0ac2ae8b09> in <module>
1 print(float('10'))
2 print(float('10.5'))
----> 3 print(float('ten'))
Observation: To convert string to float is not possible when the string contains charecters.
In [22]:
print(float(3+4j))
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-22-dd9e89f1504b> in <module>
----> 1 print(float(3+4j))
print(complex(2))
print(complex(5.0))
print(complex(True))
print(complex('10'))
print(complex('ram'))
(2+0j)
(5+0j)
(1+0j)
(10+0j)
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-23-f42d0e340fec> in <module>
3 print(complex(True))
4 print(complex('10'))
----> 5 print(complex('ram'))
Observation: It is possible to convert any type to complex except string contain characters.
In [24]:
print(bool(0))
print(bool(1))
print(bool(4))
print(bool(2.0))
print(bool(2+3j))
print(bool(True))
print(bool(False))
print(bool(-1))
False
True
True
True
True
True
False
True
Observation: To convert any type to bool is possiple.it always give either True or False.
In [25]:
print(str(12))
print(str(2.0))
print(str(2+8j))
print(str(True))
print(str(-122))
12
2.0
(2+8j)
True
-122
1. Arithmetic operators.
2. Relational or Comparision operators.
3. Equality operators.
4. Logical operators.
5. Bitwise operators.
6. Shift operators.
7. Assignment operators.
8. Ternary operator. (or) Conditional operator.
9. Special operators:
a. Identity operator.
b. Membership operator.
1. Arithmetic Operators:
The arithmetic operations are the basic mathematical operators which are used in our daily life. Mainly it
consists of seven operators.
i. Addition Operator :
Generally addition operator is used to perform the addition operation on two operands.
But in python we can use addition operator to perform the concatenation of strings, lists and so on, but
operands must of same datatype.
In [1]:
x = 2
y = 3
print("ADDITION RESULT : ", x + y)
ADDITION RESULT : 5
In [2]:
x = 2
y = 3.3
print("ADDITION RESULT : ", x + y) # both float and int type are accept
In [3]:
x = 2.7
y = 3.3
print("ADDITION RESULT : ", x + y) # both float type are accept
In [4]:
x = "2"
y = 3
print("ADDITION RESULT : ", x + y) #str type and int can't be added.
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-4-d873d6fd7998> in <module>
1 x = "2"
2 y = 3
----> 3 print("ADDITION RESULT : ", x + y) #str type and int can't be adde
d.
In [5]:
x = "2"
y = "3"
print("ADDITION RESULT : ", x + y) # concatenation will take place
ADDITION RESULT : 23
In [6]:
x = "2"
y = 4.8
print("ADDITION RESULT : ", x + y) # float type and str typr can't be added.
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-6-32bf23d43c09> in <module>
1 x = "2"
2 y = 4.8
----> 3 print("ADDITION RESULT : ", x + y) # float type and str typr can't
be added.
In [7]:
x = 2
y = bool(4.8)
print("ADDITION RESULT : ", x + y) #here bool(4.8) returns True i.e, 1
ADDITION RESULT : 3
In [8]:
x = "2"
y = bool(4.8)
print("ADDITION RESULT : ", x + y) #bool type cant be concatenated.
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-8-aa2b47f2b5f5> in <module>
1 x = "2"
2 y = bool(4.8)
----> 3 print("ADDITION RESULT : ", x + y) #bool type cant be concatenate
d.
In [9]:
x = "2"
y = str(bool(4.8))
print("ADDITION RESULT : ", x + y)
#bool returns 1 generally but we converted into str then it gives True
In [10]:
x = "2"
y = str(complex(4.8)) #Here both strings so concatenation will take place
print("ADDITION RESULT : ", x + y)
x = 2
y = complex(4.8)
print("ADDITION RESULT : ", x + y)
# here both are int type so addtion will take place
Generally subtraction operator is used to perform the subtraction operation on two operands.
In [12]:
a = 30
b = 10
print("Subtraction result : ",a-b)
Subtraction result : 20
In [13]:
a = 30
b = "10"
print("Subtraction result : ",a-b)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-13-f0fd62944ccb> in <module>
1 a = 30
2 b = "10"
----> 3 print("Subtraction result : ",a-b)
In [14]:
a = "30"
b = "10"
print("Subtraction result : ",a-b)
# can not perform subtraction on str type operands.
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-14-0bebbed27be9> in <module>
1 a = "30"
2 b = "10"
----> 3 print("Subtraction result : ",a-b)
4 # can not perform subtraction on str type operands.
a = 20
b = 10.00
print("Subtraction result : ",a-b)
In [16]:
a = 20
b = bool(10)
print("Subtraction result : ",a-b)
Subtraction result : 19
Generally multiplication operator is used to perform the multiplication operation on two operends
But in python we can use multiplication operator to perform the repetition of strings, lists and so on, but
operands must belongs to same datatype.
In [17]:
num1 = 23
num2 = 35
print("MULTIPLICATION RESULT : ",num1 * num2)
In [18]:
num1 = 23
num2 = 35.0
print("MULTIPLICATION RESULT : ",num1 * num2)
In [19]:
num1 = "23"
num2 = 5
print("MULTIPLICATION RESULT : ",num1 * num2) # 23 string will prints 5 times
num1 = "23"
num2 = "5"
print("MULTIPLICATION RESULT : ",num1 * num2)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-20-e4135d9e3a29> in <module>
1 num1 = "23"
2 num2 = "5"
----> 3 print("MULTIPLICATION RESULT : ",num1 * num2)
In [21]:
l = "(1,2,3,4)"
print(float(l * 5))
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-21-18109e54b2f8> in <module>
1 l = "(1,2,3,4)"
----> 2 print(float(l * 5))
In [22]:
l = "123"
print(float(l * 4))
#initially it will prints string 5 times and converts it into float
123123123123.0
In [23]:
l = "123"
b = 2.3
print("MULTIPLICATION RESULT : ", l * b)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-23-e235870edcad> in <module>
1 l = "123"
2 b = 2.3
----> 3 print("MULTIPLICATION RESULT : ", l * b)
l = "123"
b = bool(2.3)
print("MULTIPLICATION RESULT : ", l * b)
In [25]:
l =[1,2,3]
m = [2,4,5]
print(l * m) # multiplication of two list data types is not possible
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-25-309b92e03dcb> in <module>
1 l =[1,2,3]
2 m = [2,4,5]
----> 3 print(l * m) # multiplication of two list data types is not possib
le
In [26]:
l = (5,6,7)
m = (1,2,3)
print(l* m) # multiplication of two tuple data types is not possible
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-26-91a31577591d> in <module>
1 l = (5,6,7)
2 m = (1,2,3)
----> 3 print(l* m) # multiplication of two tuple data types is not possib
le
In [27]:
l = bool(1)
m = bool(4657)
print(l * m) # as bool returns 1 it prints only one time
In [28]:
l = bool()
m = bool(123456789)
print(l*m) # As bool doesn't contain any value it consider as zero.
0
In [29]:
l = str(bool([1,2,3]))
m = 99
print(l*m)
TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTr
ueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrue
TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTr
ueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrue
TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTr
ueTrueTrueTrueTrueTrueTrue
In [30]:
l = bool([1,2,3])
m = 99
print(l*m)
99
Generally division operator is used to perform the division operation on two operands.
It returns the result in float type.
In [31]:
a = 3
b = 45
print("Division result : ", a/ b) # returns float value
In [32]:
a = 3
b = "45"
print("Division result : ", b / a)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-32-1b2bbedeebd4> in <module>
1 a = 3
2 b = "45"
----> 3 print("Division result : ", b / a)
In [33]:
a = 3
b = 45.0000
print("Division result : ", b / a)
a = 3
b = bool(0.0000)
print("Division result : ", a / b)
--------------------------------------------------------------------------
-
ZeroDivisionError Traceback (most recent call las
t)
<ipython-input-34-854e10cbf4f9> in <module>
1 a = 3
2 b = bool(0.0000)
----> 3 print("Division result : ", a / b)
In [35]:
a = 3
b = complex((90))
print("Division result : ", a / b)
In [36]:
a = [1,2,3]
b = [7,8,9]
print("Division result : ", a / b)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-36-8289b4627a90> in <module>
1 a = [1,2,3]
2 b = [7,8,9]
----> 3 print("Division result : ", a / b)
In [37]:
a = (1,2,3)
b = (1,2,3)
print("Division result : ", a / b)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-37-f02db8ba9671> in <module>
1 a = (1,2,3)
2 b = (1,2,3)
----> 3 print("Division result : ", a / b)
a = {1,2,3}
b = {1,2,3}
print("Division result : ", a / b)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-38-cd4ea53f676a> in <module>
1 a = {1,2,3}
2 b = {1,2,3}
----> 3 print("Division result : ", a / b)
In [39]:
l = bool()
m = bool(9)
print(l / m)
0.0
v. Modulo Division:
It returns reminder.
In [40]:
a = 3
b = 4
print(a%b)
print(b%a)
3
1
vi.Floor Division:
Answer is 10
Answer is 11
In [41]:
print(10/2)
5.0
In [42]:
print(10/3)
3.3333333333333335
If you want to get integer value as result of division operation, you need to make use of floor division(//)
operator.
floor division(//) operator meant for integral arithmetic operations as well as floating point arithmetic
operations.
The result of floor division(//) operator can be always floor value of either integer value or float value
based on your arguments.
If both arguments are 'int' type, then the result is 'int' type.
If atleast one of the argument is float type, then the result is also float type.
In [43]:
print(10//2)
In [44]:
print(10/3)
3.3333333333333335
In [45]:
print(10.0/3)
3.3333333333333335
In [46]:
print(10.0//3)
3.0
In [47]:
print(10//3)
In [48]:
print(10.0//3.0)
3.0
In [49]:
print(20/2)
print(20.5/2)
print(20//2)
print(20.5//2)
print(30//2)
print(30.0//2)
10.0
10.25
10
10.0
15
15.0
In [50]:
100
27
In [51]:
a = 10
b = 20
print('a < b is', a<b)
print('a <= b is', a<=b)
print('a > b is', a>b)
print('a >= b is', a>=b)
a < b is True
a <= b is True
a > b is False
a >= b is False
ii) We can apply relational operators for 'str' type also, here comparison is performed based on ASCII
or Unicode values.
How to know the Unicode or ASCII value of any character?
By using ord() function, we can get the ASCII value of any character.
In [52]:
print(ord('a'))
print(ord('A'))
97
65
If you know the ASCII value and to find the corresponding character, you need to use the chr() function.
In [53]:
print(chr(97))
print(chr(65))
a
A
In [54]:
True
True
False
False
In [55]:
s1 = 'karthi'
s2 = 'karthi'
print(s1<s2)
print(s1<=s2)
print(s1>s2)
print(s1>=s2)
False
True
False
True
In [56]:
s1 = 'karthi'
s2 = 'Karthi'
print(s1<s2)
print(s1<=s2)
print(s1>s2)
print(s1>=s2)
False
False
True
True
iii) We can apply relational operators even for boolean types also.
In [57]:
True
True
False
False
In [58]:
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-58-e2ae37134b58> in <module>
----> 1 print(10 > 'karthi')
In [60]:
a = 10
b = 20
if a>b:
print('a is greater than b')
else:
print('a is not greater than b')
print(10<20) # ==>True
print(10<20<30) # ==>True
print(10<20<30<40) # ==>True
print(10<20<30<40>50) # ==>False
True
True
True
False
3. Equality Operators:
Equality operators are used to check whether the given two values are equal or not. The following are the
equality operators used in Python.
1. Equal to (==)
2. Not Equal to (!=)
In [62]:
print(10==20)
print(10!=20)
False
True
In [63]:
print(1==True)
print(10==10.0)
print('karthi'=='karthi')
True
True
True
We can apply these operators for any type, even for incompatible types also.
In [64]:
print(10=='karthi')
False
In [65]:
print(10=='10')
False
Note:
print(10==20==30==40)
print(10==10==10==10)
False
True
4. Logical operators:
1. and
2. or
3. not
You can apply these operators for boolean types and non-boolean types, but the behavior is different.
and ==> If both arguments are True then only result is True
In [67]:
True
False
False
False
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
In [69]:
print(not True)
print(not False)
False
True
Eg:
Now we will try to develop a small authentication application with this knowledge.
In [70]:
In [71]:
Note:
0 means False
non-zero means True
empty strings, list,tuple, set,dict is always treated as False
i) X and Y:
Here, X and Y are non boolean types and the result may be either X or Y but not boolean type (i.e., The
result is always non boolean type only).
In [72]:
20
0
sahasra
karthi
ii) X or Y
Here, X and Y are non boolean types and the result may be either X or Y but not boolean type (i.e., The
result is always non boolean type only).
print(10 or 20)
print(0 or 20)
print('karthi' or 'sahasra')
print('' or 'karthi') # first argument is empty string
print(' ' or 'karthi')
# first argument contains space character, so it is not empty
print('karthi' or '') # second argument is empty string
print('karthi' or ' ')
10
20
karthi
karthi
karthi
karthi
iii) not X:
Even you apply not operator for non boolean type, the result is always boolean type only.
In [2]:
print(not 'karthi')
print(not '')
print(not 0)
print(not 10)
False
True
True
False
5. Bitwise Operators:
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-3-d0942894908d> in <module>
----> 1 print(10.5 & 20.6)
In [4]:
print('karthi' | 'karthi')
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-4-482742ac27fc> in <module>
----> 1 print('karthi' | 'karthi')
In [5]:
print(bin(10))
print(bin(20))
print(10 & 20) # Valid
print(10.0 & 20.0) # In valid
0b1010
0b10100
0
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-5-2449e0efc92e> in <module>
2 print(bin(20))
3 print(10 & 20) # Valid
----> 4 print(10.0 & 20.0) # In valid
In [6]:
False
2. Bitwise or (|):
In [7]:
print(True | False)
True
In [9]:
print(2^4)
& ==> If both bits are 1 then only result is 1 otherwise result is 0
| ==> If atleast one bit is 1 then result is 1 otherwise result is 0
^ ==>If bits are different then only result is 1 otherwise result is 0
~ ==> bitwise complement operator, i.e 1 means 0 and 0 means 1
<< ==> Bitwise Left shift Operataor
Bitwise Right Shift Operator ==> >>
In [8]:
4
5
1
In [10]:
-5
Here, we have to apply complement for total bits, not for three bits (in case of 4). In Python minimum 28 bits
required to represent an integer.
Note:
The most significant bit acts as sign bit. 0 value represents +ve number where as 1 represents -ve value.
Positive numbers will be repesented directly in the memory where as Negative numbers will be
represented indirectly in 2's complement form.
How you can find two's complement of a number?
To find Two's complement of a number, first you need to find One's complement of that number and add
1 to it.
One's complement ==> Interchange of 0's and 1's
In [11]:
print(~5)
-6
In [12]:
print(~-4) # negative values are stored in the memory in 2's complement form.
6. Shift Operators:
After shifting the bits from left side, empty cells to be filled with zero.
In [13]:
print(10<<2)
40
After shifting the empty cells we have to fill with sign bit.( 0 for +ve and 1 for -ve).
In [14]:
print(10>>2)
False
True
True
-2
-1
4
0
7. Assignment Operators:
In [ ]:
x = 2
We can combine asignment operator with some other operator to form compound assignment operator.
Eg :
In [16]:
x = 10
x += 20 # x = x + 20
print(x)
30
The following is the list of all possible compound assignment operators in Python:
+=
-=
*=
/=
%=
//=
**=
&=
|=
^=
In [17]:
x = 10 # 1010
x &= 5 # 0101
print(x)
In [18]:
x = 10
x **= 2 # x = x**2
print(x)
100
x = 10
print(++x)
print(++++x)
# Here, + and - are sign bits, not increment and decrement operators
print(-x)
print(--x)
print(++++++++++++-x)
print(-------------+x)
10
10
-10
10
-10
-10
1. If the operator operates on only one operand, we will call such operator as unary operator. For eg:, ~a.
2. If the operator operates on Two operands, we will call such operator as binary operator. For eg:, a + b.
3. If the operator operates on Three operands, we will call such operator as Ternary operator.
Syntax:
If condition is True then firstValue will be considered else secondValue will be considered.
In [1]:
a,b=23,43 # a =23 b = 43
c = 50 if a>b else 100
print(c)
100
Read two integer numbers from the keyboard and print minimum value using ternary operator.
In [2]:
In [4]:
In [5]:
In [6]:
case 1: If both are equal, then the output is : Both numbers are equal
case 2: If first number is smaller than second one, then the output is: First Number is Less than Second
Number
case 3: If the firts number is greater than second number, then the output is : First Number Greater than
Second Number
In [7]:
In [8]:
In [9]:
9. Special Operators:
1. Identity Operators
2. Membership Operators
1. Identity Operators:
We can use identity operators for address comparison. There are two identity operators used in Python:
i) is
ii) is not
In [1]:
a=10
b=10
print(a is b)
x=True
y=True
print( x is y)
True
True
In [2]:
a="karthi"
b="karthi"
print(id(a))
print(id(b))
print(a is b)
1509178647664
1509178647664
True
In [3]:
list1=["one","two","three"]
list2=["one","two","three"]
print(id(list1))
print(id(list2))
print(list1 is list2)
print(list1 is not list2) # reference comaprison (is & is not)
print(list1 == list2) # content comparison (==)
1509178190144
1509178196736
False
True
True
Note:
We can use is operator for address comparison where as == operator for content comparison.
2. Membership Operators
We can use Membership operators to check whether the given object present in the given collection.(It may
be String,List,Set,Tuple or Dict)
i) in
ii) not in
In [4]:
True
False
True
False
True
In [5]:
list1=["sunny","bunny","chinny","pinny"]
print("sunny" in list1)
print("tunny" in list1)
print("tunny" not in list1)
True
False
True
If multiple operators present then which operator will be evaluated first is decided by operator
precedence.
In [6]:
print(3+10*2)
print((3+10)*2)
23
26
The following list describes operator precedence in Python:
() ==> Parenthesis
| ==> Bitwise OR
or ==> Logical or
In [7]:
a=30
b=20
c=10
d=5
print((a+b)*c/d)
# division operoator in Python always going to provide float value as result
print((a+b)*(c/d))
print(a+(b*c)/d)
100.0
100.0
70.0
In [8]:
print(3/2*4+3+(10/5)**3-2)
print(3/2*4+3+2.0**3-2)
print(3/2*4+3+8.0-2)
print(1.5*4+3+8.0-2)
print(6.0+3+8.0-2)
15.0
15.0
15.0
15.0
15.0
Experiment 3:
i. input():
This function always reads the data from the keyboard in the form of String Format. We have to convert
that string type to our required type by using the corresponding type casting methods.
In [1]:
type(input("Enter value:"))
Enter value:10
Out[1]:
str
In [2]:
type(input("Enter value:"))
Enter value:22.7
Out[2]:
str
In [3]:
type(input("Enter value:"))
Enter value:True
Out[3]:
str
In [4]:
type(input("Enter value:"))
Enter value:'SMVDU'
Out[4]:
str
Note:
Why input() in Python 3 gave the priority for string type as return type?
Reason: The most commonly used type in any programming language is str type , that's why they gave the
priority for str type as default return type of input() function.
In [5]:
In [6]:
In [7]:
Demo Program 2: Write a program to read Employee data from the keyboard and print that data.
In [8]:
In [9]:
When you are not providing any value to the married (Just press Enter), then only it considers empty string
and gives the False value. In the above example, to read the boolean data, we need to follow the above
process.
But it is not our logic requirement. If you want to convert string to Boolean type, instead of using bool()
function we need to use eval() function.
In [11]:
eval() Function is a single function which is the replacement of all the typecasting functions in Python.
In [12]:
Enter Something : 10
<class 'str'>
In [13]:
In [15]:
In [16]:
Enter Something : 10
<class 'int'>
In [17]:
In [18]:
In [20]:
In [21]:
In [22]:
ii.print():
We can use print() function to display output to the console for end user sake.
Multiple forms are there related to print() function.
In [1]:
print('karthi')
print() # prints new line character
print('sahasra')
karthi
sahasra
print('karthi')
#print() # prints new line character
print('sahasra')
karthi
sahasra
In [3]:
print("Hello World")
Hello World
In [4]:
print("Hello \n World")
print("Hello\tWorld")
Hello
World
Hello World
In [6]:
print(10*"RGM")
print("RGM"*10)
RGMRGMRGMRGMRGMRGMRGMRGMRGMRGM
RGMRGMRGMRGMRGMRGMRGMRGMRGMRGM
In [7]:
print("RGM"+"xyz")
RGMxyz
Note:
If both arguments are string type then + operator acts as concatenation operator.
If one argument is string type and second is any other type like int then we will get Error
If both arguments are number type then + operator acts as arithmetic addition operator.
a,b,c=10,20,30
print("The Values are :",a,b,c)
# here, we are passing 4 arguments to the print function.
By default output values are seperated by space. If we want we can specify seperator by using "sep"
attribute.
'sep' means seperator.
In [9]:
a,b,c=10,20,30
print(a,b,c) # 10 20 30
print(a,b,c,sep=',') # 10,20,30
print(a,b,c,sep=':') # 10:20:30
print(a,b,c,sep='-') # 10-20-30
10 20 30
10,20,30
10:20:30
10-20-30
In [10]:
print("Hello")
print("Karthi")
print("Sahasra")
Hello
Karthi
Sahasra
If we want output in the same line with space, we need to use end attribute.
default value of 'end' attribute is newline character. (That means, if there is no end attribute,
automatically newline character will be printed).
In [11]:
print("Hello",end=' ')
print("Karthi",end=' ') # if end is space character
print("Sahasra")
print("Hello",end='')
print("Karthi",end='') # if end is nothing
print("Sahasra")
HelloKarthiSahasra
In [13]:
print('hello',end = '::')
print('karthi',end = '****')
print('sahasra')
hello::karthi****sahasra
In [14]:
10:20:30***40:50:60
70**80$$90 100
In [15]:
karthisahasra
karthi sahasra
10 20 30
We can pass any object (like list,tuple,set etc)as argument to the print() statement.
In [16]:
l=[10,20,30,40]
t=(10,20,30,40)
print(l)
print(t)
We can use print() statement with String and any number of arguments.
In [17]:
s="Karthi"
a=6
s1="java"
s2="Python"
print("Hello",s,"Your Age is",a)
print("You are learning",s1,"and",s2)
%i ====>int
%d ====>int
%f =====>float
%s ======>String type
Syntax:
In [18]:
a=10
b=20
c=30
print("a value is %i" %a)
print("b value is %d and c value is %d" %(b,c))
a value is 10
b value is 20 and c value is 30
In [19]:
s="Karthi"
list=[10,20,30,40]
print("Hello %s ...The List of Items are %s" %(s,list))
Hello Karthi ...The List of Items are [10, 20, 30, 40]
In [20]:
price = 70.56789
print('Price value = {}'.format(price))
print('Price value = %f'%price)
print('Price value = %.2f'%price)
In [21]:
name = "Karthi"
salary = 100000
sister = "Sahasra"
print("Hello {} your salary is {} and Your Sister {} is waiting"
.format(name,salary,sister))
print("Hello {0} your salary is {1} and Your Sister {2} is waiting"
.format(name,salary,sister))
print("Hello {1} your salary is {2} and Your Sister {0} is waiting"
.format(name,salary,sister))
print("Hello {2} your salary is {0} and Your Sister {1} is waiting"
.format(salary,sister,name))
print("Hello {x} your salary is {y} and Your Sister {z} is waiting"
.format(x=name,y=salary,z=sister))
Hello Karthi your salary is 100000 and Your Sister Sahasra is waiting
Hello Karthi your salary is 100000 and Your Sister Sahasra is waiting
Hello 100000 your salary is Sahasra and Your Sister Karthi is waiting
Hello Karthi your salary is 100000 and Your Sister Sahasra is waiting
Hello Karthi your salary is 100000 and Your Sister Sahasra is waiting
In [22]:
i) if statement:
Syntax:
if condition:
statement 1
statement 2
statement 3
statement
In [23]:
if 10<20:
print('10 is less than 20')
print('End of Program')
10 is less than 20
End of Program
In [24]:
if 10<20:
print('10 is less than 20')
print('End of Program')
In [25]:
name=input("Enter Name:")
if name=="Karthi":
print("Hello Karthi Good Morning")
print("How are you!!!")
Enter Name:Karthi
Hello Karthi Good Morning
How are you!!!
In [26]:
name=input("Enter Name:")
if name=="Karthi":
print("Hello Karthi Good Morning")
print("How are you!!!")
Enter Name:Sourav
How are you!!!
if condition:
Action 1
else:
Action 2
if condition is true then Action-1 will be executed otherwise Action-2 will be executed.
In [27]:
In [29]:
In [31]:
In [32]:
Points to Ponder:
i) while loop:
If we want to execute a group of statements iteratively until some condition false,then we should go for
while loop.
Syntax:
while condition:
body
In [13]:
x=1
while x <=10:
print(x,end=' ')
x=x+1
1 2 3 4 5 6 7 8 9 10
In [14]:
n=int(input("Enter number:"))
sum=0
i=1
while i<=n:
sum=sum+i
i=i+1
print("The sum of first",n,"numbers is :",sum)
Enter number:10
The sum of first 10 numbers is : 55
Eg 3: write a program to prompt user to enter some name until entering RGM.
In [15]:
name=""
while name!="RGM":
name=input("Enter Name:")
print("Thanks for confirmation")
Enter Name:SREC
Enter Name:GPR
Enter Name:KSRM
Enter Name:AITS
Enter Name:RGM
Thanks for confirmation
Syntax:
for x in sequence:
body
In [1]:
s="Sahasra"
for x in s :
print(x)
S
a
h
a
s
r
a
In [3]:
s="Sahasra"
for x in s :
print(x,end='\t')
S a h a s r a
In [5]:
s = 'Hello'
for i in range(1,11):
print(s)
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
In [7]:
s = 'Hello'
for i in range(10):
print(s)
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
for i in range(0,11):
print(i,end=' ')
0 1 2 3 4 5 6 7 8 9 10
In [9]:
for i in range(21):
if(i%2!=0):
print(i,end=' ')
1 3 5 7 9 11 13 15 17 19
In [10]:
for i in range(10,0,-1):
print(i,end=' ')
10 9 8 7 6 5 4 3 2 1
In [11]:
list=eval(input("Enter List:"))
sum=0;
for x in list:
sum=sum+x;
print("The Sum=",sum)
Enter List:10,20,30,40
The Sum= 100
In [12]:
list=eval(input("Enter List:"))
sum=0;
for x in list:
sum=sum+ x;
print("The Sum=",sum)
Enter List:[10,20,30,40]
The Sum= 100
Nested Loops:
Sometimes we can take a loop inside another loop,which are also known as nested loops.
Eg 1:
In [16]:
for i in range(3):
for j in range(2):
print('Hello')
Hello
Hello
Hello
Hello
Hello
Hello
Eg 2:
In [17]:
for i in range(4):
for j in range(4):
print('i = {} j = {}'.format(i,j))
i = 0 j = 0
i = 0 j = 1
i = 0 j = 2
i = 0 j = 3
i = 1 j = 0
i = 1 j = 1
i = 1 j = 2
i = 1 j = 3
i = 2 j = 0
i = 2 j = 1
i = 2 j = 2
i = 2 j = 3
i = 3 j = 0
i = 3 j = 1
i = 3 j = 2
i = 3 j = 3
Pattern-3:
12345
12345
12345
12345
12345
In [24]:
n=int(input("Enter the number of rows: ")) for i in range(1,n+1): for j in range(1,n+1): print(n+1-i,end=" ")
print()
In [28]:
Alternative Way:
In [32]:
In [44]:
In [6]:
Alternative Way:
In [7]:
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
Another Pattern:
In [9]:
22
333
4444
55555
In [10]:
B B
C C C
D D D D
E E E E E
F F F F F F
G G G G G G G
H H H H H H H H
In [14]:
In [12]:
In [16]:
In [18]:
In [19]:
In [21]:
In [25]:
In [26]:
In [31]:
In [32]:
In [37]:
In [41]:
In [42]:
n=int(input("Enter a number:"))
for i in range(1,n+1):
print(" "*(n-i),end="")
for j in range(1,i+1):
print(n+1-j,end="")
print()
Enter a number:5
5
54
543
5432
54321
In [44]:
n=int(input("Enter a number:"))
for i in range(1,n+1):
print(" "*(n-i),end="")
for j in range(1,i+1):
print(n-j+1,end=" ")
print()
Enter a number:5
5
5 4
5 4 3
5 4 3 2
5 4 3 2 1
Pattern 47:
In [45]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(1,num+2-i):
print("*",end=" ")
for k in range(1,num+1-i):
print("*",end=" ")
print()
Enter a number:5
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
In [47]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(1,num+2-i):
print("*",end="")
for k in range(1,num+1-i):
print("*",end="")
print()
Enter a number:5
*********
*******
*****
***
*
Alternative Way:
In [48]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(1,num+2-i):
print("*",end=" ")
print()
Enter a number:5
* * * * *
* * * *
* * *
* *
*
Pattern 48:
In [49]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(0,num+1-i):
print(num+1-i,end="")
for k in range(1,num+1-i):
print(num+1-i,end="")
print()
Enter a number:5
555555555
4444444
33333
222
1
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(0,num+2-i):
print(num+1-i,end="")
for k in range(1,num-i+1):
print(num+1-i,end="")
print()
Enter a number:5
5555555555
44444444
333333
2222
11
Pattern 49:
In [51]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(0,num+1-i):
print(2*num+1-2*i,end="")
for k in range(1,num+1-i):
print(2*num+1-2*i,end="")
print()
Enter a number:5
999999999
7777777
55555
333
1
Pattern 50:
In [52]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(i-1),end="")
for j in range(1,num+2-i):
print(j,end="")
for k in range(2,num+2-i):
print(num+k-i,end="")
print()
Enter a number:5
123456789
1234567
12345
123
1
d) Demonstrate the following control transfer statements in Python with suitable examples.
i) break:
We can use break statement inside loops to break loop execution based on some condition.
In [3]:
for i in range(10):
if i==7:
print("processing is enough..plz break")
break
print(i)
0
1
2
3
4
5
6
processing is enough..plz break
In [4]:
cart=[10,20,600,60,70]
for item in cart:
if item>500:
print("To place this order insurence must be required")
break
print(item)
10
20
To place this order insurence must be required
ii) continue:
We can use continue statement to skip current iteration and continue next iteration.
In [5]:
for i in range(10):
if i%2==0:
continue
print(i)
1
3
5
7
9
Eg 2:
In [6]:
cart=[10,20,500,700,50,60]
for item in cart:
if item >= 500:
print("We cannot process this item :",item)
continue
print(item)
10
20
We cannot process this item : 500
We cannot process this item : 700
50
60
Eg 3:
In [7]:
numbers=[10,20,0,5,0,30]
for n in numbers:
if n==0:
print("Hey how we can divide with zero..just skipping")
continue
print("100/{} = {}".format(n,100/n))
100/10 = 10.0
100/20 = 5.0
Hey how we can divide with zero..just skipping
100/5 = 20.0
Hey how we can divide with zero..just skipping
100/30 = 3.3333333333333335
Inside loop execution,if break statement not executed ,then only else part will be executed.
else means loop without break.
In [9]:
cart=[10,20,30,40,50]
for item in cart:
if item>=500:
print("We cannot process this order")
break
print(item)
else:
print("Congrats ...all items processed successfully")
10
20
30
40
50
Congrats ...all items processed successfully
In [11]:
cart=[10,20,600,30,40,50]
for item in cart:
if item>=500:
print("We cannot process this order")
break
print(item)
else:
print("Congrats ...all items processed successfully")
10
20
We cannot process this order
iii) pass:
pass is a keyword in Python.
In our programming syntactically if block is required which won't do anything then we can define that
empty block with pass keyword.
pass statement ==>
1. It is an empty statement
2. It is null statement
3. It won't do anything
In [12]:
if True: # It is invalid
In [13]:
if True:
pass # It is valid
In [14]:
In [15]:
def m1():
pass # It is valid
Use of pass:
Sometimes in the parent class we have to declare a function with empty body and child class
responsible to provide proper implementation. Such type of empty body we can define by using pass
keyword. (It is something like abstract method in java).
Example:
In [16]:
for i in range(100):
if i%9==0:
print(i)
else:
pass
0
9
18
27
36
45
54
63
72
81
90
99
In [33]:
In [34]:
In [35]:
In [36]:
Q5. Write a program to check whether the given number is even or odd?
In [37]:
Q6. Write a program to check whether the given number is in between 1 and 100?
In [40]:
n=int(input("Enter Number:"))
if n>=1 and n<=100 :
print("The number",n,"is in between 1 to 100")
else:
print("The number",n,"is not in between 1 to 100")
Enter Number:45
The number 45 is in between 1 to 100
In [41]:
n=int(input("Enter Number:"))
if n>=1 and n<=100 :
print("The number",n,"is in between 1 to 100")
else:
print("The number",n,"is not in between 1 to 100")
Enter Number:123
The number 123 is not in between 1 to 100
Q7. Write a program to take a single digit number from the key board and print it's value in English
word?
In [42]:
In [43]:
list1 = ['ZERO','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT','NINE']
n =int(input('Enter a digit from 0 to 9 :'))
print(list1[n])
In [45]:
list1 = ['ZERO','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT','NINE']
n =int(input('Enter a digit from 0 to 9 :'))
print(list1[n])
--------------------------------------------------------------------------
-
IndexError Traceback (most recent call las
t)
<ipython-input-45-bbd0655ae62d> in <module>
1 list1 = ['ZERO','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','E
IGHT','NINE']
2 n =int(input('Enter a digit from 0 to 9 :'))
----> 3 print(list1[n])
In [47]:
words_upto_19 = ['','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT',
'NINE','TEN','ELEVEN','TWELVE','THIRTEEN','FOURTEEN','FIFTEEN',
'SIXTEEN','SEVENTEEN','EIGHTEEN','NINETEEN']
words_for_tens = ['','','TWENTY','THIRTY','FORTY','FIFTY','SIXTY','SEVENTY',
'EIGHTY','NINETY']
n = int(input('Enter a number from 0 to 99 : '))
output = ''
if n == 0:
output = 'ZERO'
elif n <= 19:
output = words_upto_19[n]
elif n<=99:
output = words_for_tens[n//10]+' '+words_upto_19[n%10]
else:
output = 'Pleae Enter a value fron 0 to 99 only'
print(output)
words_upto_19 = ['','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT',
'NINE','TEN','ELEVEN','TWELVE','THIRTEEN','FOURTEEN','FIFTEEN',
'SIXTEEN','SEVENTEEN','EIGHTEEN','NINETEEN']
words_for_tens = ['','','TWENTY','THIRTY','FORTY','FIFTY','SIXTY','SEVENTY',
'EIGHTY','NINETY']
n = int(input('Enter a number from 0 to 99 : '))
output = ''
if n == 0:
output = 'ZERO'
elif n <= 19:
output = words_upto_19[n]
elif n<=99:
output = words_for_tens[n//10]+' '+words_upto_19[n%10]
else:
output = 'Pleae Enter a value fron 0 to 99 only'
print(output)
In [49]:
words_upto_19 = ['','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT',
'NINE','TEN','ELEVEN','TWELVE','THIRTEEN','FOURTEEN','FIFTEEN',
'SIXTEEN','SEVENTEEN','EIGHTEEN','NINETEEN']
words_for_tens = ['','','TWENTY','THIRTY','FORTY','FIFTY','SIXTY','SEVENTY',
'EIGHTY','NINETY']
n = int(input('Enter a number from 0 to 99 : '))
output = ''
if n == 0:
output = 'ZERO'
elif n <= 19:
output = words_upto_19[n]
elif n<=99:
output = words_for_tens[n//10]+' '+words_upto_19[n%10]
else:
output = 'Pleae Enter a value fron 0 to 99 only'
print(output)
words_upto_19 = ['','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT',
'NINE','TEN','ELEVEN','TWELVE','THIRTEEN','FOURTEEN','FIFTEEN',
'SIXTEEN','SEVENTEEN','EIGHTEEN','NINETEEN']
words_for_tens = ['','','TWENTY','THIRTY','FORTY','FIFTY','SIXTY','SEVENTY',
'EIGHTY','NINETY']
n = int(input('Enter a number from 0 to 99 : '))
output = ''
if n == 0:
output = 'ZERO'
elif n <= 19:
output = words_upto_19[n]
elif n<=99:
output = words_for_tens[n//10]+' '+words_upto_19[n%10]
else:
output = 'Pleae Enter a value fron 0 to 99 only'
print(output)
Q8. Python program to find all prime numbers within a given range.
Theory:
Prime numbers:
A prime number is a natural number greater than 1 and having no positive divisor other than 1 and itself.
Composite number: Other natural numbers that are not prime numbers are called composite numbers.
Here is source code of the Python Program to check if a number is a prime number.
In [24]:
Enter Range: 20
2
3
5
7
11
13
17
19
In [25]:
Enter Range: 20
2 3 5 7 11 13 17 19
Theory:
In [27]:
Q10. Write a Python program to compute distance between two points taking input from the user
(Pythagorean Theorem).
In [30]:
import math;
x1=int(input("Enter x1--->"))
y1=int(input("Enter y1--->"))
x2=int(input("Enter x2--->"))
y2=int(input("Enter y2--->"))
d1 = (x2 - x1) * (x2 - x1);
d2 = (y2 - y1) * (y2 - y1);
res = math.sqrt(d1+d2)
print ("Distance between two points:",res);
Enter x1--->5
Enter y1--->10
Enter x2--->15
Enter y2--->20
Distance between two points: 14.142135623730951
def gcd(a,b):
if(b==0):
return a
else:
return gcd(b,a%b)
a=int(input("Enter first number:"))
b=int(input("Enter second number:"))
print (gcd(a,b))
In [34]:
Enter a number:3
Enter a number:4
Exponent 81
Q13. A cashier has currency notes of denominations 10, 50 and 100. If the amount to be withdrawn is
input through the keyboard in hundreds, write a Python program find the total number of currency
notes of each denomination the cashier will have to give to the withdrawer.
In [4]:
In [6]:
Q14. Python Program to calculate overtime pay of 10 employees. Overtime is paid at the rate of Rs.
12.00 per hour for every hour worked above 40 hours. Assume that employees do not work for
fractional part of an hour.
In [7]:
overtime_pay = 0
for i in range(10) :
print("\nEnter the time employee worked in hr ")
time_worked = int(input())
if (time_worked>40):
over_time = time_worked - 40
overtime_pay = overtime_pay + (12 * over_time)
print("\nTotal Overtime Pay Of 10 Employees Is ", overtime_pay)
Q15. A library charges a fine for every book returned late. For first five days the fine is 50 paise, for 6
to 10 days fine is one rupee, and above 10 days fine is five rupees. If you return the book after 30
days your membership will be cancelled. Write a Python program to accept the number of days the
member is late to return the book and display the fine or the appropriate message.
In [16]:
In [17]:
In [18]:
Q16. Two numbers are entered through keyboard, Write a Python program to find the value of one
number raised to the power another.
In [20]:
import math
n1 = int(input("Please enter a number : "))
exp = int(input("Please enter exponent value : "))
power = math.pow(n1,exp)
Viva Questions:
Q 1. What is the difference between for loop and while loop in Python?
GOOD LUCK
Experiment 4:
i)
In [1]:
ii)
In [3]:
iii)
In [6]:
In [7]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(num-i),end="")
for j in range(1,i+1):
print(num-j,end=" ")
print()
for k in range(1,num):
print(" "*k,end="")
for l in range(1,num+1-k):
print(num-l,end=" ")
print()
Enter a number:5
4
4 3
4 3 2
4 3 2 1
4 3 2 1 0
4 3 2 1
4 3 2
4 3
4
v)
In [8]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
for j in range(1,i+1):
print(num-i+j-1,end=" ")
print()
for a in range(1,num+1):
for k in range(0,num-a):
print(k+a,end=" ")
print()
Enter a number:5
4
3 4
2 3 4
1 2 3 4
0 1 2 3 4
1 2 3 4
2 3 4
3 4
4
vi)
In [16]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(num-i),end="")
for j in range(1,i+1):
print("*",end=" ")
print(" "*(num-i),end="")
for k in range(1,i+1):
print("*",end=" ")
print()
Enter a number:5
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
vii)
In [17]:
n=int(input("Enter a number"))
for i in range(1,2*n+1):
if i%2==0:
print("*"*i,end=" ")
else:
print("*"*(i+1),end=" ")
print()
Enter a number5
**
**
****
****
******
******
********
********
**********
**********
viii)
In [18]:
num=int(input("Enter a number:"))
for i in range(1,num+1):
print(" "*(num-i),end="")
for j in range(0,i):
print(chr(65+num+j-i),end=" ")
print()
for k in range(1,num):
print(" "*k,end="")
for l in range(0,num-k):
print(chr(65+k+l),end=" ")
print()
Enter a number:5
E
D E
C D E
B C D E
A B C D E
B C D E
C D E
D E
E
Experiment 5:
What is String?
Any sequence of characters within either single quotes or double quotes is considered as a String.
Syntax:
s='karthi'
s="karthi"
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.
In [1]:
ch = 'a'
print(type(ch))
<class 'str'>
1. By using index
1. By using index:
s = 'Karthi'
print(s[0])
print(s[5])
print(s[-1])
print(s[19])
K
i
i
--------------------------------------------------------------------------
-
IndexError Traceback (most recent call las
t)
<ipython-input-2-d39a6b459de8> in <module>
3 print(s[5])
4 print(s[-1])
----> 5 print(s[19])
Eg: Q 1. Write a program to accept some string from the keyboard and display its characters by index
wise(both positive and negative index).
In [6]:
string_Name [beginindex:endindex:step]
Here,
Note:
In [7]:
s = 'abcdefghijk'
print(s[2:7])
cdefg
In [8]:
s = 'abcdefghijk'
print(s[:7])
abcdefg
In [9]:
s = 'abcdefghijk'
print(s[2:])
cdefghijk
In [10]:
s = 'abcdefghijk'
print(s[:])
abcdefghijk
In [11]:
s = 'abcdefghijk'
print(s[2:7:1])
cdefg
In [12]:
s = 'abcdefghijk'
print(s[2:7:2])
ceg
In [13]:
s = 'abcdefghijk'
print(s[2:7:3])
cf
In [14]:
s = 'abcdefghijk'
print(s[::1])
abcdefghijk
In [15]:
s = 'abcdefghijk'
print(s[::2])
acegik
In [16]:
s = 'abcdefghijk'
print(s[::3])
adgj
In [17]:
Out[17]:
'earnin'
In [18]:
Out[18]:
'earnin'
In [19]:
Out[19]:
'eri'
In [20]:
Out[20]:
'Learnin'
In [21]:
Out[21]:
In [22]:
Out[22]:
In [23]:
Out[23]:
In [24]:
Out[24]:
s = 'Learning Python'
print(s[::-1])
print(s[::-2])
print(s[::-3])
print(s[::-5])
print(s[::-10])
print(s[::-100])
print(s[3:5:-1])
print(s[3:5:1])
print(s[5:3:-1])
print(s[5:0:-1])
print(s[-2:-1:-1])
print(s[2:-1:-1])
print(s[2:0:1])
print(s[0:0:1])
nohtyP gninraeL
nhy nnaL
nt ia
nPn
nn
n
rn
in
inrae
Important Conclusions:
1. In the backward direction if the end value is -1, then the result is always empty string.
2. In the farward diretions if the end value is 0, then the result is always empty string.
In forward direction:
In backward direction:
Note:
Either forward or backward direction, we can take both +ve and -ve values for begin and end index.
b) Demonstrate the following functions/methods which operates on strings in Python with suitable
examples:
i.len():
We can use len() function to find the number of characters present in the string.
In [28]:
s='karthi'
print(len(s)) #6
Q1. Write a Python program to access each character of string in forward and backward direction by
using while loop.
In [29]:
Forward direction
L e a r n i n g P y t h o n i s v e r y e a s y ! ! !
Backward direction
! ! ! y s a e y r e v s i n o h t y P g n i n r a e L
Alternative way [Using slice operator]:
In [30]:
Forward direction
L e a r n i n g P y t h o n i s v e r y e a s y ! ! !
Forward direction
L e a r n i n g P y t h o n i s v e r y e a s y ! ! !
Backward Direction
! ! ! y s a e y r e v s i n o h t y P g n i n r a e L
Another Alternative:
In [31]:
To remove the blank spaces present at either beginning and end of the string, we can use the following 3
methods:
1. rstrip() ===>To remove blank spaces present at end of the string (i.e.,right hand side)
2. lstrip()===>To remove blank spaces present at the beginning of the string (i.e.,left hand side)
3. strip() ==>To remove spaces both sides
ii.strip():
In [1]:
In [3]:
iii.rstrip():
Used to remove blank spaces present at end of the string (i.e.,right hand side)
In [4]:
In [5]:
iv.lstrip():
Used to remove blank spaces present at the beginning of the string (i.e.,left hand side)
In [6]:
In [7]:
In [9]:
Finding Substrings:
If you want to find whether the substring is available in the given string or not in Python, we have 4
methods.
1. find()
2. index()
1. rfind()
2. rindex()
v.find():
Syntax:
Returns index of first occurrence of the given substring. If it is not available then we will get -1
In [11]:
9
-1
3
21
By default find() method can search total string. We can also specify the boundaries to search.
Syntax:
In [12]:
s="karthikeyasahasra"
print(s.find('a')) #1
print(s.find('a',7,15)) #9
print(s.find('z',7,15)) #-1
1
9
-1
vi. rfind():
In [13]:
9
-1
3
21
vii. index():
index() method is exactly same as find() method except that if the specified substring is not available
then we will get ValueError.
In [14]:
s = 'abbaaaaaaaaaaaaaaaaabbababa'
print(s.index('bb',2,15))
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-14-136a30f266f9> in <module>
1 s = 'abbaaaaaaaaaaaaaaaaabbababa'
----> 2 print(s.index('bb',2,15))
s = 'abbaaaaaaaaaaaaaaaaabbababa'
print(s.index('bb'))
In [17]:
In [18]:
viii. rindex():
In [16]:
s = 'abbaaaaaaaaaaaaaaaaabbababa'
print(s.rindex('bb'))
20
ix. count():
We can find the number of occurrences of substring present in the given string by using count() method.
s="abcabcabcabcadda"
print(s.count('a')) #6
print(s.count('ab')) #4
print(s.count('a',3,7)) #2
6
4
2
In [20]:
s = 'abcdcdckk'
print(s.count('cdc'))
Q. Write a Python Program to display all positions of substring in a given main string.
In [21]:
In [23]:
Alternate Way:
In [24]:
In [25]:
x. replace():
We can repalce a string with another string in python using a library function replace().
Syntax:
s.replace(oldstring,newstring)
Here, inside 's', every occurrence of oldstring will be replaced with new string.
In [26]:
s="ababababababab"
print(id(s))
s1=s.replace("a","b") # All occurrences will be replaced
print(id(s1))
print(s1)
2374771477808
2374771516016
bbbbbbbbbbbbbb
In [29]:
s="ababababababab"
print(id(s))
s=s.replace("a","b") # two objcets are created
print(id(s))
print(s)
2374771477808
2374771517552
bbbbbbbbbbbbbb
Q. String objects are immutable then how we can change the content by using replace() method.
Ans: Once we creates string object, we cannot change the content.This non changeable behaviour is
nothing but immutability. If we are trying to change the content by using any method, then with those changes
a new object will be created and changes won't be happend in existing object.
Hence with replace() method also a new object got created but existing object won't be changed.
In [30]:
s="abab"
s1=s.replace("a","b")
print(s,"is available at :",id(s))
print(s1,"is available at :",id(s1))
In the above example, original object is available and we can see new object which was created because of
replace() method.
How can you replace the string 'difficult' with 'easy' and 'easy' with 'difficult'?
In [31]:
In [32]:
In [33]:
xi. split():
We can split the given string according to specified seperator by using split() method.
We can split the given string according to specified seperator in reverse direction by using rsplit()
method.
Syntax :
Here,
Note:
rsplit() breaks the string at the seperator staring from the right and returns a list of strings.
In [34]:
cse
ece
eee
In [35]:
s="22-02-2018"
l=s.split('-')
for x in l:
print(x)
22
02
2018
In [36]:
s="22-02-2018"
l=s.split() # no space in the string , so output is same as the given string
for x in l:
print(x)
22-02-2018
In [37]:
rgm
nandyal
cse
ece
eee
In [38]:
rgm nandyal
cse
ece
eee
In [39]:
In [40]:
--------------------------------------------------------------------------
-
AttributeError Traceback (most recent call las
t)
<ipython-input-40-24e277deda26> in <module>
1 s = 'rgm nandyal cse ece eee me ce'
----> 2 l=s.lsplit(' ',3)
3 for x in l:
4 print(x)
In [41]:
s = '10,20,30,40,50,60,70,80'
l = s.split(',',3)
for x in l:
print(x)
10
20
30
40,50,60,70,80
In [42]:
s = '10,20,30,40,50,60,70,80'
l = s.rsplit(',',3)
for x in l:
print(x)
10,20,30,40,50
60
70
80
In [43]:
s = '10,20,30,40,50,60,70,80'
l = s.split(',',-1)
for x in l:
print(x)
10
20
30
40
50
60
70
80
xii. join():
We can join a group of strings(list or tuple) with respect to the given seperator.
Syntax:
s=seperator.join(group of strings)
In [44]:
t=('sunny','bunny','chinny')
s='-'.join(t)
print(s)
sunny-bunny-chinny
In [45]:
l=['hyderabad','singapore','london','dubai']
s=':'.join(l)
print(s)
hyderabad:singapore:london:dubai
In [46]:
l=['hyderabad','singapore','london','dubai']
s=''.join(l)
print(s)
hyderabadsingaporelondondubai
In [47]:
l=['hyderabad','singapore','london','dubai']
s=' '.join(l)
print(s)
xiii. upper():
xiv. lower():
xv. swapcase():
Used to convert all lower case characters to upper case and all upper case characters to lower case in
the given string.
xvi. title():
Used to convert all characters to title case. (i.e first character in every word should be upper case and all
remaining characters should be in lower case in the given string).
xvii. capitalize():
Only first character will be converted to upper case and all remaining characters can be converted to
lower case.
In [48]:
Q. Write a Python program to Convert the uppercase characters into lowercase and remove spaces.
In [49]:
learningpythonisveryeasy
In [50]:
learningpythonisveryeasy
1. s.startswith(substring)
2. s.endswith(substring)
xviii. startswith():
xix. endswith():
In [51]:
True
False
True
Good Luck
Experiment 7: List Data type
a) Demonstrate the different ways of creating list objects with suitable example programs.
If we want to represent a group of individual objects as a single entity where insertion order is preserved and
duplicates are allowed, then we should go for List.
In [1]:
list=[]
print(list)
print(type(list))
[]
<class 'list'>
list = [10,20,30,40]
print(list)
print(type(list))
In [3]:
Enter List:10,20,30,40
10,20,30,40
<class 'str'>
In [4]:
list=eval(input("Enter List:"))
print(list)
print(type(list))
Enter List:[10,20,30,40]
[10, 20, 30, 40]
<class 'list'>
In [5]:
list=eval(input("Enter List:"))
print(list)
print(type(list))
Enter List:[ram,raj]
--------------------------------------------------------------------------
-
NameError Traceback (most recent call las
t)
<ipython-input-5-5a3b608c2f72> in <module>
----> 1 list=eval(input("Enter List:"))
2 print(list)
3 print(type(list))
<string> in <module>
list=eval(input("Enter List:"))
print(list)
print(type(list))
Enter List:['ram','raj']
['ram', 'raj']
<class 'list'>
In [8]:
l=list(range(0,10,2))
print(l)
# Not working in jupyter notebook but works in any standard editor
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-8-70c9fdd81115> in <module>
----> 1 l=list(range(0,10,2))
2 print(l)
3 # Not working in jupyter notebook but works in any standard editor
In [9]:
[0, 2, 4, 6, 8]
Out[9]:
[0, 2, 4, 6, 8]
In [ ]:
s="rgmiet"
l=list(s)
print(l)
In [10]:
['r','g','m','c','e','t']
Out[10]:
b) Demonstrate the following functions/methods which operates on lists in Python with suitable
examples.
xiii) clear( )
i. list():
In [ ]:
l=list(range(0,10,2))
print(l)
# Not working in jupyter notebook but works in any standard editor
ii) len():
In [1]:
n=[10,20,30,40]
print(len(n))
In [2]:
n=[10,20,30,40,'rgm']
print(len(n))
iii) count():
n=[1,2,2,2,2,3,3]
print(n.count(1))
print(n.count(2))
print(n.count(3))
print(n.count(4))
1
4
2
0
iv) index():
In [4]:
n=[1,2,2,2,2,3,3]
print(n.index(1)) # 0
print(n.index(2)) # 1
print(n.index(3)) # 5
print(n.index(4))
0
1
5
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-4-b7a2785b40f1> in <module>
3 print(n.index(2)) # 1
4 print(n.index(3)) # 5
----> 5 print(n.index(4))
Note:
If the specified element not present in the list then we will get ValueError. Hence before index() method we
have to check whether item present in the list or not by using in operator.
Example Program:
In [5]:
l = [10,20,30,40,10,20,10,10]
target = int(input('Enter value to search : '))
if target in l:
print(target,'available and its first occurrence is at ',l.index(target))
else:
print(target,' is not available')
In [6]:
l = [10,20,30,40,10,20,10,10]
target = int(input('Enter value to search : '))
if target in l:
print(target,'available and its first occurrence is at ',l.index(target))
else:
print(target,' is not available')
In [7]:
l = [10,20,30,40,10,20,10,10]
target = int(input('Enter value to search : '))
if target in l:
print(target,'available and its first occurrence is at ',l.index(target))
else:
print(target,' is not available')
v) append():
We can use append() function to add item at the end of the list.
By using this append function, we always add an element at last position.
In [8]:
list=[]
list.append("A")
list.append("B")
list.append("C")
print(list)
Q. Write a Python Program to add all elements to list upto 100 which are divisible by 10.
In [9]:
list=[]
for i in range(101):
if i%10==0:
list.append(i)
print(list)
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Another Way:
In [10]:
list= []
for i in range(0,101,10):
list.append(i)
print(list)
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
vi) insert():
In [11]:
n=[1,2,3,4,5]
n.insert(1,888)
print(n)
[1, 888, 2, 3, 4, 5]
In [12]:
n=[1,2,3,4,5]
n.insert(10,777)
n.insert(-10,999)
print(n)
print(n.index(777))
print(n.index(999))
[999, 1, 2, 3, 4, 5, 777]
6
0
Note:
If the specified index is greater than max index then element will be inserted at last position.
If the specified index is smaller than min index then element will be inserted at first position.
vii) extend():
If we waant to add all items of one list to another list,we use extend() method.
Eg:
l1.extend(l2)
In [13]:
order1=["Chicken","Mutton","Fish"]
order2=["RC","KF","FO"]
order1.extend(order2)
print(order1)
print(order2)
In [14]:
order1=["Chicken","Mutton","Fish"]
order2=["RC","KF","FO"]
order3 = order1 + order2
print(order1)
print(order2)
print(order3)
l1 = [10,20,30]
l2 = [40,50,60]
l1.extend(l2)
print(l1)
In [16]:
order=["Chicken","Mutton","Fish"]
order.extend("Mushroom")
print(order) # It adds every character as a single element to the list
['Chicken', 'Mutton', 'Fish', 'M', 'u', 's', 'h', 'r', 'o', 'o', 'm']
Explanation:
Here, 'Mushroom' is a string type, in this string 8 elements are there. These elements are added
seperately.
In [17]:
order=["Chicken","Mutton","Fish"]
order.append("Mushroom") # It adds this string as a single element to the list
print(order)
viii) remove():
We can use this function to remove specified item from the list.
If the item present multiple times then only first occurrence will be removed.
In [18]:
n=[10,20,10,30]
n.remove(10)
print(n)
If the specified item not present in list then we will get ValueError.
In [19]:
n=[10,20,10,30]
n.remove(40)
print(n)
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-19-c4e183b90359> in <module>
1 n=[10,20,10,30]
----> 2 n.remove(40)
3 print(n)
Note:
Hence before using remove() method first we have to check specified element present in the list or not by
using in operator.
In [20]:
l1= [10,20,30,40,50,60,70]
x = int(input('Enter the element to be removed : '))
if x in l1:
l1.remove(x)
print('Element removed Successfully ')
print(l1)
else:
print('Specified element is not available ')
In [21]:
l1= [10,20,30,40,50,60,70]
x = int(input('Enter the element to be removed : '))
if x in l1:
l1.remove(x)
print('Element removed Successfully ')
print(l1)
else:
print('Specified element is not available ')
ix) pop():
n=[10,20,30,40]
print(n.pop())
print(n.pop())
print(n)
40
30
[10, 20]
In [23]:
n=[]
print(n.pop())
--------------------------------------------------------------------------
-
IndexError Traceback (most recent call las
t)
<ipython-input-23-bfeb9843d2be> in <module>
1 n=[]
----> 2 print(n.pop())
Note:
1. pop() is the only function which manipulates the list and returns some value.
2. In general we can use append() and pop() functions to implement stack datastructure by using list,which
follows LIFO(Last In First Out) order.
3. In general we can use pop() function to remove last element of the list. But we can also use pop()
function to remove elements based on specified index.
n=[10,20,30,40,50,60]
print(n.pop()) #60
print(n.pop(1)) #20
print(n.pop(10)) # IndexError: pop index out of range
60
20
--------------------------------------------------------------------------
-
IndexError Traceback (most recent call las
t)
<ipython-input-24-47504bb9f619> in <module>
2 print(n.pop()) #60
3 print(n.pop(1)) #20
----> 4 print(n.pop(10)) # IndexError: pop index out of range
Note:
List objects are dynamic (i.e., based on our requirement we can increase and decrease the size).
x) reverse():
In [25]:
n=[10,20,30,40]
n.reverse()
print(n)
In [26]:
n=[20,5,15,10,0]
n.sort()
print(n)
In [27]:
s=["Dog","Banana","Cat","Apple"]
s.sort()
print(s)
In [28]:
s=["Dog","Banana","Cat","apple"]
s.sort() # Unicode values are used during comparison of alphbets
print(s)
Note:
To use sort() function, compulsory list should contain only homogeneous elements, otherwise we will get
TypeError.
In [29]:
n=[20,10,"A","B"]
n.sort()
print(n)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-29-76d0c10ed9e7> in <module>
1 n=[20,10,"A","B"]
----> 2 n.sort()
3 print(n)
In [30]:
n=[40,10,30,20]
n.sort()
n.reverse()
print(n)
Alternate Way:
We can sort according to reverse of default natural sorting order by using reverse = True argument.
In [31]:
n=[40,10,30,20]
n.sort()
print(n) #[10,20,30,40]
n.sort(reverse=True)
print(n) #[40,30,20,10]
n.sort(reverse=False)
print(n) #[10,20,30,40]
In [32]:
s=["Dog","Banana","Cat","Apple"]
s.sort(reverse= True) # reverse of Alphabetical order
print(s)
The process of giving another reference variable to the existing list is called aliasing.
In [33]:
x=[10,20,30,40]
y=x
print(id(x))
print(id(y))
1979461271296
1979461271296
The problem in this approach is by using one reference variable if we are changing content,then those
changes will be reflected to the other reference variable.
In [34]:
x=[10,20,30,40]
y=x
y[1]=777
print(x)
Cloning: The process of creating exactly duplicate independent object is called cloning.
1. slice operator
2. copy() function
x=[10,20,30,40]
y=x[:]
y[1]=777
print(x) #[10,20,30,40]
print(y) #[10,777,30,40]
xii) copy():
In [36]:
x=[10,20,30,40]
y=x.copy()
y[1]=777
print(x) # [10,20,30,40]
print(y) # [10,777,30,40]
Ans: = operator meant for aliasing copy() function meant for cloning.
xiii) clear():
In [37]:
n=[10,20,30,40]
print(n)
n.clear()
print(n)
i) List slicing
i) List slicing:
Syntax:
list2= list1[start:stop:step]
start ==>it indicates the index where slice has to start default value is 0
stop ===>It indicates the index where slice has to end default value is max allowed index of list ie length
of the list
step ==>increment value (step default value is 1)
In [1]:
l = [10,20,30,40,50,60]
print(l[::])
In [2]:
l = [10,20,30,40,50,60]
l1=l[::]
print(l1)
In [3]:
l = [10,20,30,40,50,60]
print(l[::2])
In [4]:
l = [10,20,30,40,50,60]
print(l[::-1])
In [5]:
l = [10,20,[30,40],50,60]
print(l[0:3:])
n=[1,2,3,4,5,6,7,8,9,10]
print(n[2:7:2]) #3,5,7
print(n[4::2]) # 5,7,9
print(n[3:7]) #4,5,6,7
print(n[8:2:-2]) # 9,7,5
print(n[4:100]) # 5,6,7,8,9,10
[3, 5, 7]
[5, 7, 9]
[4, 5, 6, 7]
[9, 7, 5]
[5, 6, 7, 8, 9, 10]
It is very easy and compact way of creating list objects from any iterable objects(like
list,tuple,dictionary,range etc) based on some condition.
Syntax:
In [7]:
l1=[]
for x in range(1,11):
l1.append(x*x)
print(l1)
In the above case, the program consisting 4 lines of code. Now for the same purpose we will write the
following code in more concised way.
In [8]:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289,
324, 361, 400]
[4, 16, 36, 64, 100, 144, 196, 256, 324, 400]
In [10]:
In [11]:
[2, 4, 6, 8, 10]
In [12]:
[1, 3, 5, 7, 9]
In [13]:
In [14]:
words=["Balaiah","Nag","Venkatesh","Chiranjeevi"]
l=[w[0] for w in words]
print(l)
In [15]:
words=["Balaiah","Nag","Venkatesh","Chiranjeevi"]
l=[w for w in words if len(w)>6]
print(l)
In [16]:
num1=[10,20,30,40]
num2=[30,40,50,60]
num3=[ i for i in num1 if i not in num2]
print(num3)
[10, 20]
In [17]:
Q1. Write a Python program to find the maximum number of a list of numbers.
In [36]:
Q2. Write a Python program to find the minimum number of a list of numbers.
In [39]:
Good Luck
Experiment 8: Tuple Data type
a) Demonstrate the different ways of creating tuple objects with suitable example programs.
Introduction:
1. Tuple is exactly same as List except that it is immutable. i.e., once we creates Tuple object,we cannot
perform any changes in that object. Hence Tuple is Read Only Version of List.
2. If our data is fixed and never changes then we should go for Tuple.
3. Insertion Order is preserved.
4. Duplicates are allowed.
5. Heterogeneous objects are allowed.
6. We can preserve insertion order and we can differentiate duplicate objects by using index. Hence index
will play very important role in Tuple also.
7. Tuple support both +ve and -ve index. +ve index means forward direction(from left to right) and -ve index
means backward direction(from right to left).
8. We can represent Tuple elements within Parenthesis and with comma seperator.
Note:
In [1]:
t=10,20,30,40
print(t)
print(type(t))
In [2]:
t=(10,20,30,40)
print(t)
print(type(t))
In [3]:
t = ()
print(type(t))
<class 'tuple'>
Note:
We have to take special care about single valued tuple.compulsary the value should ends with
comma,otherwise it is not treated as tuple.
In [4]:
t=(10)
print(t)
print(type(t))
10
<class 'int'>
In [5]:
t=(10,)
print(t)
print(type(t))
(10,)
<class 'tuple'>
In [6]:
t=() # valid
t=10,20,30,40 # valid
t=10 # not valid
t=10, # valid
t=(10) # notvalid
t=(10,) # valid
t=(10,20,30,40) # valid
t= (10,20,30,) # valid
In [7]:
t = (10,20,30,)
print(t)
print(type(t))
In [8]:
t=()
print(t)
print(type(t))
()
<class 'tuple'>
t = (10,)
print(t)
print(type(t))
(10,)
<class 'tuple'>
In [10]:
t = 10,20,30
print(t)
print(type(t))
In [11]:
t=eval(input("Enter Tuple:"))
print(t)
print(type(t))
Enter Tuple:(10,20,30)
(10, 20, 30)
<class 'tuple'>
In [12]:
t=eval(input("Enter Tuple:"))
print(t)
print(type(t))
Enter Tuple:10,20,30
(10, 20, 30)
<class 'tuple'>
If you have any sequence (i.e., string, list, range etc.,) which can be easily converted into a tuple by using
tuple() function.
In [13]:
list=[10,20,30]
t=tuple(list)
print(t)
print(type(t))
t=tuple(range(10,20,2))
print(t)
print(type(t))
In [15]:
t = tuple('karthi')
print(t)
print(type(t))
b) Demonstrate the following functions/methods which operates on tuples in Python with suitable
examples.
i. len():
It is an in-built function of Python, if you provide any sequnce (i.e., strings, list,tuple etc.,), in that how
many elements are there that will be returned this function.
It is used to return number of elements present in the tuple.
In [16]:
t=(10,20,30,40)
print(len(t)) # 4
ii) count():
In [17]:
t=(10,20,10,10,20)
print(t.count(10)) #3
3
In [18]:
n=(1,2,2,2,2,3,3)
print(n.count(1))
print(n.count(2))
print(n.count(3))
print(n.count(4))
1
4
2
0
In [19]:
t=(10,20,10,10,20)
print(t.count(100))
iii) index():
In [20]:
t=(10,20,10,10,20)
print(t.index(10)) # 0
print(t.index(30)) # ValueError: tuple.index(x): x not in tuple
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-20-c98072186526> in <module>
1 t=(10,20,10,10,20)
2 print(t.index(10)) # 0
----> 3 print(t.index(30)) # ValueError: tuple.index(x): x not in tuple
n=(1,2,2,2,2,3,3)
print(n.index(1)) # 0
print(n.index(2)) # 1
print(n.index(3)) # 5
print(n.index(4))
0
1
5
--------------------------------------------------------------------------
-
ValueError Traceback (most recent call las
t)
<ipython-input-21-e2f70118d739> in <module>
3 print(n.index(2)) # 1
4 print(n.index(3)) # 5
----> 5 print(n.index(4))
iv) sorted():
It is used to sort elements based on default natural sorting order (Ascending order).
In [22]:
t =(10,30,40,20)
print(sorted(t)) # sorted() is going to return list
In [23]:
t =(10,30,40,20)
t.sort()
print(t)
--------------------------------------------------------------------------
-
AttributeError Traceback (most recent call las
t)
<ipython-input-23-6dd56d99cf24> in <module>
1 t =(10,30,40,20)
----> 2 t.sort()
3 print(t)
t=(40,10,30,20)
t1=tuple(sorted(t))
print(type(t1))
print(t1)
print(type(t1))
print(t)
<class 'tuple'>
(10, 20, 30, 40)
<class 'tuple'>
(40, 10, 30, 20)
In [25]:
t=(40,10,30,20)
t1=tuple(sorted(t))
t1=sorted(t,reverse=True)
print(t1) #[40, 30, 20, 10]
v) min():
min() function return the minimum value according to default natural sorting order.
This function will works on tuple with respect to homogeneous elements only.
In [26]:
t=(40,10,30,20)
print(min(t)) #10
10
In [27]:
In [28]:
t = ('kArthi')
print(min(t))
vi) max():
max() function return the maximum value according to default natural sorting order.
This function will works on tuple with respect to homogeneous elements only.
In [29]:
t=(40,10,30,20)
print(max(t)) #40
40
In [30]:
In [31]:
t = ('kArthi')
print(max(t))
vii) cmp():
In [32]:
t1=(10,20,30)
t2=(40,50,60)
t3=(10,20,30)
print(cmp(t1,t2)) # -1
print(cmp(t1,t3)) # 0
print(cmp(t2,t3)) # +1
--------------------------------------------------------------------------
-
NameError Traceback (most recent call las
t)
<ipython-input-32-848450ec0e9e> in <module>
2 t2=(40,50,60)
3 t3=(10,20,30)
----> 4 print(cmp(t1,t2)) # -1
5 print(cmp(t1,t3)) # 0
6 print(cmp(t2,t3)) # +1
t1=(10,20,30)
t2=(40,50,60)
t3=(10,20,30)
print(t1==t2)
print(t1==t3)
print(t2==t3)
print(t1<t2) # true, because it compares only first element.
False
True
False
True
In [47]:
t1=(10,20,30)
t2=(5,50,60)
print(t1<t2)
False
viii) reversed():
In [49]:
t1=(10,20,30)
t2 = reversed(t1)
for i in t2:
print(i,end=' ')
30 20 10
Good Luck
Experiment 9: Set Data type
a) Demonstrate the different ways of creating set objects with suitable example programs.
Introduction:
If we want to represent a group of unique values as a single entity then we should go for set.
In [1]:
s = {10}
print(type(s))
print(s)
<class 'set'>
{10}
In [2]:
<class 'set'>
{5, 40, 10, 20, 30}
In [3]:
<class 'set'>
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-3-87d1e6948aef> in <module>
1 s = {30,40,10,5,20} # In the output order not preserved
2 print(type(s))
----> 3 print(s[0])
In [4]:
<class 'set'>
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-4-bf084a8b7575> in <module>
1 s = {30,40,10,5,20} # In the output order not preserved
2 print(type(s))
----> 3 print(s[0:6])
Syntax:
s=set(any sequence)
In [5]:
l = [10,20,30,40,10,20,10]
s=set(l)
print(s) # {40, 10, 20, 30} because duplicates are not allowed in set
s=set(range(5))
print(s) #{0, 1, 2, 3, 4}
{0, 1, 2, 3, 4}
In [7]:
s = set('karthi')
print(s)
In [8]:
s= set('aaabbbb')
print(s)
{'b', 'a'}
In [9]:
st=eval(input("Enter Set:"))
print(st)
print(type(st))
Enter Set:{10,20,30}
{10, 20, 30}
<class 'set'>
Note:
While creating empty set we have to take special care. Compulsory we should use set() function.
In [10]:
s = {}
print(type(s))
<class 'dict'>
In [11]:
set()
<class 'set'>
b) Demonstrate the following functions/methods which operates on sets in Python with suitable
examples.
ix)intersection() x)difference()
i. add():
In [12]:
s={10,20,30}
s.add(40); # ';' is optional for python statements
print(s) # {40, 10, 20, 30}
In [13]:
s={10,20,30}
s.add('karthi'); # ';' is optional for python statements
print(s)
ii) update():
In [14]:
s={10,20,30}
s.update('karthi'); # ';' is optional for python statements
print(s)
s={10,20,30}
l=[40,50,60,10]
s.update(l,range(5))
print(s)
In [16]:
s={10,20,30}
l=[40,50,60,10]
s.update(l,range(5),100)
print(s)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-16-96e519440e16> in <module>
1 s={10,20,30}
2 l=[40,50,60,10]
----> 3 s.update(l,range(5),100)
4 print(s)
In [17]:
s={10,20,30}
l=[40,50,60,10]
s.update(l,range(5),'100')
print(s)
In [18]:
s={10,20,30}
l=[40,50,60,10]
s.update(l,range(5),'karthi')
print(s)
{0, 1, 2, 3, 4, 'i', 'r', 40, 10, 'a', 'h', 50, 20, 'k', 60, 't', 30}
In [19]:
s =set()
s.update(range(1,10,2),range(0,10,2))
print(s)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Q1. What is the difference between add() and update() functions in set?
We can use add() to add individual item to the Set,where as we can use update() function to add
multiple items to Set.
add() function can take only one argument where as update() function can take any number of
arguments but all arguments should be iterable objects.
iii) copy():
In [21]:
s={10,20,30}
s1=s.copy()
print(s1)
print(s)
iv) pop():
s={40,10,30,20}
print(s)
print(s.pop())
print(s.pop())
print(s.pop())
print(s)
print(s.pop())
print(s) # Empty set
print(s.pop())
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-22-3f6a1609f80b> in <module>
7 print(s.pop())
8 print(s) # Empty set
----> 9 print(s.pop())
In [23]:
s={40,10,30,20}
print(s)
print(s.pop())
print(s.pop())
print(s)
In [24]:
s={40,10,30,20}
print(s)
print(s.pop())
print(s.pop())
print(s)
s={40,10,30,20}
print(s)
print(s.pop())
print(s.pop())
print(s)
Note:
How many times you may execute the code, the elements which are popped from the set in same order. The
reason is ---
v) remove():
In [26]:
s={40,10,30,20}
s.remove(30)
print(s) # {40, 10, 20}
s.remove(50) # KeyError: 50
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-26-77437864d839> in <module>
2 s.remove(30)
3 print(s) # {40, 10, 20}
----> 4 s.remove(50) # KeyError: 50
KeyError: 50
vi) discard():
s={10,20,30}
s.discard(10)
print(s) #{20, 30}
s.discard(50)
print(s) #{20, 30}
{20, 30}
{20, 30}
vii) clear():
In [2]:
s={10,20,30}
print(s)
s.clear()
print(s)
viii) union():
x.union(y) ==> We can use this function to return all elements present in both x and y sets
This operation returns all elements present in both sets x and y (without duplicate elements).
In [3]:
x={10,20,30,40}
y={30,40,50,60}
print(x.union(y)) #{10, 20, 30, 40, 50, 60} #Order is not preserved
print(x|y) #{10, 20, 30, 40, 50, 60}
ix) intersection():
Wecan perform intersection operation in two ways:
In [4]:
x={10,20,30,40}
y={30,40,50,60}
print(x.intersection(y)) #{40, 30}
print(x&y) #{40, 30}
{40, 30}
{40, 30}
x) difference():
In [5]:
x={10,20,30,40}
y={30,40,50,60}
print(x.difference(y)) #{10, 20}
print(x-y) #{10, 20}
print(y-x) #{50, 60}
{10, 20}
{10, 20}
{50, 60}
Good Luck
Experiment 10: Dictionary Data type
a) Demonstrate the different ways of creating Dictionary objects with suitable example programs.
Introduction:
We can use List,Tuple and Set to represent a group of individual objects as a single entity.
If we want to represent a group of objects as key-value pairs then we should go for Dictionary.
Eg:
rollno----name
phone number--address
ipaddress---domain name
In [1]:
d = {'Karthi':99}
print(type(d))
print(d)
<class 'dict'>
{'Karthi': 99}
In [2]:
d = {'Karthi':99,'saha':100,'Rahul':98}
print(type(d))
print(d)
<class 'dict'>
{'Karthi': 99, 'saha': 100, 'Rahul': 98}
3. Creation of set objects using dict() function:
In [3]:
d = dict()
print(type(d))
<class 'dict'>
In [5]:
d=eval(input("Enter Dictionay:"))
print(d)
print(type(d))
Enter Dictionay:{'a':100,'b':200,'c':300}
{'a': 100, 'b': 200, 'c': 300}
<class 'dict'>
In [6]:
d = {}
print(type(d))
<class 'dict'>
d[key] = value
In [7]:
d[100]="karthi"
d[200]="sahasra"
d[300]="sri"
d['rgm'] = 'Nandyal'
print(d) #{100: 'karthi', 200: 'sahasra', 300: 'sri', 'rgm' : 'Nandyal'}
b) Demonstrate the following functions/methods which operates on dictionary in Python with suitable
examples.
Q. Write a Python program to enter name and percentage marks in a dictionary and display
information on the screen.
In [8]:
rec={}
n=int(input("Enter number of students: "))
i=1
while i <= n:
name=input("Enter Student Name: ")
marks=input("Enter % of Marks of Student: ")
rec[name]=marks
i=i+1
print("Name of Student","\t","% of Marks")
for x in rec:
print("\t",x,"\t",rec[x]) # x ===> key rec[x] =====> value
i. dict():
{}
{100: 'karthi', 200: 'saha'}
{100: 'karthi', 200: 'saha', 300: 'sri'}
{100: 'karthi', 200: 'saha', 300: 'sri'}
{300: 'sri', 200: 'saha', 100: 'karthi'}
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-10-b19e5b872e1c> in <module>
9 d=dict({(100,"karthi"),(200,"saha"),(300,"sri")})
10 print(d)
---> 11 d=dict({[100,"karthi"],[200,"saha"],[300,"sri"]})
12 print(d)
Note:
Compulsory internally we need to take tuple only is acceptable. If you take list it gives the above
specified error.
If the key & values are available in the form of tuple, then all those tuple values can be coverted into
dictionary by using 'dict()' function.
ii) len():
In [11]:
iii) clear():
This function is used to remove all entries from the dictionary.
In [9]:
d={100:"karthi",200:"sahasra",300:"sri"}
print(d)
d.clear()
print(d)
iv) get():
It is used tTo get the value associated with the specified key.
i. d.get(key):
If the key is available then returns the corresponding value otherwise returns None.It wont raise any
error.
In [12]:
karthi
In [13]:
None
ii. d.get(key,defaultvalue):
If the key is available then returns the corresponding value otherwise returns default value.
In [14]:
karthi
In [15]:
ravan
{100: 'karthi', 200: 'saha'}
Another Example:
In [16]:
d={100:"karthi",200:"saha",300:"sri"}
print(d[100]) #karthi
print(d[400]) #KeyError:400
print(d.get(100)) #karthi
print(d.get(400)) #None
print(d.get(100,"Guest")) #karthi
print(d.get(400,"Guest")) #Guest
karthi
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-16-b4151f9f1cde> in <module>
1 d={100:"karthi",200:"saha",300:"sri"}
2 print(d[100]) #karthi
----> 3 print(d[400]) #KeyError:400
4 print(d.get(100)) #karthi
5 print(d.get(400)) #None
KeyError: 400
In [17]:
d={100:"karthi",200:"saha",300:"sri"}
print(d[100]) #karthi
#print(d[400]) #KeyError:400
print(d.get(100)) #karthi
print(d.get(400)) #None
print(d.get(100,"Guest")) #karthi
print(d.get(400,"Guest")) #Guest
karthi
karthi
None
karthi
Guest
v) pop():
It removes the entry associated with the specified key and returns the corresponding value.
If the specified key is not available then we will get KeyError.
Syntax:
d.pop(key)
In [18]:
d={100:"karthi",200:"saha",300:"sri"}
print(d)
print(d.pop(100))
print(d)
print(d.pop(400))
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-18-82136391b748> in <module>
3 print(d.pop(100))
4 print(d)
----> 5 print(d.pop(400))
KeyError: 400
vi) popitem():
d={100:"karthi",200:"saha",300:"sri"}
print(d)
print(d.popitem())
print(d.popitem())
print(d)
print(d.pop(400)) # KeyError
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-19-ef041cdb3d72> in <module>
4 print(d.popitem())
5 print(d)
----> 6 print(d.pop(400)) # KeyError
KeyError: 400
In [20]:
d ={}
print(d.popitem()) #KeyError: 'popitem(): dictionary is empty'
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-20-052c88c1625e> in <module>
1 d ={}
----> 2 print(d.popitem()) #KeyError: 'popitem(): dictionary is empty'
Another example:
In [21]:
d={100:"karthi",200:"saha",300:"sri"}
print(d)
print(d.popitem())
print(d.popitem())
print(d.popitem())
print(d.popitem())
print(d)
--------------------------------------------------------------------------
-
KeyError Traceback (most recent call las
t)
<ipython-input-21-45eab152fd1e> in <module>
4 print(d.popitem())
5 print(d.popitem())
----> 6 print(d.popitem())
7 print(d)
vii) keys():
In [22]:
d={100:"karthi",200:"saha",300:"sri"}
print(d.keys())
for key in d.keys():
print(key)
viii) values():
d={100:"karthi",200:"saha",300:"sri"}
print(d.values())
for key in d.values():
print(key)
ix) items():
[(k,v),(k,v),(k,v)]
In [24]:
d={100:"karthi",200:"saha",300:"sri"}
list = d.items()
print(list)
In [26]:
d={100:"karthi",200:"saha",300:"sri"}
for k,v in d.items():
print(k,"-->",v)
x) copy():
In [27]:
d={100:"karthi",200:"saha",300:"sri"}
d1=d.copy()
print(d1)
print(d)
xi) update():
Syntax:
d.update(x)
All items present in the dictionary 'x' will be added to dictionary 'd'.
In [28]:
d={100:"karthi",200:"saha",300:"sri"}
d1 ={'a':'apple', 'b':'banana'}
d.update(d1)
print(d)
{100: 'karthi', 200: 'saha', 300: 'sri', 'a': 'apple', 'b': 'banana'}
In [29]:
d={100:"karthi",200:"saha",300:"sri"}
d1 ={'a':'apple', 'b':'banana'}
d2 = {777:'A', 888:'B'}
d.update(d1,d2) # For update method. you need to pass single argument only.
print(d)
--------------------------------------------------------------------------
-
TypeError Traceback (most recent call las
t)
<ipython-input-29-b0832a652cd0> in <module>
2 d1 ={'a':'apple', 'b':'banana'}
3 d2 = {777:'A', 888:'B'}
----> 4 d.update(d1,d2) # For update method. you need to pass single argum
ent only.
5 print(d)
In [30]:
d={100:"karthi",200:"saha",300:"sri"}
d1 ={'a':'apple', 'b':'banana'}
d2 = {777:'A', 888:'B'}
d.update([(777,'A')]) # For uipdate method. you can pass list of tuple as an argument.
print(d)
In [31]:
d={100:"karthi",200:"saha",300:"sri"}
d1 ={'a':'apple', 'b':'banana'}
d2 = {777:'A', 888:'B'}
d.update([(777,'A'),(888,'B'),(999,'C')]) # you can add any no.of list of tuple element
s.
print(d)
{100: 'karthi', 200: 'saha', 300: 'sri', 777: 'A', 888: 'B', 999: 'C'}
Few More Example Programs on Dictioary data type:
Q1. Write a Python program to take dictionary from the keyboard and print the sum of values.
In [32]:
d=eval(input("Enter dictionary:"))
s=sum(d.values())
print("Sum= ",s)
Enter dictionary:{'A':100,'B':200,'c':300}
Sum= 600
In [33]:
d=eval(input("Enter dictionary:"))
s=sum(d.values())
print("Sum= ",s)
Enter dictionary:'A':100,'B':200,'c':300
File "C:\Users\HP\anaconda3\lib\site-packages\IPython\core\interactivesh
ell.py", line 3343, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
Sum() function:
In [34]:
l = [10,20,30,40]
s = sum(l) # sum() function works on list also
print('Sum is : ',s)
Sum is : 100
In [35]:
l = (10,20,30,40)
s = sum(l) # sum() function works on tuple also
print('Sum is : ',s)
l
Sum is : 100
Out[35]:
l = {10,20,30,40}
s = sum(l) # sum() function works on set also
print('Sum is : ',s)
Sum is : 100
Q2. Write a Python program to find number of occurrences of each letter present in the given string.
In [38]:
In [39]:
Q3. Write a Python program to find number of occurrences of each vowel present in the given string.
In [40]:
Q4. Write a program to accept student name and marks from the keyboard and creates a dictionary.
Also display student marks by taking student name as input.
In [41]:
Good Luck