An Example¶
[9]:
def maximum(a, b):
if a < b:
return b
else:
return a
[11]:
maximum(42, 666)
[11]:
666
[13]:
maximum(42, 666) / 2
[13]:
333.0
[14]:
m = maximum(42, 666) / 2
[15]:
m
[15]:
333.0
Sidenote: Pure Beauty¶
[16]:
type(maximum)
[16]:
function
[17]:
maximum(42, 666)
[17]:
666
[18]:
a = maximum
a(42, 666)
[18]:
666
Parameters and Types¶
Aufruf mit int
ist ok:
[20]:
maximum(42, 666)
[20]:
666
Aufruf mit int
und float
auch:
[22]:
maximum(42, 6.666)
[22]:
42
[24]:
try:
maximum(42, '666')
except Exception as e:
print(e)
'<' not supported between instances of 'int' and 'str'
[25]:
maximum(42, int('666'))
[25]:
666
[28]:
try:
maximum(42, int('xxx'))
except Exception as e:
print(e)
invalid literal for int() with base 10: 'xxx'
Default Parameters¶
[34]:
def say_hello(name, greeting):
print(f'{greeting}, {name}') # f-String, since Python 3.6
# print(greeting + ', ' + name)
[35]:
say_hello('Jörg', 'Seas')
Seas, Jörg
[37]:
def say_hello(name, greeting='Hello'):
print(f'{greeting}, {name}') # f-String, since Python 3.6
[38]:
say_hello('Jörg')
Hello, Jörg
Pitfalls¶
[48]:
def f(i, x=[]):
x.append(i)
return x
[49]:
f(1)
[49]:
[1]
[47]:
f(2)
[47]:
[1, 2]
Keyword Arguments¶
[50]:
def velocity(length_m, time_s):
return length_m / time_s
[52]:
velocity(100, 3)
[52]:
33.333333333333336
[55]:
velocity(3, 100)
[55]:
0.03
[57]:
velocity(time_s = 3, length_m = 100)
[57]:
33.333333333333336