37
Introduction to Computing Using Py Python Python is an interactive language. Java or C++: compile, run Also, a main function or method Python: type expressions directly into interactive shell (or load them from a file) Wherever you want your program to start, type this into the interactive shell (or in a file that is loaded into the shell)

Introduction to Computing Using Python Python Python is an interactive language. Java or C++: compile, run Also, a main function or method Python:

Embed Size (px)

Citation preview

Introduction to Computing Using Python

Python

Python is an interactive language. Java or C++: compile, run

Also, a main function or method Python: type expressions directly into interactive shell (or

load them from a file) Wherever you want your program to start, type this

into the interactive shell (or in a file that is loaded into the shell)

Introduction to Computing Using Python

Python Download and run

http://www.python.org/download Downloads the Python language, plus an interactive shell

called idle To run: type idle into Search programs and files You can type Python expressions directly into the idle

window Or, you can open a file window by clicking New file under

the File menu, or Ctrl-o To load Python code from a file, hit F5 key

Introduction to Computing Using Python

Algebraic expressions >>> 2 + 35>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22>>> 14//34>>> 14%32

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22>>> 14//34>>> 14%32>>> 2**38>>> abs(-3.2)3.2

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22>>> 14//34>>> 14%32>>> 2**38>>> abs(-3.2)3.2>>> min(23,41,15,24)15

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22>>> 14//34>>> 14%32>>> 2**38>>> abs(-3.2)3.2>>> min(23,41,15,24)15>>> max(23,41,15,24)41

>>> 2 + 35>>> 7 - 52

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22

The Python interactive shell can be used to evaluate algebraic expressions

14//3 is the quotient when 14 is divided by 3 and 14%3 is the remainder

2**3 is 2 to the 3rd power

abs(), min(), and max() are functions

• abs() takes a number as input and returns its absolute value

• min() (resp., max()) take an arbitrary number of inputs and return the “smallest” (resp., “largest”) among them

>>> 2 + 35>>> 7 - 52>>> 2*(3+1)8>>> 5/22.5>>> 5//22>>> 14//34>>> 14%32>>> 2**38>>> min(3, 2, 4)2

Introduction to Computing Using Python

Operator precedenceIn algrabraic expressions that use more than one operator, Python must have some way to determine the order in which operators are applied.

For example:

>>> 2 + 3 * 5 (is it 25 or 17?)

It’s 17, because * has higher precedence than +

In other words * is computed first

You can always override precedence by using parentheses

Introduction to Computing Using Python

Functions

A function is a sequence of simple statements that is given a name

Many functions are built in to the Python language

Examples: abs, min, max

When you call a function, you must place parentheses after it; e.g.,

abs(-4)

NOT

abs -4

Introduction to Computing Using Python

FunctionsFunctions are often passed parameters which are pieces of informationa function needs to run

Example:

>>> abs(-3)3

Different functions take different numbers of parameters.For example:

Introduction to Computing Using Python

Functionsabs takes one parameter

>>> abs(-1)1

min takes one or more parameters>>> min(2,1)1>>> min(4, 2, 6)2

Some take no parameters

>>> import time>>> time.time()1377628104.592236

Introduction to Computing Using Python

CommentsWhen you write non-trivial code, it is important to comment it.

Comment symbol is #

Anything on a line that is after # will be ignored by the computer

Introduction to Computing Using Python

CommentsComments are used to make code more understandable forpeople (including you)

Example:

x = 3.141 * radius * radius # compute the area of a circle

Don’t overcomment:

y = 3 # set the value of y to 3

Even the first example of a comment might not benecessary

Introduction to Computing Using Python

Boolean expressionsIn addition to algebraic expressions,Python can evaluate Boolean expressions

• Boolean expressions evaluate toTrue or False

• Boolean expressions often involve arithmetic comparison operators<, >, ==, !=, <=, and >=

>>> 2 < 3True>>> 2 > 3False>>> 2 == 3False>>> 2 != 3True>>> 2 <= 3True>>> 2 >= 3False>>> 2+4 == 2*(9/3)True

In an expression containing algebraic and comparison operators:

• Algebraic operators are evaluated first• Comparison operators are evaluated next

Introduction to Computing Using Python

Logical operators

Logical operators can also be used in Boolean expressions

- and, or, not

>>> 2<3 and 3<4True>>> 4==5 and 3<4False>>> False and TrueFalse>>> True and TrueTrue>>> 4==5 or 3<4True>>> False or TrueTrue>>> False or FalseFalse>>> not(3<4)False>>> not(True)False>>> not(False)True>>> 4+1==5 or 4-1<4True

In a an expression containing algebraic, comparison, and Boolean operators:

• Algebraic operators are evaluated first• Comparison operators are evaluated next• Boolean operators are evaluated last

Introduction to Computing Using Python

Exercise >>> 25 - 214>>> 14.99 + 27.95 + 19.8362.769999999999996>>> 20*15300>>> 2**101024>>> min(3, 1, 8, -2, 5, -3, 0)-3>>> 3 == 4-2False>>> 17//5 == 3True>>> 17%5 == 3False>>> 284%2 == 0True>>> 284%2 == 0 and 284%3 == 0False>>> 284%2 == 0 or 284%3 == 0True

Translate the following into Python algebraic or Boolean expressions and then evaluate them:

a) The year that was 25 years ago (use -)b) The total of 14.99, 27.95, and 19.83c) The area of a rectangle of length 20 and width 15d) 2 to the 10th powere) The minimum of 3, 1, 8, -2, 5, -3, and 0f) 3 equals 4-2g) The value of 17//5 is 3h) The value of 17%5 is 3i) 284 is evenj) 284 is even and 284 is divisible by 3k) 284 is even or 284 is divisible by 3

Introduction to Computing Using Python

Variables and assignments

<variable> = <expression>

Just as in algebra, a value can be assignedto a variable, such as x

When variable x appears inside an expression, it evaluates to its assigned value

A variable (name) does not exist until it is assigned

The assignment statement has the format

<expression> is evaluated first, and the resulting value is assigned to variable <variable>

>>> x = 3>>> x3>>> 4*x12>>> yTraceback (most recent call last): File "<pyshell#18>", line 1, in <module> yNameError: name 'y' is not defined>>> y = 5*x15>>> y15

Introduction to Computing Using Python

Naming rulesVariable names can contain these characters:

• a through z• A through Z• the underscore character _• digits 0 through 9

Names cannot start with a digit

For a multiple-word name, use • either the underscore as the delimiter • or camelCase capitalization

Short and meaningful names are ideal

>>> My_x2 = 21>>> My_x221

>>> My_x2 = 21>>> My_x221>>> 2x = 22SyntaxError: invalid syntax>>>

>>> My_x2 = 21>>> My_x221>>> 2x = 22SyntaxError: invalid syntax>>> new_temp = 23>>> newTemp = 23>>>

>>> My_x2 = 21>>> My_x221>>> 2x = 22SyntaxError: invalid syntax>>> new_temp = 23>>> newTemp = 23>>> counter = 0>>> temp = 1>>> price = 2>>> age = 3

"Hello, World!"

Introduction to Computing Using Python

StringsIn addition to number and Boolean values, Python supports string values

A string value is represented as a sequence of characters enclosed within quotes

>>> 'Hello, World!''Hello, World!'>>>

'Hello, World!'

A string value can be assigned to a variable

String values can be manipulated using string operators and functions

>>> 'Hello, World!''Hello, World!'>>> s = 'rock'>>> t = 'climbing'>>>

Introduction to Computing Using Python

String operators>>> 'Hello, World!''Hello, World!'>>> s = 'rock'>>> t = 'climbing'>>> s == 'rock'True>>> s != tTrue>>> s < tFalse>>> s > tTrue>>> s + t'rockclimbing'>>> s + ' ' + t'rock climbing'>>> 5 * s'rockrockrockrockrock'>>> 30 * '_''______________________________'>>> 'o' in sTrue>>> 'o' in tFalse>>> 'bi' in tTrue>>> len(t)8

Usage Explanation

x in s x is a substring of s

x not in s x is not a substring of s

s + t Concatenation of s and t

s * n, n * s Concatenation of n copies of s

s[i] Character at index i of s

len(s) (function) Length of string s

>> help(str)Help on class str in module builtins:

class str(object) | str(string[, encoding[, errors]]) -> str...

To view all operators, use the help() tool

Introduction to Computing Using Python

Exercise >>> s1'good'>>> s2'bad'>>> s3'silly'>>>

Write Python expressions involving strings s1, s2, and s3 that correspond to:

a) 'll' appears in s3b) the blank space does not

appear in s1c) the concatenation of s1, s2,

and s3d) the blank space appears in the

concatenation of s1, s2, and s3

e) the concatenation of 10 copies of s3

f) the total number of characters in the concatenation of s1, s2, and s3

>>> s1'good'>>> s2'bad'>>> s3'silly'>>> 'll' in s3True>>> ' ' not in s1True>>> s1 + s2 + s3'goodbadsilly’>>> ' ' in s1 + s2 + s3False>>> 10*s3'sillysillysillysillysillysillysillysillysillysilly'>>> len(s1+s2+s3)12>>>

Introduction to Computing Using Python

Index and indexing operator

'A'

'p'

'p'

'l'

'e'

s[0] =

s[1] =

s[2] =

s[3] =

s[4] =

s =0 1 3 42

The index of an item in a sequence is its position with respect to the first itemThe index of an item in a sequence is its position with respect to the first item• The first item has index 0,

The index of an item in a sequence is its position with respect to the first item• The first item has index 0,• The second has index 1,

The index of an item in a sequence is its position with respect to the first item• The first item has index 0,• The second has index 1,• The third has index 2, …

The indexing operator [] takes a nonnegative index i and returns a string consisting of the single character at index i

>>> s = 'Apple'>>> s[0]'A'>>> s[1]'p'>>> s[4]'e'

'A p p l e'

Introduction to Computing Using Python

Negative index

'A'

'l'

'e's[-1] =

s[-2] =

s[-5] =

s =0 1 3 42

'A p p l e'

A negative index is used to specify a position with respect to the “end”• The last item has index -1,• The second to last item has index -2,• The third to last item has index -3, …

-5 -4 -2 -1-3

>>> s = 'Apple'>>> s[-1]'e'>>> s[-2]'l'>>> s[-5]'A'

Introduction to Computing Using Python

Exercise

>>> s = 'abcdefgh'>>>

String s is defined to be

'abcdefgh'

Write expressions using s and the indexing operator [] that return the following strings:

a) 'a'b) 'c'c) 'h'd) 'f'

>>> s = 'abcdefgh'>>> s[0]'a'>>> s[2]'c'>>> s[7]'h'>>> s[-1]'h'>>> s[-3]'f'>>>

['ant', 'bat', 'cod', 'dog', 'elk']

Introduction to Computing Using Python

Lists

In addition to number, Boolean, and string values, Python supports lists

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> lst = [0, 1, 'two', 'three', [4, 'five']]>>>

A comma-separated sequence of items enclosed within square brackets

The items can be numbers, strings, and even other lists

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk’]>>>

[0, 1, 'two', 'three', [4, 'five']][0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> lst = [0, 1, 'two', 'three', [4, 'five']]>>> nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>>

Introduction to Computing Using Python

List operators and functions

Like strings, lists can be manipulated with operators and functions

>>> lst = [1, 2, 3]>>> lstB = [0, 4]>>> 4 in lstFalse>>> 4 not in lstTrue>>> lst + lstB[1, 2, 3, 0, 4]>>> 2*lst[1, 2, 3, 1, 2, 3]>>> lst[0]1>>> lst[1]2>>> lst[-1]3>>> len(lst)3>>> min(lst)1>>> max(lst)3>>> sum(lst)6>>> help(list...

Usage Explanation

x in lst x is an item of lst

x not in lst x is not an item of lst

lst + lstB Concatenation of lst and lstB

lst*n, n*lst Concatenation of n copies of lst

lst[i] Item at index i of lst

len(lst) Number of items in lst

min(lst) Minimum item in lst

max(lst) Maximum item in lst

sum(lst) Sum of items in lst

Introduction to Computing Using Python

Lists are mutable, strings are not

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> lst = [0, 1, 'two', 'three', [4, 'five']]>>>

The elements can be numbers, strings, and even other lists

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk’]>>>

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>>

pets = ['ant', 'bat', 'cod', 'dog', 'elk']pets = ['ant', 'bat', 'cow', 'dog', 'elk']

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> pets[2] = 'cow'>>> pets['ant', 'bat', 'cow', 'dog', 'elk']>>>

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> pets[2] = 'cow'>>> pets['ant', 'bat', 'cow', 'dog', 'elk']>>> pet = 'cod'>>>

>>> pets = ['ant', 'bat', 'cod', 'dog', 'elk']>>> pets[2] = 'cow'>>> pets['ant', 'bat', 'cow', 'dog', 'elk']>>> pet = 'cod'>>> pet[2] = 'w'Traceback (most recent call last): File "<pyshell#155>", line 1, in <module> pet[2] = 'w'TypeError: 'str' object does not support item assignment>>>

pet = 'cod'

Lists can be modified; they are said to be mutable

Strings can’t be modified; they are said to be immutable

Introduction to Computing Using Python

List methods

len()and sum() are examples of functions that can be called with a list input argument; they can also be called on other type of input argument(s)

>>> lst = [1, 2, 3]>>> len(lst)3>>> sum(lst)6>>>

`

There are also functions that are called on a list;such functions are called list methods (note the different syntax). Two of these methods are append and remove

>>> lst = [1, 2, 3]>>> len(lst)3>>> sum(lst)6>>> lst.append(7)>>> lst[1, 2, 3, 7]>>> lst.remove(3)>>> lst[1, 2, 7]

Later we will discuss in more detail what the difference is between a method and a function

Introduction to Computing Using Python

List methods >>> lst = [1, 2, 3]>>> lst.append(7)>>> lst.append(3)>>> lst[1, 2, 3, 7, 3]>>> lst.count(3)2>>> lst.remove(2)>>> lst[1, 3, 7, 3]>>> lst.reverse()>>> lst[3, 7, 3, 1]>>> lst.index(3)0>>> lst.sort()>>> lst[1, 3, 3, 7]>>> lst.remove(3)>>> lst[1, 3, 7]>>> lst.pop()7>>> lst[1, 3]

Usage Explanation

lst.append(item) adds item to the end of lst

lst.count(item) returns the number of times item occurs in lst

lst.index(item) Returns index of (first occurrence of) item in lst

lst.pop() Removes and returns the last item in lst

lst.remove(item) Removes (the first occurrence of) item from lst

lst.reverse(item) Reverses the order of items in lst

lst.sort(item) Sorts the items of lst in increasing order

Methods append(), remove(), reverse(), and sort() do not return any value; they, along with method pop(), modify list lst

Introduction to Computing Using Python

ExerciseList lst is a list of prices for an item at different online retailers

>>> lst = [159.99, 160.00, 205.95, 128.83, 175.49]>>> lst.append(160.00)>>> lst.count(160.00)2>>> min(lst)128.83>>> lst.index(128.83)3>>> lst.remove(128.83)>>> lst[159.99, 160.0, 205.95, 175.49, 160.0]>>> lst.sort()>>> lst[159.99, 160.0, 160.0, 175.49, 205.95]>>>

a) You found another retailer selling the item for $160.00; add this price to list lst

b) Compute the number of retailers selling the item for $160.00

c) Find the minimum price in lstd) Using c), find the index of the

minimum price in list lst e) Using c) remove the minimum price

from list lstf) Sort list lst in increasing order

Introduction to Computing Using Python

Objects and classes

Terminology: object X is of type int = object X belongs to class int

An object’s type determines what values it can have and how it can be manipulated

A class is a kind of data (int, list, str, …)

An object is a particular value associated with a class(3, [1, 2, 3], ‘abc’)

All values in Python are objects

Unlike many other programming languages

Introduction to Computing Using Python

Values of number types

An object of type int can be any integer number value (with no decimal point)

Another type for numbers is called float. Anynumber with a decimal point is a float.

>>> 33>>> type(3)<class 'int'>>>> 3.3.0>>> type(3.)<class 'float'>>>> type(3.0)<class 'float'>

An object’s type determines what values it can have and how it can be manipulated

Introduction to Computing Using Python

Input from a userFunction for user input: inp(prompt) where prompt is a string

Example (assume the user enters ‘hello’)

>>> inp = input(‘Enter a word ’)>>> inp + ‘ was your input’Hello was your input

The user’s input is always interpreted as a string

Example (the user enters ‘1’)

>>> x = input(‘Enter a number ’)>>> x * 211

Introduction to Computing Using Python

Conversion of types

To change a string into an integer:

int(<string>)

For example:>>> int(‘3’)3

Example (the user enters ‘1’)

>>> x = int(input(‘Enter a number ’))>>> x * 22

Introduction to Computing Using Python

Output to a userFunction: print(<output>)

where <output> is a string

For example:>>> print(‘Hello world’)Hello world

Introduction to Computing Using Python

Conversion of types, continued

What if you want to print something that isn’t a string?

The str function does this

>>> str(1)‘1’

For example:>>> int(‘3’)3>>> int(‘3’) + 25

Introduction to Computing Using Python

Example using strAssume user types 3

>>> x = int(input(‘Enter an integer ’))>>> print(x + ' plus 2 is ' + y)Traceback (most recent call last): File "<pyshell#58>", line 1, in <module> print(x + ' plus 2 is ' + y)TypeError: unsupported operand type(s) for +: 'int' and 'str'>>> print(str(x) + ‘ plus 2 is ’ + str(y))3 + 2 is 5

Introduction to Computing Using Python

Writing code in a fileIf code becomes too complex, It is a pain to typeit in to the IDLE window over and over again

An alternative: write the code in a file, then hit F5key

Output might differ, so you might need to call print()

Introduction to Computing Using Python

Special characters

If a string contains a ‘\’, then the character after that is interpreted differently

Example: ‘\n’ means a newline

>>> print(‘abc\ndef’)abcdef

(‘\’ is an escape character within print function)

Introduction to Computing Using Python

Special characters, continued‘\t’: tab character

>>> print(‘abc\tdef’)abc def

However:

>>> ‘abc\ndef’abc\ndef

(‘\’ is an escape character within print function)

Introduction to Computing Using Python

Homework assignment 1See Course Online

https://col.cdm.depaul.edu

Choose ‘CSC-241’

Click ‘Assignments’