Download Introduction to Python - KTI

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Introduction to Python
Michael Krisper
Thomas Wurmitzer
October 21, 2014
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
1 / 26
Schedule
Tutorium I
Dates & Deadlines
Submission System
Map/Reduce Example
Introduction to Python (1)
Tutorium II
Introduction to Python (2)
Questions
Disclaimer
Edited but mostly based on Michael Krisper’s Python Introduction (with
permission). Thank you!
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
2 / 26
What is Python?
“Python is a dynamic, interpreted language. Source code does not
declare the types of variables or parameters or methods. This
makes the code short and flexible, and you lose the compile-time
type checking in the source code. Python tracks the types of all
values at runtime and flags code that does not make sense as it
runs.”1
Huge standard library and community.
Huge list of 3rd party libraries2 .
If you want to know more about Python’s history checkout Guido’s
Blog3 on that topic.
1
https://developers.google.com/edu/python/introduction
https://github.com/vinta/awesome-python
3
http://python-history.blogspot.co.at
2
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
3 / 26
Installation
We use Python 2.7 - Python 3 is not supported and will most likely not
work.
Linux: Most distributions already come with Python 2.7. If not install
them via your distributions packagemanager e.g. (pacman, apt, . . . )
OSX: All recent versions ship with Python 2.7 out of the box.
Windows: Windows Installer via python.org and check out the
Windows FAQ4 .
4
https://docs.python.org/2/faq/windows.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
4 / 26
Writing Python using REAL $EDITOR
Figure 1: https://xkcd.com/378
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
5 / 26
Better than hoverboards!
Figure 2: https://xkcd.com/353/
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
6 / 26
Writing Python: Hello World
% cat hello.py
print Hello World
% python hello.py # Run code inside file
Hello World
% python -c "print
Hello World " # Pass program as string.
% python # Interactive Mode
% ipython # ... on steroids
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
7 / 26
Writing Python: Hello World (Extended)
#!/usr/bin/env python
import sys
import math
def my_function(message):
print message
return math.e
# return constant from module
if __name__ == __main__ :
if len(sys.argv) < 2:
sys.exit(1)
result = my_function(sys.argv[1])
print math.ceil(result) # function in module
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
8 / 26
Writing Python: Calculations (interactive5 )
% python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[...]
Type "help", "copyright", "credits" or "license" for more info
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
3+4
5*3.7+1
2**3-1
5**70
3/2
3/2.0
3.0//4.0
5*"a"
3+4 == 2**3-1
#
#
#
#
#
#
#
#
#
output:
output:
output:
output:
output:
output:
output:
output:
output:
7
19.5
7
847032947254...13916015625L
1
1.5
0.0
"aaaaa"
True
5
https:
//docs.python.org/2/tutorial/interpreter.html#invoking-the-interpreter
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
9 / 26
Writing Python: Variables & Assignments
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name a is not defined
>>> a = 42
# integer
>>> a
42
>>> type(a)
# output: <type int >
>>> a += 1
# increase a by one
>>>
>>>
>>>
>>>
>>>
b = 1.78
# float
c = "Hello"
# string
d = [1,2,3,4] # list
e = (1,2,3)
# tuple
f, g = True, None
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
10 / 26
Writing Python: Bool67
bool(None)
bool(0)
bool({})
bool([])
bool("")
#
#
#
#
#
False
False
False
False
False
bool(1)
# True
bool([1,2,3,4]) # True
bool("Hello")
# True
# ...
Python on Lovea
a
https://twitter.com/johl/status/318494068365733889
>>>
>>>
>>>
>>>
import this
love = this
this is love, love is not True or False, love is love
(True, True, True)
6 Krisper, Thomas Wurmitzer
Michael
Introduction to Python
October 21, 2014
11 / 26
Writing Python: Strings8
>>> s = Hello World
>>> s = "Hello World"
>>> s = """
Hello
World
"""
# Multiline
# Strings are Sequences
>>> lie in believe
# output:
>>> execute .find( cute ) # output:
>>> foo + bar
# output:
>>> \n\nValar Dohaeris
.strip()
>>> A;B;C\n;D .split( ; ) # output:
True
3
foobar
# output: Valar Dohaeris
[ A , B , C\n , D ]
>>> help(str)
8
http://docs.python.org/2/library/stdtypes.html#string-methods
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
12 / 26
Writing Python: Conversion
>>> str(434)
#
>>> int( 956 )
>>> int( \n\n210
\r\n )
>>> int( 5a )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int()
>>> int( 5a , 16)
# 956
# 210
>>> float( 3.14 )
# 3.14
>>> type( 434 )
>>> type(434)
# <type
# <type
Michael Krisper, Thomas Wurmitzer
Introduction to Python
434
with base 10:
# 90
5a
str >
int >
October 21, 2014
13 / 26
Writing Python: Lists9
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
9
a = [4, 8, 15]
a[0]
len(a)
a[1:3]
a[-1]
a.append(16)
a += [55, 23, 42]
a.remove(55)
del a[5]
sorted(a)
#
#
#
#
#
#
#
#
#
#
list definition
get first element
length of the list
get a slice by range
get last element
append element
concat lists
remove an element
delete element on index
sort the list
https://docs.python.org/2/tutorial/datastructures.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
14 / 26
Writing Python: Dictionary10
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
10
d = { "key": "value", "key2": "value2" }
d["key"]
d.keys()
d.values()
d["key3"] = 45
"key" in d
len(d)
d.get("nokey", "default") # = "default"
d.setdefault ("nokey", "default")
https://docs.python.org/2/tutorial/datastructures.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
15 / 26
Writing Python: Built-in Datatypes (Excerpt)
Integer
42
Bool
Boolean: True, False
True
Long
Long Integer
10000000000000000L
Double
3.85
Complex Number
(3.1+0.9j)
String
“Jaqen H’ghar”
List
List / Array
[1, 2, 5.5, "asdf", 0]
Dict
Dictionary
{"a":"foo", "b":"bar"}
Set
Set([1, 2, 1, 3, True])
Tuple
(1, 2, None, True, 4)
int
Float
Complex
Str
Set
Tuple
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
16 / 26
Writing Python: Built-in Functions11 (Excerpt)
len(...)
Get length of a sequence
max(...)/min(...)
Get max / min element of a sequence
open(...)
Open a file for read/write
print
Output to console
input(...)
Read from console
range(...)/xrange(...)
Create a counter sequence
sorted(...)
Sort a sequence
sum(...)
Calculate the sum of a sequence
type(...)
Get the type of a variable
Others: abs, dir, eval, format, hash, help, next, enumerate,
ord, map, reduce, slice, unicode, zip, apply, ...
11
https://docs.python.org/2/library/functions.html#built-in-funcs
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
17 / 26
Writing Python: Built-in Functions12 (Excerpt)
print "Valar morghulis"
# with newline
print "Valar morghulis", # without newline
print "a = ", 1, " b = ", 2
print "a = %d b = %d" % (1,2)
print "{} of {}".format( mother ,
dragons )
import sys
sys.stdout.write("Who wrote the pink letter?")
12
https://docs.python.org/2/library/functions.html#built-in-funcs
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
18 / 26
Control Flow13
if points < 10 or bird is not word:
print "Erm, seriously?"
elif points < 40:
print "Seriously?"
else:
print "Good job!"
for word in [ ham ,
print word
sausage ,
spam ]:
while answer < 42:
answer +=1
Additionally statements like pass, break or continue can be used to
further control the above.
13
https://docs.python.org/2/tutorial/controlflow.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
19 / 26
Functions14
def say(string):
print string
>>>
>>>
>>>
>>>
say( Hello ) # Output: Hello
say
# Output: <function say at 0x102697938>
s = say
s( Hodor! ) # Output: Hodor!
14
https:
//docs.python.org/2/tutorial/controlflow.html#defining-functions
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
20 / 26
Classes15
class Human(object): # Inherits from object
def __init__(self, name): # Constructor
self.name = name
def speak(self):
print self.name, ": Valar Morghulis."
jh = Human("Jaqen H ghar");
jh.speak()
15
https://docs.python.org/2/tutorial/classes.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
21 / 26
File I/O
16
fh = open( filename.txt ,
lines = fh.readlines()
fh.close()
r )
with open( filename.txt ,
f.write("\n" % )
w ) as f:
with open( filename.txt , w ) as f:
f.write("%d + %d = %d\n" % (2,3,2+3))
f.write("Another line\n")
f.write("Another line\n")
16
https:
//docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
22 / 26
DateTime17
>>>
>>>
>>>
>>>
>>>
>>>
import datetime
a = datetime.datetime(2014, 10, 26, 9, 15, 10)
b = datetime.datetime(2024, 10, 26, 9, 15, 10)
type(a)
# Output: <type datetime.datetime >
a
# 26.10.2014 09:15:10
a < b
# Output: True
>>>
>>>
>>>
>>>
>>>
st = "2013-11-06 09:57:52"
ft = "%Y-%m-%d %H:%M:%S"
c = datetime.datetime.strptime(st, ft)
type(c)
# Output: <type datetime.datetime >
c
# 06.11.2013 09:57:52
>>>
>>>
17
2013-11-06 09:57:52
2013-11-06 09:57:52
<
>
2013-11-06 10:57:52
2013-11-06 10:57:52
# ???
# ???
http://docs.python.org/2/library/datetime.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
23 / 26
(Common) Exceptions18
>>> 2 + Hodor!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +:
int
and
str
>>> 2 + a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name a is not defined
>>> while Hodor print "Hodor!"
File "<stdin>", line 1
while Hodor print "Hodor!"
^
SyntaxError: invalid syntax
18
https://docs.python.org/2/tutorial/errors.html
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
24 / 26
Help & Resources
Use help and dir in interactive mode.
Python Language Reference
I
https://docs.python.org/2/reference/index.html
Google’s Python Class
I
https://developers.google.com/edu/python/
Think Python: How to Think Like a Computer Scientist
I
http://www.greenteapress.com/thinkpython/
Code Academy’s Python Track
I
http://www.codecademy.com/en/tracks/python
StackOverflow
I
http://stackoverflow.com/questions/tagged/python
Reddit
http://reddit.com/r/python
http://reddit.com/r/learnpython
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
25 / 26
Questions?
eMail: [email protected]
I
Please use [DB2] or the course number 707.030 as a subject.
Newsgroup: tu-graz.lv.dbase2
Question Hours
I
I
14.12.2015, 13:00 (HS i9 PZ2EG048)
11.01.2016, 13:00 (HS i9 PZ2EG048)
Michael Krisper, Thomas Wurmitzer
Introduction to Python
October 21, 2014
26 / 26