Function adalah blok kode yang hanya berjalan ketika dipanggil.
Kamu dapat mengirimkan data, yang dikenal sebagai parameter, ke suatu fungsi.
Suatu function dapat mengembalikan data sebagai hasilnya.
Menciptakan Function
Dalam Python function didefinisikan menggunakan kata kunci def :
Contoh
def my_function(): print("Hello from a function")
Memanggil suatu Funcion
Untuk memanggil suatu function, gunakan nama function yang diikuti oleh tanda kurung:
Contoh
def my_function(): print("Hello from a function") my_function()
Argumen
Informasi dapat diteruskan ke function sebagai argumen.
Argumen ditentukan setelah nama function, di dalam tanda kurung. kamu dapat menambahkan argumen sebanyak yang kamu inginkan, cukup pisahkan dengan koma.
Contoh berikut memiliki function dengan satu argumen (fname). Ketika function dipanggil, kami memberikan nama depan, yang digunakan di dalam function untuk mencetak nama lengkap:
Contoh
def my_function(fname): print(fname + " Refsnes") my_function("Emil") my_function("Tobias") my_function("Linus")
Argumen sering disingkat menjadi args dalam dokumentasi Python.
Parameter atau Argumen?
Istilah parameter dan argumen dapat digunakan untuk hal yang sama: informasi yang diteruskan ke function.
Dari perspektif function:
Parameter adalah variabel yang tercantum di dalam tanda kurung dalam definisi function.
Argumen adalah nilai yang dikirim ke function saat dipanggil.
Jumlah Argumen
Secara default, suatu fungsi harus dipanggil dengan jumlah argumen yang benar. Berarti bahwa jika fungsi Anda mengharapkan 2 argumen, Anda harus memanggil fungsi dengan 2 argumen, tidak lebih, dan tidak kurang.
Contoh
Function ini mengharapkan 2 argumen, dan mendapat 2 argumen:
def my_function(fname, lname): print(fname + " " + lname) my_function("Emil", "Refsnes")
Jika kamu mencoba memanggil function dengan 1 atau 3 argumen, kamu akan mendapatkan kesalahan:
Contoh
Function ini mengharapkan 2 argumen, tetapi hanya mendapat 1:
def my_function(fname, lname): print(fname + " " + lname) my_function("Emil")
Argumen Arbitrary, * args
Jika kamu tidak tahu berapa banyak argumen yang akan diteruskan ke function kamu,
tambahkan *
sebelum nama parameter dalam definisi function.
Dengan cara ini function akan menerima tuple argumen, dan dapat mengakses item:
Contoh
Jika jumlah argumen tidak diketahui, tambahkan *
sebelum nama parameter:
Argumen arbitrary sering disingkat menjadi * args dalam dokumentasi Python.
Kata Kunci Argumen
Kamu juga dapat mengirim argumen dengan sintaks kunci = nilai .
Dengan cara ini urutan argumen tidak menjadi masalah.
Contoh
def my_function(child3, child2, child1): print("The youngest child is " + child3) my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
Frasa Kata Kunci Argumen sering disingkat menjadi kwargs dalam dokumentasi Python.
Kata Kunci Argumen Arbitrary, ** kwargs
Jika kamu tidak tahu berapa banyak kata kunci argumen yang akan diteruskan ke function kamu, tambahkan dua tanda bintang: **
sebelum nama parameter dalam definisi function.
Dengan cara ini function akan menerima kamus argumen, dan dapat mengakses item-item yang sesuai:
Contoh
Jika jumlah kata kunci argumen tidak diketahui, tambahkan ganda **
sebelum nama parameter:
def my_function(**kid): print("His last name is " + kid["lname"]) my_function(fname = "Tobias", lname = "Refsnes")
Argumen Kword arbitrary sering disingkat menjadi ** kwargs dalam dokumentasi Python.
Nilai Parameter Default
Contoh berikut menunjukkan cara menggunakan nilai parameter default.
Jika kita memanggil function tanpa argumen, itu menggunakan nilai default:
Contoh
def my_function(country = "Norway"): print("I am from " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")
Lulus Daftar sebagai Argumen
Anda dapat mengirim tipe data argumen apa pun ke suatu fungsi (string, angka, daftar, kamus, dll.), Dan itu akan diperlakukan sebagai tipe data yang sama di dalam fungsi.
Misalnya, jika Anda mengirim Daftar sebagai argumen, itu masih akan menjadi Daftar ketika mencapai fungsi:
Contoh
def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits)
Nilai Return
Untuk membiarkan suatu fungsi mengembalikan nilai, gunakan pernyataan return
:
Contoh
def my_function(x): return 5 * x print(my_function(3)) print(my_function(5)) print(my_function(9))
Pernyataan lulus
Definisi Function
tidak boleh kosong, tetapi jika kamu memiliki suatu alasan, definisi function
tanpa konten, masukkan pernyataan pass
untuk menghindari kesalahan.
Contoh
def myfunction(): pass
Loop
Python juga menerima rekursi fungsi, yang berarti fungsi yang didefinisikan dapat memanggil dirinya sendiri.
Rekursi adalah konsep matematika dan pemrograman yang umum. Ini berarti bahwa suatu fungsi memanggil dirinya sendiri. Ini memiliki manfaat dari arti bahwa kamu dapat mengulangi data untuk mencapai hasil.
Pengembang harus sangat berhati-hati dengan rekursi karena dapat dengan mudah memasukkan fungsi yang tidak pernah berakhir, atau yang menggunakan jumlah memori atau daya prosesor yang berlebih. Namun, ketika ditulis dengan benar rekursi dapat menjadi pendekatan yang sangat efisien dan elegan secara matematis untuk pemrograman.
Dalam contoh ini, tri_recursion () adalah fungsi yang telah kita tentukan untuk memanggil dirinya sendiri (“recurse”). Kami menggunakan variabel k sebagai data, yang menurun ( -1 ) setiap kali kami kambuh. Rekursi berakhir ketika kondisinya tidak lebih dari 0 (yaitu ketika 0).
Untuk pengembang baru mungkin perlu waktu untuk mengetahui bagaimana tepatnya ini bekerja, cara terbaik untuk mengetahuinya adalah dengan menguji dan memodifikasinya.
Contoh
Contoh Rekursi
def tri_recursion(k): if(k>0): result = k+tri_recursion(k-1) print(result) else: result = 0 return result print("\n\nRecursion Example Results") tri_recursion(6)