0% found this document useful (0 votes)
9 views98 pages

Ch-8 Data Handling

The document provides an overview of data types in Python, including numbers (integers, floats, and complex), strings, lists, tuples, and dictionaries. It explains the concepts of mutable and immutable types, detailing how lists and dictionaries can be modified while strings and tuples cannot. Additionally, it covers operators and their types, including binary and unary operators.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views98 pages

Ch-8 Data Handling

The document provides an overview of data types in Python, including numbers (integers, floats, and complex), strings, lists, tuples, and dictionaries. It explains the concepts of mutable and immutable types, detailing how lists and dictionaries can be modified while strings and tuples cannot. Additionally, it covers operators and their types, including binary and unary operators.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 98

LEARNING OUTCOMES :

 DATA TYPES
 OPERATORS
 MUTABLE AND IMMUTABLE TYPES
 EXPRESSION
DATA
TYPES
Data type in Python specifies the type of data we are going to store in any
variable, the amount of memory it will take and type of operation we can
perform on a variable. Data can be of many types e.g. character, integer,
real, string etc.
Python supports following data types:
 Numbers ( int, float, complex)
 String
 List
 Tuple
 Dictionary

2
NUMBE
RS
From the name it is very clear the Number data types are used to store
numeric values. Numbers in Python can be of following types:
(i) Integers
a) Integers(signed)
b) Booleans
(ii) Floating point
(iii numbers Complex
)
Numbers

3
INTEGE
RS
Integers allows to store whole numbers only and there is no fraction parts.
Integers can be positive and negative e.g. 100, 250, -12, +50
There are two integers in Python:
1) Integers(signed) : it is normal integer representation of whole numbers.
Integers in python can be on any length, it is only limited by memory
available. In Python 3.x int data type can be used to store big or small
integer value whether it is +ve or –ve.
2) Booleans: it allows to store only two values True and False. The
internal value of boolean value True and False is 1 and 0 resp. We can
get boolean value from 0 and 1 using bool() function.

4
INTEGE
RS
>>>bool(1
) True
>>>int(Fals
e) 0
>>>str(False
) # str() function is used to convert argument to string
„False‟ type.

5
FLOATING POINT
NUMBERS
It allows to store numbers with decimal points. For e.g. 2.14. The decimal
point indicate that it is not an integer but a float value. 100 is an integer
but 100.5 is a float value. In Previous chapter we have already discussed
float values can be of type type:
1. Fractional Form : 200.50, 0.78, -12.787
2. Exponent Form : it is represented with mantissa and exponent. For e.g
>>>x = 1.5E2 # means 1.5 x 102which is
>>>print(x) 150
>>>y=12.78654E0 # 150.0
4 #
>>>print(y) 127865.4

6
FLOATING POINT
NUMBERS
Floating point number are mainly used for storing values like distance,
area, temperature etc. which have a fractional part.
Floating point numbers have two advantage over integers:
 they can represent values between the integers
 they can represent a much greater range of values
But floating point numbers suffers from one disadvantage also:
 Floating point operations are usually slower than integer operations.

In Python floating point numbers represent


machine level double precision floating point numbers i.e. 15
digit precision.

7
COMPLEX
NUMBERS
Python represent complex numbers in the form A+Bj. To represent
numbers, Python uses j or J in place of i. So in Python j −1. Both
imaginary
= and imaginary parts are of type float real
e.g.
a = 0 + 6j
b = 2.5 + 3J
>>>a=4+5j
>>>print(a #
) (4+5j)
>>>b=0+2j #(2j
>>>b )

8
COMPLEX
NUMBERS
Python allows to retrieve real and imaginary part of complex number
using attributes: real and imag
If the complex number is a then we can write a.real or a.imag
Example
>>>a=1+3.54j
>>>print(a.real) # 1.0
>>>print(a.imag #
) 3.54

9
STRIN
G
In previous chapter we have already discussed about string. Let us recall
the things:
1. String is a collection of any valid characters in a quotation marks
( „ or “ )
2. Each character of String in Python is a Unicode character
3.Strings are used to store information like name, address, descriptions. Etc
For example:
“hello”, „welcome‟, “sales2018”, “[email protected]

10
STRIN
G
In Python string is a sequence of characters and each character can be
individually access using index. From beginning the first character in
String is at index 0 and last will be at len-1. From backward direction last
character will be at index -1 and first character will be at –len.

Forward
indexing
0 1 2 3 4 5 6
messag W E L C O M E
e -7 -6 -5 -4 -3 -2 -1

Backward indexing

11
STRIN
G
To access individual character of String (Slicing). we can use the
syntax:
StringName[index position]
>>>stream=“Science”
>>>print(stream[0]
) S
>>>print(stream[3]
) e
>>>print(stream[-
1]) e

12
STRIN
G
What will be the
output:
>>>stream=“Science”
>>>print(stream[5]) #Output 1
>>>print(stream[-4]) #Output
>>>print(stream[- 2
len(stream)]) #Output
>>>print(stream[8]) 3
#Output
4

13
STRIN
G
We cannot change the individual letters of string by assignment because
string in python is immutable and hence if we try to do this, Python will
raise an error “object does not support Item assignment”
>>>name=“Ronaldo”
>>>name[1]=„i‟ # error

However we can assign string to another string. For e.g


>>>name=“Ronaldo”
>>>name=“Bekham” # no error

14
LISTS AND
TUPLES
Lists and Tuples are compound data types i.e. they allows to store
multiple values under one name of different data types.
The main difference between Lists and Tuples is List can be
changed/modified i.e. mutable type whereas Tuples cannot be
changes or modified i.e. immutable type.
Let us take this with example:
Lists: A list in python represents a list of comma-separated values of any
data type between square brackets.
[10,20,30,40,50]
[„a‟,‟e‟,‟o‟,‟i‟,‟u‟]
[“KV”,208004,97.5
]

15
EXAMPLES -
>>> family=["Mom","Dad","Sis","Bro"]
LIST
>>> family
['Mom', 'Dad', 'Sis', 'Bro']
>>> print(family)
['Mom', 'Dad', 'Sis', 'Bro']
>>>
Employee=["E001","Naman",50000,10.5]
>>> Employee
['E001', 'Naman', 50000, 10.5]
>>> print(Employee)
['E001', 'Naman', 50000, 10.5]

16
EXAMPLES -
The values stored in List are internally numbered from 0 onwards. i.e. first
LIST
element will be at position 0 and second will be at 1 and so on.

>>> Employee=["E001","Naman",50000,10.5]
>>> print(Employee[1])
Naman
>>> Employee[2]=75000
>>> print(Employee)
['E001', 'Naman', 75000, 10.5]
You can check the number of items in list using len() function
>>> print(len(Employee))
4

17
TUPLE
S
Tuples as those list which cannot be changed i.e. not modifiable. Tuples
are defined inside parenthesis and values separated by comma
Example:
>>> favorites=("Blue","Cricket","Gajar Ka Halwa")
>>> student=(1,"Aman",97.5)
>>> print(favorites)
('Blue', 'Cricket', 'Gajar Ka Halwa')
>>> print(student)
(1, 'Aman', 97.5)

18
TUPLE
S
Like List, Tuples values are also internally numbered from 0 and so on.
>>> print(favorites[1])
Cricket
>>> print(student[2])
97.5
>>> student[2]=99
>>> student[2]=99 # Error, tuple does not support assignment i.e.
immutable

19
DICTIONA
Dictionary is another feature of Python. It is an unordered set of comma
RY
separated
key:value pairs. Dictionary Items are defined in Curly Brackets { }
Keys defined in Dictionary cannot be same i.e. no two keys can be same.
>>> student={'Roll':1,'Name':"Jagga",'Per':91.5}
>>>print(student)
>>> print(student['Per'])
91.5
>>> # Key name can be string /
val={1:100,2:300,4:900} numeric
>>> print(val[1])
100
Dictionary is mutable. i.e. We can modify dictionary
elements.
>>>val[2]=1000
>>>print(val) # {1: 100, 2: 1000, 4: 900}

20
DATA TYPE
SUMMARY
Core Data
types

Number None Sequences Mappings


s
Floatin
Integer Comple String Tupl List Dictionar
g
s point x e y

Boolea
n

21
MUTABLE AND IMMUTABLE
TYPES
Python data object can be broadly categorized into two types – mutable and
immutable types. In simple words changeable/modifiable and non-modifiable
types.
1. Immutable types: are those that can never change their value in place. In
python following types are immutable: integers, float, Boolean, strings, tuples
Sample Code:
a = 10
b = ca= # will give output
15 10,10,30
From this code, you can say the value of integer a, b,c
a= could be changed effortlessly, but this is not the case. Let
20 us understand what was done behind the scene
b=
40
c= b

22
IMMUTABLE TYPES
Note: In python each value in memory is assigned a memory address. So each
time a new variable is pointing to that value they will be assigned the same
address and no new memory allocation. Let us understand the case.

valu
e
10 15 20 21 40 55
address 250 272 280 284 290 312
>>> a=10
a=
>>> b=a
10
>>> c=15
b=a
>>> print(id(a))
c=
1757402304
15 a b c
>>> print(id(b))
1757402304
Python provides id() function to get >>> print(id(c))
the address to which value /variable is 1757402384
memory
23
IMMUTABLE TYPES
Now let us understand the changes done to variable a, a = 20
b,c b = 40
c= b

valu
e
10 15 20 21 40 55
address 250 280 290 312
272 284
>>> a=20
>>> b=40
>>> c=b
>>> print(id(a))
a b 1757402464
c >>> print(id(b))
1757402784
Python provides id() function to get the >>> print(id(c))
memory address to which value /variable is 1757402784
V I N O D K U M AR V E R M A, P G T ( C S ) , K V O E F K AN P U R &
referring S AC H I N B H AR D W AJ , P G T ( C S ) , K V N O . 1 T E Z P U 24
R
IMMUTABLE
TYPES
From the previous code it is clear that variable names are stored references to a
value-object. Each time we change the value the variable‟s reference memory
address changes. So it will not store new value in same memory location that‟s
why Integer, float, Booleans, strings and tuples are immutable.
Variables (of certain type) are NOT LIKE storage containers i.e. with fixed
memory address where value changes every time. Hence they are
immutable

25
MUTABLE
TYPE
Mutable means in same memory address, new value can be stored as and when
it is required. Python provides following mutable types:
1. Lists
2. Dictionaries
3. Sets
Examples: (using List)
>>> See, even if we
employee=["E001","Rama","Sales",67000] change the value,
its reference
>>> print(id(employee))
memory address
71593896 has remained
>>> employee[3]=75000 same
>>> print(id(employee))
71593896
>>>

26
VARIABLE
INTERNALS
Python is an object oriented language. So every thing in python is an object.
An object is any identifiable entity that have some
characteristics/properties and behavior. Like integer values are object –
they hold whole numbers only(characteristics) and they support all
arithmetic operations (behavior).

Every python object has three key attributes associated with it:
1. type of object
2. value of an object
3. id of an object

27
TYPE OF AN
OBJECT
type of an object determines the operations that can be performed on the object.
Built – in function type() returns the type of an object
Example:
>>> a=100
>>> type(a)
<class 'int'>
>>> type(100)
<class 'int'>
>>> name="Jaques"
>>> type(name)
<class 'str'>

28
VALUE OF AN
OBJECT
The data items stored in the object is a value of object. The value stored in an
object is a literals. We can using print() to get the value of an object
Example:
>>> a=100
>>> print(a)
100
>>> name="Kallis"
>>> print(name)
Kallis
>>>

29
ID OF AN
OBJECT
It is the memory address of any object. Although id is dependent upon the
system where it is installed but in most cases it returns the memory
location of the object. Built in function id() returns the id of an object
Example:
>>> a=5
>>> id(5)
1911018608
>>> print(id(a))
1911018608
>>>

30
OPERATO
RS
are symbol that perform specific operation when applied on variables. Take a
look at the (Operator)
expression:
10 + 25
(Operands)

Above statement is an expression (combination of operator and


operands)

i.e. operator operates on operand.some operator requires


two
operand and some requires only one operand to operate

31
TYPES OF OPERATORS -
ARITHMETIC
Binary Operators: are those operators that require two operand to operate
upon.
Following are some Binary operators:
Operator Action
+ Addition
- Subtraction
* Multiplication
/ Division
% Remainder
** Exponent
// Floor division

32
TYPES OF OPERATORS -
ARITHMETIC
Unary Operators They require only one operand to operate like unary + and
– For e.g.
>>> a=5
>>> print(+a)
5
>>> print(-a)
-5
>>>

33
EXAMPLE – BINARY ARITHMETIC
OPERATOR
>>> num1=20
>>> num2=7
>>> val = num1 %
num2
>>>
print(val) 6
>>> val =
2**4
>>>
print(val) 16

34
EXAMPLE – BINARY ARITHMETIC
OPERATOR
>>> val = num1 /
num2
>>> print(val)
2.85714285714285
7
>>> val = num1 //
num2
>>>
print(val) 2

35
JUST A
MINUTE…
What will be the output of following
code

>>> a,b,c,d = 13.2,20,50.0,49


>>> print(a/4)
>>> print(a//4)
>>> print(20**3)
>>> print(b**3)
>>> print(c//6)
>>> print(d%5)
>>> print(d%100)

36
JUST A
MINUTE…
What will be the output of following
code
>>> x,y=-8,-15
>>> print(x//3)
>>> print(8/-3)
->>> print(8//-3)

37
JUST A
MINUTE…
What will be the output of following
code
>>> x,y=-8,-15
-3
>>> print(x//3)
>>> print(8/-3)
->>> print(8//-3)

38
JUST A
MINUTE…
What will be the output of following
code
>>> x,y=-8,-15
-3
>>>
>>> print(x//3)
print(8/-3)
-2.66665
->>> print(8//-
3)

39
JUST A
MINUTE…
What will be the output of following
code
>>> x,y=-8,-15
-3
>>>
>>> print(x//3)
print(8/-3)
-2.66665
->>> print(8//-
3) --3

40
JUST A
MINUTE…
What will be the output of following
code
>>> -11 // 5
>>> -11 % 5
>>> 11 % - 5
>>> 11 // -5

41
JUST A
MINUTE…
What will be the output of following
code -3
>>> -11 // 5
>>> -11 % 5
>>> 11 % - 5
>>> 11 // -5

42
JUST A
MINUTE…
What will be the output of following
code -3
>>> -11 // 5
4
>>> -11 % 5
>>> 11 % - 5
>>> 11 // -5

43
JUST A
MINUTE…
What will be the output of following
code -3
>>> -11 // 5
4
>>> -11 % 5
-4
>>> 11 % - 5
>>> 11 // -5

44
JUST A
MINUTE…
What will be the output of following
code -3
>>> -11 // 5
4
>>> -11 % 5
-4
>>> 11 % - 5
>>> 11 // -5 -4

45
TYPES OF OPERATORS –
AUGMENTED ASSIGNMENT
OPERATORS
It perform operation with LHS and RHS and result will be
Operator
assignedAction
to LSH Example
+= RHS added to LHS and result assigned to LHS x+=5 means x=x+5
-= RHS minus to LHS and result assigned to LHS x-=5 means x=x-5
*= RHS multiply to LHS and result assigned to LHS x*=5 means x=x*5
/= LHS divided by RHS and result assigned x/=5 means x=x/5
to LHS(FLOAT)
%= LHS divided by RHS and remainder assigned to LHS x%=5 means x=x%5
**= RHS power to LHS and result assigned to LHS x**=5 means x=x**5
//= LHS divided by RHS and result assigned to LHS (INT) x//=5 means x=x//5

46
TYPES OF OPERATORS –RELATIONAL
OPERATOR
Are used to compare two values and return the result as True or False
depending upon the result of comparison
Operator Action Example
< Less than 50<45 returns False, 40<60 returns True
> Greater than 50>45 returns True, 40>60 returns False
<= Less than or equal to 50<=50 returns True, 80<=70 returns False
>= Greater than or equal to 40>=40 returns True, 40>=90 returns False
== Equal to 80==80 returns True, 60==80 returns False
!= Not equal to 45!=90 returns True, 80!=80 returns False

47
FEW POINTS TO REMEMBER -
 For numeric types, the values are compared after removing trailing zeros after
COMPARISONS
decimal point from floating point number. For example 6 and 6.0 will be
treated as equal.
 Capital letters (ASCII code 65-90) are considered as less than small letters
(ASCII code 97-122).
 >>>‟Hello‟<„hello‟ # will give result true
 In string be careful while comparison, because special characters are also
assigned to some ASCII code. Like ASCII code of space is 32, Enter is
13.
 >>>‟Hello‟ ==„ Hello‟ # false, because there is space before H in second
string
 Like other programming language, In Python also we have to be very careful
while comparing floating value because it may gives you unexpected result.
So it is suggested not to use equality testing with floating values.

48
COMPARISON WITH FLOATING
VALUES
>>> 0.1 + 0.1+ 0.1 == 0.3
Will return False
How?
Let us check the value of 0.1+0.1+0.1
>>>print(0.1+0.1+0.1)
Output :- 0.30000000000000004
That‟s why 0.1 + 0.1+ 0.1 == 0.3 is False
Reason: In python floating numbers are approximately presented in memory
in binary form up to the allowed precision 15 digit. This approximation
may yield unexpected result if you are comparing floating value using
equality

49
RELATIONAL OPERATOR WITH ARITHMETIC
OPERATORS
Relational operator have lower priority than arithmetic operators, So if any
arithmetic operator is involved with relational operator then first arithmetic
operation will be solved then comparison .
For example
>>>a,b,c = 10,20,30
>>>a+10 > b-10
Result : True
Here Comparison will be 20>10

50
WHAT IS THE
DIFFERENCE?
If the value of a is 100 , What is the difference between the below 2
statements
Statement >>> a ==
1: 60
Statement >>> a = 60
2:

51
IDENTITY
OPERATOR
These operators are used to check if both object are pointing to same
memory address or not.

Operator Usage Description


is a is b Return True, if both operands are pointing to
same memory location, otherwise False
is not a is not b Return True, if both operands are not pointing
to same memory location, otherwise False

52
EXAMPLE OF IDENTITY
OPERATORS
>>> a =
10
>>> b =
10
>>> a is b # True
>>> c =
>>>
20 a is c #
>>> a is not False
c # True
>>> c -=10 #
>>> a is c True

53
EQUALITY(==) VS
IDENTITY(IS)
When we compare two variables pointing to same value, then both
Equality (==) and identity (is) will return True.
>>> a ,b = 10, 10
>>>a==b #
>>>a is True
b #
True
But in few cases, when two variables are pointing to same value == will
return True and is will return False

54
EXAMPL
E
>>> s1=„kvoef‟
>>>s2=input(„Enter any
String‟) Enter any String:
kvoefs1==s2
>>> # True
>>> s1 is s2 #
>>>s3 = False
„kvoef‟ #
>>>s1 is s3 True

55
FEW CASES-PYTHON CREATES TWO
DIFFERENT OBJECT THAT STORE THE
SAME VALUE
 Input of String from the console
 Dealing with large integer value
 Dealing with floating point and complex
literals

56
LOGICAL VALUE – ASSOCIATION WITH
OTHER TYPE
In python every value is associated with Boolean value True or False. Let
us See which values are True and False

False values True values


None
False All other values
are considered as
Zero (0) true
Empty Sequence “ “, [], (), {}

57
LOGICAL
OPERATORS
Python supports 3 logical operators : and , or, not
or operator : it combines 2 expressions, which make its operand. The
or
operator works in 2 ways:
(i) Relational expression as operand
(ii) Numbers or string or lists as operand

58
RELATIONAL EXPRESSION AS
OPERANDS
When relational expression is used as operand then or operator return True if
any expression is True. If both are False then only or operator will return
False.
>>> (5>6) or (6>5) # True
>>> (4==4) or # True
(7==9) #
>>> (6!=6) or False
(7>100

59
NUMBERS/STRINGS AS
OPERANDS
When numbers/strings are used as operand then output will be based on the
internal Boolean value of number/string. The result will not be the True or
False but the value used with or. However internal value of result will be
True or False.

>>> (0) or (0) #0


>>> (0) or (10) # 10
>>> (4) or (0.0) #4 >>> 20>10 or 8/0
>>> „kv‟ or „‟ # kv >5
>>> (9) or (7) #9 >>> 20<10 or 8/0
>>> „abc‟ or #
>5
„xyz‟ abc

60
and operators: it combines 2 expressions, which make its operand. The
and operator works in 2 ways:
(i) Relational expression as operand
(ii) Numbers or string or lists as
operand

61
RELATIONAL EXPRESSION AS
OPERANDS
When relational expression is used as operand then and operator return
True if both expressions are True. If any expression is False then and
operator will return False.
>>> (8>6) and (6>5) # True
>>> (4==4) and (7==9) #
>>> (7!=6) and False
(10+10>18) # True

62
NUMBERS/STRINGS AS
OPERANDS
When numbers/strings are used as operand then output will be based on the
internal Boolean value of number/string. The result will not be the True or
False, but the value used with and. However internal value of result will
be True or False.

>>> (0) and (0) #0


>>> (0) and (10) #0
>>> (4) and (0.0) #0 >>> 20<10 and 8/0
>>> „kv‟ and „‟ # >5
>>> (9) and (7) „‟ >>> 20>10 or 8/0 >5
>>> „abc‟ and #
„xyz‟ 7
#
xy
z
63
CHAINED
COMPARISON
Python can chain multiple comparisons which are like shortened version of larger
Boolean expressions. In python rather than writing 10<20 and 20<30, you can
even write 10<20<30, which is chained version of 10<20 and 20<30.
Suppose you want to check age is greater than or equal to 13 and less than or
equal to 19 then you can write using chain of condition like:
13<=age<=19

Suppose you want to check A is greater than B and C, you can write using
chain of
condition like:
B<=A>=C

64
BITWISE OPERATORS
Python provides another category of operators – Bitwise operators. Similar to
logical operators except it works on binary representation of actual data
not on its decimal value.
Operators Operations Use Description
& Bitwise and Op1 & Op2 It compares two bits and
generate a result of 1 if both bits
are 1; otherwise it return 0
| Bitwise or Op1 | Op2 It compares two bits and
generate a result of 1 if any bits
are 1; otherwise it return 0
^ Bitwise xor Op1 ^ Op2 It compares two bits and generate
a result of 1 if either bit is 1;
otherwise if both Operand are 1
or 0 it will return False
~ Bitwise ~Op1 The Compliment operator is used
compliment to invert all of the bits of the
operand

65
EXAMPLES
-&
>>> a = 10
>>> b = 12
>>> bin(a) #
>>> bin(b) 0b1010
>>> a & b #0b1100
>>> bin(a & #8
b) #
0b1000

66
EXAMPLES
-|
>>> a = 10
>>> b = 12
>>> bin(a) # 0b1010
>>> bin(b) #0b1100
>>> a | b # 14
>>> bin(a & # 0b1110
b)

67
EXAMPLES
-^
>>> a = 10
>>> b = 12
>>> bin(a) #
>>> bin(b) 0b1010
>>> a ^ b #0b1100
>>> bin(a & #6
b) #
0b0110

68
EXAMPLES
-~
>>> a =
10
>>> b = #
12
0b1010
>>> bin(a)
#0b1100
>>> bin(b)
# -11
>>> ~a
First the binary of a i.e. 10 is 1010, now using ~ operator it will invert all the
Reason:
bits so bits will be 0101 , Now Python will find 2‟s compliment of bits as :
- 1011 and result will be -ve

69
OPERATOR
PRECEDENCE
Operators Description Associativity
() Parenthesis Left-to-right
** Exponent Right-to-left
~x Bitwise compliment Left-to-right

+x, -x Positive or negative Left-to-right


*, /, / / , % Arithmetic operator Left-to-right
+, - Add, Sub Left-to-right
& Bitwise & Left-to-right
^ Bitwise XOR Left-to-right
| Bitwise OR Left-to-right
<,<=,>,>=,<>,!=,==, is, is not Comparison & Identity Left-to-right
not x Boolean Not Left-to-right
and Boolean AND Left-to-right
or Boolean OR Left-to-right

70
ASSOCIATIVITY OF
OPERATORS
It is the order in which an expression having multiple operators of same
precedence is evaluated. Almost all operators have left-to-right
associativity except exponential operator which has right-to-left
associativity.
For example if an expression contains multiplication, division and modulus
then
they will be evaluated from left to right. Take a look on example:
>>> 8 * 9 /11 //2
>>> (((8*9) / 11) // 2)
>>> 8 * ((9/11)//2)
>>> 8 * (40/ (11//2))

71
ASSOCIATIVITY OF
OPERATORS
It is the order in which an expression having multiple operators of same
precedence is evaluated. Almost all operators have left-to-right
associativity except exponential operator which has right-to-left
associativity.
For example if an expression contains multiplication, division and modulus
then
>>> 8 * 9 /11 //2 3.0
they will be evaluated from left to right. Take a look on example:
>>> (((8*9) / 11) //
2)
>>> 8 * ((9/11)//2)
>>> 8 * (40/ (11//2))

72
ASSOCIATIVITY OF
OPERATORS
It is the order in which an expression having multiple operators of same
precedence is evaluated. Almost all operators have left-to-right
associativity except exponential operator which has right-to-left
associativity.
For example if an expression contains multiplication, division and modulus
then
>>> 8 * 9 /11 //2 3.0
they will be evaluated from left to right. Take a look on example:
>>> (((8*9) / 11) // 3.0
2)
>>> 8 * ((9/11)//2)
>>> 8 * (40/ (11//2))

73
ASSOCIATIVITY OF
OPERATORS
It is the order in which an expression having multiple operators of same
precedence is evaluated. Almost all operators have left-to-right
associativity except exponential operator which has right-to-left
associativity.
For example if an expression contains multiplication, division and modulus
then
>>> 8 * 9 /11 //2 3.0
they will be evaluated from left to right. Take a look on example:
>>> (((8*9) / 11) // 3.0
2)
0.0
>>> 8 * ((9/11)//2)
>>> 8 * (40/ (11//2))

74
ASSOCIATIVITY OF
OPERATORS
It is the order in which an expression having multiple operators of same
precedence is evaluated. Almost all operators have left-to-right
associativity except exponential operator which has right-to-left
associativity.
For example if an expression contains multiplication, division and modulus
then
>>> 8 * 9 /11 //2 3.0
they will be evaluated from left to right. Take a look on example:
>>> (((8*9) / 11) // 3.0
2)
0.0
>>> 8 * ((9/11)//2)
64.0
>>> 8 * (40/ (11//2))

75
ASSOCIATIVITY OF
OPERATORS
An expression having multiple ** operator is evaluated from right to left.
i.e. 3 ** 4 ** 2 will be evaluated as 3 ** (4 ** 2) not (3 **4) ** 2
Guess the output
>>> 3** 4 ** 2
>>> 3 ** (4 ** 2)
>>> (3**4) ** 2

76
ASSOCIATIVITY OF
OPERATORS
An expression having multiple ** operator is evaluated from right to left.
i.e. 3 ** 4 ** 2 will be evaluated as 3 ** (4 ** 2) not (3 **4) ** 2
Guess the output
>>> 3** 4 ** 2 43046721

>>> 3 ** (4 **
2)
>>> (3**4) ** 2

77
ASSOCIATIVITY OF
OPERATORS
An expression having multiple ** operator is evaluated from right to left.
i.e. 3 ** 4 ** 2 will be evaluated as 3 ** (4 ** 2) not (3 **4) ** 2
Guess the output
>>> 3** 4 ** 2 43046721

>>> 3 ** (4 ** 43046721
2)
>>> (3**4) ** 2

78
ASSOCIATIVITY OF
OPERATORS
An expression having multiple ** operator is evaluated from right to left.
i.e. 3 ** 4 ** 2 will be evaluated as 3 ** (4 ** 2) not (3 **4) ** 2
Guess the output
>>> 3** 4 ** 2 43046721

>>> 3 ** (4 ** 43046721
2)
>>> (3**4) ** 2 6561

79
EXPRESSI
ON
We have already discussed on expression that is a combination of
operators, literals and variables (operand).
The expression in Python can be of any type:
1) Arithmetic expressions
2) String expressions
3) Relational expressions
4) Logical expressions
5) Compound expressions

80
ARITHMETIC
EXPRESSION
10 + 20
30 % 10

RELATIONAL
EXPRESSION
X>Y
X<Y<Z

81
LOGICAL
EXPRESSION
a or b
not a and not
b x>y and
y>z
STRING
EXPRESSION
>>> “python” + #pythonprogramming
“programming” #pythonpythonpytho
>>> “python” * 3 n

82
EVALUATING EXPRESSION -
ARITHMETIC
 Executed based on the operator precedence and associativity
 Implicit conversion takes place if mixed type is used in expression

IMPLICIT CONVERSION (COERCION)


An implicit conversion is a conversion performed by the interpreter without
programmer‟s intervention. It is applied generally whenever differing types
are intermixed in an expression, so as not to lose information.
The rule is very simple, Python convert all operands up to the type of the
largest operand(type promotion)

83
IMPLICIT CONVERSION
(COERCION)
If both arguments are standard numeric types, the following coercions are
applied:
 If either argument is a complex number, the other is converted to complex
 Otherwise, if either a argument is a floating number, the other is converted
to floating point
 No conversion if both operand are integers

84
EXAMPLE –
OUTPUT?
n1=10
n2=5
n4=10.
0
n5=41.
0
A=(n1+n2)/n4
B=n5/n4 *
n1/2 print(A)
print(B)

85
EXAMPLE –
OUTPUT?
n1=10
n2=5
n4=10.
0
n5=41.
0
A=(n1+n2)/n4
1.5
B=n5/n4 *
n1/2 print(A)
print(B)

86
EXAMPLE –
OUTPUT?
n1=10
n2=5
n4=10.
0
n5=41.
0
A=(n1+n2)/n4
1.5
B=n5/n4 *
n1/2 print(A) 20.5
print(B)

87
FIND THE
OUTPUT?
a) a,b =
10,5
c=b/ a

b)
a,b = 10,5
c = b // a

c)
a,b =
10,5 c =
b %a

88
EVALUATING EXPRESSION -
RELATIONAL
 Executed based on the operator precedence and associativity
 All relational expression yield Boolean value True, False
 for chained comparison like – x<y<z is equivalent to x<y and
y<z

OUTPUT?
If
(i)inputs are=
a,b,c (ii) a,b,c = 42,
20,42,42 20,20
print(a<b)
print(b<=c
)
print(a>b<
=c)

89
EVALUATING EXPRESSION -
LOGICAL
 Executed based on the operator precedence and
associativity
 Executed in the order of not, and , or
 Logical operators are short-circuit operators

OUTPUT?
(10<20) and (20<10) or (5<7) and not 7<10 and
6<7<8

90
TYPE
CASTING
We have learnt in earlier section that in an expression with mixed types,
Python internally changes the type of some operands so that all operands
have same data type. This type of conversion is automatic i.e. implicit
conversion without programmer‟s intervention
An explicit type conversion is user-defined conversion that forces an
expression to be of specific type. This type of explicit conversion is also
known as Type Casting.
Remember, in case of input() with numeric type, whatever input is given to
input() is of string type and to use it as a number we have to convert it
to integer using int() function. It is an explicit conversion or Type
Casting.
Syntax: - datatype(expression)

91
TYPE CASTING -
EXAMPLES
>>> num1 = int(input(“Enter any number “))
d = float(a) # if a is of int type then it will be converted to
float
OUTPUT
(i) int(17.8) #7
(ii) int(“20”) # 20
(iii) float(17) # 17.0
(iv) complex(17) # 17 +
(v) complex(2, 0j # 2 +
(vi) 7) str(13) 7j #
(vii str(0o19) „13‟
)
(viii) bool(0) # „17‟
(ix) bool(„a‟ #
) False
# True 92
MATH MODULE OF
PYTON
Other than build-in function, Python provides many more function through
modules in standard library. Python provides math library that works with
all numeric types except for complex numbers
To use standard math library we have to import the library in our python
program using import statement

import math

math library contains many functions to perform mathematical operations like


finding square root of number, log of number, trigonometric functions
etc.

93
SOME MATHEMATICAL
S.No
FUNCTION
Function Prototype Description Example
1 ceil() math.ceil(num) It returns the number math.ceil(2.3
rounded to next ) Ans- 3
integer
2 floor() math.floor(num) It returns the number math.floor(2.3
rounded to previous integer ) Ans- 2
3 fabs() math.fabs(num) Returns the absolute value math.fabs(-
i.e. number without sign 4) Ans – 4
4 pow() math.pow(b,e) Return the value of (b)e math.pow(2.3)
Ans- 8
5 sqrt() math.sqrt(num) It returns the square root math.sqrt(144
of number ) Ans- 12
6 sin() math.sin(num) Returns the sin value of math.sin(math
number . radian(90))
Ans- 1.0
7 exp() math.exp(num) Returns natural logarithm e math.exp(2)
raised to the num Ans-
7.3890.. 94
SOME MATHEMATICAL
FUNCTION
The math module of Python also contains two useful constant pi
and e
math.p gives you the value of constant π =
i 3.141592…

So, while gives


math.e writingyou
anythe valuewhich
formula of constant e=
uses the 2.718281
constant pi you can use
math.pi, like
area = math.pi * radius * radius

95
VALID ARITHMETIC EXPRESSION USING MATH
LIBRARY
(i) math.pow(8/4,2)
(ii) math.sqrt(4*4+2*2+3*
(iii 3) 2+math.ceil(7.03)
)
INVALID ARITHMETIC EXPRESSION

(i) 20+/4
(ii) 2(l+b)
(iii) math.pow(0,-1)
(iv math.log(-
) 5)+4/2

96
JUST A
MINUTE…
(i) What are data types? What are python built-in
(ii) datatypes Which data type of python handles
(iii) Numbers?
(iv Why Boolean considered a subtype of
) integer? Identify the data types of the values:
(v)What is5,the
5j, difference
10.6, „100‟,between mutable
“100”, 2+4j, and immutable data type?
[10,20,30],
Give name of one data
(“a”,”b”,”c”), type belonging to each category
{1:100,2:200}
(vi)What is the difference in output of the following ?
print(len(str(19//4)))
print(len(str(19/4))

97
JUST A
MINUTE…
(vii) What will be the output produced by
these? 12/4 14//14 14%4 14.0/4 14.0%
(viii) Given14.0//4 4
two variable NM is bound to string “Malala” (NM=“Malala”). What
will be the output produced by following two statement if the input given is
“Malala”? Why?
MM = input(“Enter name :”)
Enter name : Malala
(a) NM == MM (b) NM is MM

98

You might also like