Python Function

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)