Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department...

29
Introduction to Python University of Oxford Department of Particle Physics October 2019 – Part 1 Vipul Davda Particle Physics Systems Administrator Room 661 Telephone: x73389 [email protected] Introduction to Python 1

Transcript of Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department...

Page 1: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to PythonUniversity of Oxford

Department of Particle PhysicsOctober 2019 – Part 1

Vipul DavdaParticle Physics Systems Administrator

Room 661Telephone: x73389

[email protected]

Introduction to Python 1

Page 2: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.

Some specific features of Python are:

An interpreted language

Can be used interactively

Free software released under an open-source license

Available for all major OS: Linux/Unix, MacOS X, Windows

Easy language to learn

Used for rapid development

Widely used in scientific and numeric computing

Introduction to Python 2

What is Python?

Page 4: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Running Python

Run interactively using python shell, ipython

Page 5: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Type the code in a file using a text editor

Introduction to Python 5

Running Python

Page 6: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to Python 6

Keywords in Python

and del from not while

as elif global or with

assert else if pass yield

break except import print True

class exec in raise False

continue finally is return

def for lambda try

Page 7: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to Python 7

Built-in Functions

https://docs.python.org/2/library/functions.htmlhttps://docs.python.org/3/library/functions.html

abs() divmod() input() open() staticmethod()

all() enumerate() int() ord() str()

any() eval() isinstance() pow() sum()

basestring() execfile() issubclass() print() super()

bin() file() iter() property() tuple()

bool() filter() len() range() type()

bytearray() float() list() raw_input() unichr()

callable() format() locals() reduce() unicode()

chr() frozenset() long() reload() vars()

classmethod() getattr() map() repr() xrange()

cmp() globals() max() reversed() zip()

compile() hasattr() memoryview() round() __import__()

complex() hash() min() set()

delattr() help() next() setattr()

dict() hex() object() slice()

dir() id() oct() sorted()

Page 8: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Most useful commands are:? introduction and overview

%quickref quick reference

help Python’s help system

object? details about the ‘object’

ln [1] %run rounding_error.py run the script

ln [1] %run –d rounding_error.py run in debug mode

ln [1] ! run shell commandsln [1]!pwd

/home/davda/demo

ln [1] %edit using editor within shell

ln [1] %cd <dir>

ln [64] %save my_session.py 20-45, 56 saves lines 20-45 and 56 to file my_session.py

Introduction to Python 8

ipython basics

Page 9: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to Python 9

Basic Types

Integer1 + 1

2

a = 4

type(a)

int

floatsb = 4.2

type(b)

float

Complexc = 1.5+2.5j

type(c)

complex

c.real

1.5

c.imag

2.5

booleans4 > 5

False

val = (4>5)

val

False

type(val)

bool

Page 10: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to Python 10

Operators and comparisons

Arithmetic operators:

+

-

*

/

// (integer division)

'**' (power)

%

Comparison operators:

>

<

>= (greater or equal)

<= (less or equal)

==

Page 11: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

x = -1

if x < 0:

x = 0

print ('Negative value, changed to zero‘)

elif x == 0:

print ('Zero‘)

elif x == 1:

print (‘One‘)

else:

print ('More‘)

Introduction to Python 11

If Statements

Page 12: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

a = ['cat', ‘dog', ‘rabbit']

for v in a:

print (v, len(v))

b = “hello world”

for v in b:

print (v)

Introduction to Python 12

For Statements

Page 13: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

r = []

a, b = 0, 1

while b <= 100:

r.append(b)

a, b = b, a+b

print (r)

Introduction to Python 13

While Statements

Page 14: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

One should never use an if statement to test the equality of two floats.sum = 0.0

for i in range(10):

sum += 0.1

If sum == 1.0:

print(sum)

If you do have to compare two floats use abs function

epsilon = 1e-12

if abs(sum-1.0) < epsilon:

print(sum)

https://docs.python.org/2/tutorial/floatingpoint.html

Introduction to Python 14

Rounding Errors

Page 15: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

For example,

𝒙 = 𝟏, 𝒚 = 𝟏 + 𝟏𝟎−𝟏𝟒 𝟐

𝟏𝟎𝟏𝟒 𝒚 − 𝒙 = 𝟐

Introduction to Python 15

Rounding Errors

from math import sqrt

x = 1.0

y = 1.0 + (1e-14)*sqrt(2)

print((1e14)*(y-x))

print(sqrt(2))

1.4210854715202004

1.4142135623730951

http://www-personal.umich.edu/~mejn/

Page 16: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Main types of containers in Python are:

List

Tuples

Dictionary

Introduction to Python 16

Containers

Page 17: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Introduction to Python 17

Lists

List is created by putting comma-separated values between square brackets“[]”

list1 = [ 1, 2, 3, 4, 5]

Elements within the list can be accessed by using the integer corresponding to that element's position in the list, starting from ‘0‘

list2 = [“mathematics”, “physics”, “chemistry”, 2017]

print list2[1]

physics

A list may contain mixed parameter types and may be nested. list3=[1, ['a', 'b', 'c' ] ]

print list3[1][1]

b

Page 18: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

list.append(x) Add an item to the end of the list list.extend(L) Extend the list by appending all the items in the given list list.insert(i, x) Insert an item at a given position. list.remove(x) Remove the first item from the list whose value is x. list.pop([i]) Remove the item at the given position in the list, and return it. list.index(x) Return the index in the list of the first item whose value is x. list.count(x) Return the number of times x appears in the list. list.sort() Sort the items of the list . list.reverse() Reverse the elements of the list list.clear() Remove all items from the list. (python3) list.copy() Return a shallow copy of the list. (python3)

https://docs.python.org/2.7/tutorial/datastructures.htmlhttps://docs.python.org/3.4/tutorial/datastructures.html

Introduction to Python 18

Lists Methods

Page 19: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

cmp(list1, list2) Compares elements of both lists.

len(list) Gives the total length of the list.

max(list) Returns item from the list with max value.

min(list) Returns item from the list with min value.

list(tuple1) Converts a tuple into list.

Introduction to Python 19

List Functions

Page 20: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

list1 = [1,2,3,4,5,6,7,8,9,10]

s = 0

for n in list1:

s = s + n

print (s)

55

print sum(list1)

55

Introduction to Python 20

Iterate List

Page 21: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Tuple is created by putting comma-separated values between round brackets ()

tup1 = (1,2,3,4,5)

The difference between tuple and list is that the tuples cannot be changed. It is an immutable object.

Accessing tuplestup1 = (1,2,3,4,5,6,7)

print tup1[1:5]

(2,3,4,5)

Introduction to Python 21

Tuples

Page 22: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

cmp(tuple1, tuple2) Compares elements of both tuples.

len(tuple) Gives the total length of the tuple.

max(tuple) Returns item from the tuple with max value.

min(tuple) Returns item from the tuple with min value.

tuple(list1) Converts a list into tuple.

Introduction to Python 22

Tuples Functions

Page 23: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

A dictionary is an unordered table that maps keys to values.

Dictionary is created by putting comma-separated values between curly brackets {}

Each key is separated from its value by a “:” , the items are separated by commas.

Keys are unique within a dictionary.

The values of a dictionary can be of any type, but the keys must be of an immutable data type.

Introduction to Python 23

Dictionary

Page 24: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

cmp(d1, d2) Compares elements of both d1 and d2.

len(d) Gives the total length of the dictionary.

str(d) Outputs a printable string representation of a dictionary

Introduction to Python 24

Dictionary Functions

Page 25: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

dict.clear() Removes all elements of dictionary dict

dict.copy() Returns a shallow copy of dictionary dict

dict.fromkeys() Create a new dictionary with keys from seq and values set to value.

dict.get(key, default=None) For key key, returns value or default if key not in dictionary

dict.has_key(key) Returns true if key in dictionary dict, false otherwise

dict.items() Returns a list of dict's (key, value) tuple pairs

dict.keys()Returns list of dictionary dict's keys

dict.setdefault(key, default=None) Similar to get(), but will set dict[key]=default if key is not already in dict

dict.update(dict2) Adds dictionary dict2's key-values pairs to dict

dict.values() Returns list of dictionary dict's values

Introduction to Python 25

Dictionary Methods

Page 26: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

- valid from python 2.7

squares = {x: x*x for x in range(1,10)}

print(squares)

for item in squares.items():

print (item)

for (key, value) in squares.items():

print (key, value)

Introduction to Python 26

Dictionary Example

Page 27: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Write a program to calculate the area and the surface volume of a sphere.

The volume inside a sphere V = 4/3*π*r3

The area of a sphere is A = 4*π*r2

Introduction to Python 27

Exercise 1

Page 28: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Write a script to find numbers between 100 and 300 that are divisible by 7 and multiple of 5.

Introduction to Python 28

Exercise 2

Page 29: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems

Write a script to print a list after removing the 0th, 4th and 5th

elements.

Numbers = [‘Zero’, ‘One’, ‘Two’, ‘Three’, ‘Four’, ‘Five’]

Hint: Use built-in function enumerate.

for counter, value in enumerate(some_list):

print(counter, value)

Introduction to Python 29

Exercise 3