introduction to python - university of oxfordintroduction to python university of oxford department...
TRANSCRIPT
![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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/1.jpg)
Introduction to PythonUniversity of Oxford
Department of Particle PhysicsOctober 2019 – Part 1
Vipul DavdaParticle Physics Systems Administrator
Room 661Telephone: x73389
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/2.jpg)
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 3: Introduction to Python - University of OxfordIntroduction to Python University of Oxford Department of Particle Physics October 2019 –Part 1 Vipul Davda Particle Physics Systems](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/3.jpg)
Books:
A Student’s Guide to Python for Physical Modelingby Jesse M. Kinder and Philip Nelson
Fluent Pythonby Luciano Ramalho
Introduction to Python 3
Python Books
![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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/26.jpg)
- 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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062223/5ec9de1bbb8ca67fb446593c/html5/thumbnails/29.jpg)
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