0% found this document useful (0 votes)
47 views

Py4Inf 02 Expressions

This document discusses key Python concepts such as variables, constants, expressions, and data types. It explains that variables are named locations that store values, constants are fixed values like numbers and strings, and expressions are combinations of values, variables, and operators that result in a value. It also describes Python's rules for operator precedence and different number types like integers and floats. Finally, it covers type conversions between int, float, and string using functions like int() and float().
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Py4Inf 02 Expressions

This document discusses key Python concepts such as variables, constants, expressions, and data types. It explains that variables are named locations that store values, constants are fixed values like numbers and strings, and expressions are combinations of values, variables, and operators that result in a value. It also describes Python's rules for operator precedence and different number types like integers and floats. Finally, it covers type conversions between int, float, and string using functions like int() and float().
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Variables, Expressions, and

Statements
Chapter 2

Python for Informatics: Exploring Information


Constants
• Fixed values such as numbers, letters, and strings are called
“constants” - because their value does not change
• Numeric constants are as you expect
• String constants use single quotes (') >>> print 123
or double quotes (") 123
>>> print 98.6
98.6
>>> print 'Hello world'
Hello world
Variables
• A variable is a named place in the memory where a programmer can
store data and later retrieve the data using the variable “name”

• Programmers get to choose the names of the variables

• You can change the contents of a variable in a later statement

x = 12.2 x 12.2
y = 14
y 14
Variables
• A variable is a named place in the memory where a programmer can
store data and later retrieve the data using the variable “name”

• Programmers get to choose the names of the variables

• You can change the contents of a variable in a later statement

x = 12.2 x 12.2 100


y = 14
x = 100 y 14
Reserved Words

• You can not use reserved words as variable names / identifiers

and del for is raise assert elif


from lambda return break else
global not try class except if or
while continue exec import pass
yield def finally in print as with
Sentences or Lines

x = 2 Assignment statement
x = x + 2 Assignment with expression
print x Print statement

Variable Operator Constant Reserved Word


Assignment Statements
• We assign a value to a variable using the assignment statement (=)

• An assignment statement consists of an expression on the


right-hand side and a variable to store the result

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

Right side is an expression. Once 0.93


the expression is evaluated, the
result is placed in (assigned to) x.
A variable is a memory location used to
store a value. The value stored in a
variable can be updated by replacing the
x 0.6 0.93
old value (0.6) with a new value (0.93).

x = 3.9 * x * ( 1 - x )

Right side is an expression. Once the


expression is evaluated, the result is 0.93
placed in (assigned to) the variable on
the left side (i.e. x).
Numeric Expressions
Operator Operation
• Because of the lack of mathematical
symbols on computer keyboards - we use + Addition
“computer-speak” to express the classic - Subtraction
math operations
* Multiplication
• Asterisk is multiplication
/ Division
• Exponentiation (raise to a power) looks ** Power
different from in math.
% Remainder
Numeric Expressions
>>> jj = 23 Operator Operation
>>> xx = 2
>>> kk = jj % 5
>>> xx = xx + 2 + Addition
>>> print kk
>>> print xx
3 - Subtraction
4
>>> print 4 ** 3
>>> yy = 440 * 12 * Multiplication
64
>>> print yy / Division
5280
>>> zz = yy / 1000 4R3 ** Power
>>> print zz 5 23 % Remainder
5 20
3
Order of Evaluation
• When we string operators together - Python must know which one to
do first

• This is called “operator precedence”

• Which operator “takes precedence” over the others?

x = 1 + 2 * 3 - 4 / 5 ** 6
Operator Precedence Rules

Highest precedence rule to lowest precedence rule:

> Parenthesis are always respected

> Exponentiation (raise to a power)

> Multiplication, Division, and Remainder

> Addition and Subtraction


1 + 2 ** 3 / 4 * 5
>>> x = 1 + 2 ** 3 / 4 * 5
>>> print x
11 1+8/4*5
>>>
1+2*5

1 + 10

11
Operator Precedence
• Remember the rules top to bottom

• When writing code - use parenthesis

• When writing code - keep mathematical expressions simple enough


that they are easy to understand

• Break long series of mathematical operations up to make them more


clear

Exam Question: x = 1 + 2 * 3 - 4 / 5
Python Integer Division is Weird!
>>> print 10 / 2
• Integer division truncates 5
>>> print 9 / 2
• Floating point division produces 4
>>> print 99 / 100
floating point numbers 0
>>> print 10.0 / 2.0
5.0
>>> print 99.0 / 100.0
0.99
Mixing Integer and Floating
• When you perform an >>> print 99 / 100
operation where one operand 0
is an integer and the other >>> print 99 / 100.0
0.99
operand is a floating point, >>> print 99.0 / 100
the result is a floating point 0.99
>>> print 1 + 2 * 3 / 4.0 - 5
• The integer is converted to a -2.5
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 and a 5
>>> eee = 'hello ' + 'there'
string >>> print eee
hello there
• For example “+” means “addition”
if something is a number and
“concatenate” if something is a
string concatenate = put together
Type Matters
• Python knows what “type” >>> eee = 'hello ' + 'there'
>>> eee = eee + 1
everything is Traceback (most recent call last):
File "<stdin>", line 1, in <module>
• Some operations are prohibited TypeError: cannot concatenate 'str' and
'int' objects
>>> type(eee)
• You cannot “add 1” to a string <type 'str'>
>>> type('hello')
<type 'str'>
• We can ask Python what type >>> type(1)
something is by using the type() <type 'int'>
>>>
function
Several Types of Numbers
>>> xx = 1
• Numbers have two main types
>>> type (xx)
<type 'int'>
> Integers are whole numbers:
>>> temp = 98.6
-14, -2, 0, 1, 100, 401233
>>> type(temp)
> Floating Point Numbers have decimal <type 'float'>
>>> type(1)
parts: -2.5 , 0.0, 98.6, 14.0
<type 'int'>
• There are other number types - they are >>> type(1.0)
<type 'float'>
variations on float and integer
>>>
Type Conversions
>>> print float(99) / 100
0.99
• When you put an integer and >>> i = 42
>>> type(i)
floating point in an expression, <type 'int'>
the integer is implicitly >>> f = float(i)
converted to a float >>> print f
42.0

• You can control this with the


>>> type(f)
<type 'float'>
built-in functions int() and float() >>> print 1 + 2 * float(3) / 4 - 5
-2.5
>>>
String >>> sval = '123'

Conversions
>>> type(sval)
<type 'str'>
>>> print sval + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>

• You can also use int() and


TypeError: cannot concatenate 'str' and
'int'
float() to convert between >>> ival = int(sval)
>>> type(ival)
strings and integers <type 'int'>
>>> print ival + 1

• You will get an error if the 124


>>> nsv = 'hello bob'
string does not contain >>> niv = int(nsv)
Traceback (most recent call last):
numeric characters File "<stdin>", line 1, in <module>
ValueError: invalid literal for int()
User Input

• We can instruct Python to


pause and read data from
the user using the nam = raw_input('Who are you?')
print 'Welcome', nam
raw_input() function
• The raw_input() function
returns a string Who are you? Chuck
Welcome Chuck
Converting User Input
• If we want to read a
number from the user, we inp = raw_input('Europe floor?')
must convert it from a usf = int(inp) + 1
string to a number using a print 'US floor', usf
type conversion function
• Later we will deal with
Europe floor? 0
bad input data
US floor 1
Comments in Python
• Anything after a # is ignored by Python

• Why comment?

> Describe what is going to happen in a sequence of code

> Document who wrote the code or other ancillary information

> Turn off a line of code - perhaps temporarily


# Get the name of the file and open it
name = raw_input('Enter file:')
handle = open(name, 'r')
text = handle.read()
words = text.split()

# Count word frequency


counts = dict()
for word in words:
counts[word] = counts.get(word,0) + 1

# Find the most common word


bigcount = None
bigword = None
for word,count in counts.items():
if bigcount is None or count > bigcount:
bigword = word
bigcount = count

# All done
print bigword, bigcount
String Operations
• Some operators apply to strings
>>> print 'abc' +
> + implies “concatenation” '123’
abc123
> * implies “multiple concatenation”
>>> print 'Hi' * 5
• Python knows when it is dealing with HiHiHiHiHi
a string or a number and behaves >>>
appropriately
Mnemonic Variable Names
• Since we programmers are given a choice in how we choose our
variable names, there is a bit of “best practice”
• We name variables to help us remember what we intend to store in
them (“mnemonic” = “memory aid”)
• This can confuse beginning students because well-named variables
often “sound” so good that they must be keywords
Exercise

Write a program to prompt the user for hours and


rate per hour to compute gross pay.

Enter Hours: 35
Enter Rate: 2.75
Pay: 96.25
Summary
• Integer Division
• Type
• Conversion between types
• Reserved words
• User input
• Variables
• Comments (#)
• Operators

• Operator precedence
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance (
...
www.dr-chuck.com) of the University of Michigan School of
Information and open.umich.edu and made available under a
Creative Commons Attribution 4.0 License. Please maintain this
last slide in all copies of the document to comply with the
attribution requirements of the license. If you make a change,
feel free to add your name and organization to the list of
contributors on this page as you republish the materials.

Initial Development: Charles Severance, University of Michigan


School of Information

… Insert new Contributors and Translators here

You might also like