CE100 - Chapter 3 - Operators (Expressions, Data Types and Variables)
CE100 - Chapter 3 - Operators (Expressions, Data Types and Variables)
Statements
Chapter 3
• Case Sensitive
x = 3.9 * x * ( 1 - x )
A variable is a memory location x 0.6
used to store a value (0.6).
0.6 0.6
x = 3.9 * x * ( 1 - x )
0.4
x = 3.9 * x * ( 1 - x )
4 3
* Multiplication
>>> yy = 440 * 12 >>> print 4 ** 3
>>> print yy 64 / Division
** Power
5280
>>> zz = yy / 1000 5 23
% Remainder
>>> print zz 20
5
3
Order of Evaluation
• When we string operators together - Python must know which
one to do first
x = 1 + 2 * 3 - 4 / 5 ** 6
Operator Precedence Rules
• Highest precedence rule to lowest precedence rule
• Left to right
>>> x = 1 + 2 ** 3 / 4 * 5 1 + 2 ** 3 / 4 * 5
>>> print x
11 1+8/4*5
>>>
1+2*5
Parenthesis
Power 1 + 10
Multiplication
Addition 11
Left to Right
>>> x = 1 + 2 ** 3 / 4 * 5 1 + 2 ** 3 / 4 * 5
>>> print x
11 1+8/4*5
>>> Note 8/4 goes before 4*5 1+2*5
because of the left-right
rule.
Parenthesis 1 + 10
Power
Multiplication
Addition 11
Left to Right
Operator Precedence Parenthesis
Power
Multiplication
•
Addition
Remember the rules top to bottom Left to Right
Exam Question: x = 1 + 2 * 3 - 4 / 5
Python Integer Division is
Weird!
>>> print 10 / 2
5
>>> print 9 / 2
• Integer division truncates 4
>>> print 99 / 100
• Floating point division produces 0
floating point numbers >>> print 10.0 / 2.0
5.0
>>> print 99.0 / 100.0
0.99
This changes in Python 3.0
Mixing Integer and Floating
• When you perform an >>> print 99 / 100
operation where one 0
operand is an integer and >>> print 99 / 100.0
the other operand is a 0.99
floating point the result is a >>> print 99.0 / 100
floating point 0.99
>>> print 1 + 2 * 3 / 4.0 - 5
• The integer is converted to -2.5
a floating point before the >>>
operation
What does “Type” Mean?
• In Python variables, literals,
and constants have a “type”
>>> ddd = 1 + 4
• Python knows the difference >>> print ddd
between an integer number 5
and a string >>> eee = 'hello ' + 'there'
>>> print eee
• For example “+” means hello there
“addition” if something is a
number and “concatenate” if
something is a string concatenate = put together
Several Types of Numbers
>>> xx = 1
• Numbers have two main types >>> type (xx)
• Integers are whole numbers: -14, -
<type 'int'>
>>> temp = 98.6
2, 0, 1, 100, 401233 >>> type(temp)
• Floating Point Numbers have <type 'float'>
>>> type(1)
decimal parts: -2.5 , 0.0, 98.6, 14.0
<type 'int'>
• There are other number types - they >>> type(1.0)
are variations on float and integer <type 'float'>
>>>
Type Conversions >>> print float(99) / 100
0.99
>>> i = 42
>>> type(i)
• When you put an integer and <type 'int'>
floating point in an expression >>> f = float(i)
the integer is implicitly >>> print f
converted to a float 42.0
>>> type(f)
• You can control this with the <type 'float'>
built in functions int() and >>> print 1 + 2 * float(3) / 4 - 5
float() -2.5
>>>
String Operations
• Some operators apply to strings
• + implies “concatenation” >>> print 'abc' + '123’
• * implies “multiple
Abc123
>>> print 'Hi' * 5
concatenation”
HiHiHiHiHi
• Python knows when it is dealing >>>
with a string or a number and
behaves appropriately
What is this
code doing?
hours = 35.0
rate = 12.50
pay = hours * rate
print pay
Exercise