Python Function
Komponen dasar dalam setiap bahasa pemrograman adalah Fungsi (Function). Fungsi dalam python didefinisikan dengan menggunakan kata kunci def.
def sign(x):
if x > 0:
return 'positive'
elif x < 0:
return 'negative'
else:
return 'zero'
for x in [-1, 0, 1]: print(sign(x))
# Prints "negative", "zero", "positive"
Dalam Python, kita akan sering menggunakan fungsi dengan argumen opsional seperti ditunjukan dalam contoh berikut.
def hello(name, loud=False):
if loud:
print('HELLO, %s' % name.upper())
else:
print('Hello, %s!' % name)
hello('Bob') # Prints "Hello, Bob"
hello('Fred', loud=True) # Prints "HELLO, FRED!"
# def tells python you're trying to declare a function
def triangle_area(base, height):
return 0.5 * base * height
triangle_area(1, 2)
def triangle_area(base, height):
if base < 0 or height < 0:
raise ValueError("Base and height must be non-negative")
return 0.5 * base * height
triangle_area(-1, 2)
Dalam python, semua adalah object. Object dapat dijadikan parameter/argumen dari fungsi. Perhatikan contoh berikut.
def f(x):
return x+2
def twice(f, x):
return f(f(x))
twice(f, 2) # + 4
def n_apply(f, x, n):
"""applies f to x n times"""
for _ in range(n): # _ is dummy variable in iteration
x = f(x)
return x
n_apply(f, 1, 5) # 1 + 2*5
def g(a, x, b=0):
return a * x + b
g(2, 5, 1)
Argumen sebuah fungsi juga dapat diberikan berikut nama variabelnya.
g(a=2, x=5,b=1)
Dalam contoh berikut, perhatikan bahwa f(y)
menggunakan variabel x
global
x = 1
y = 2
def f(y):
return x+y
f(3)
Beberapa contoh fungsi sederhana lainnya.
Mencetak semua bilangan pangkat 2 yang kurang dari 10000
x = 1
while x < 10000:
print(x)
x = 2*x
Fungsi dengan dua argumen a
dan b
dan mengembalikan nilai ekspresi a+2b
def h(a,b):
return a+2*b
h(2,1)
Fungsi dengan input n
dan mencetak semua bilangan Fibonacci yang kurang dari n
def fibonacci(n):
a,b = 1,1
while a<n:
print(a)
a,b = b,a+b
fibonacci(1000)