Artikel ini akan membantu pembaca melanjutkan dari blog fungsi Python sebelumnya bersama dengan beberapa aplikasi dasar di dunia nyata. Kami akan menggunakan Visual Studio Code sebagai editor kode kami. Jika Anda belum menginstal Visual Studio Code, instruksi diberikan di blog pertama.
Seperti yang dibahas di blog sebelumnya, fungsi dalam Python diperlakukan sebagai objek. Jadi seperti objek di Python, fungsi juga dapat diteruskan sebagai argumen ke fungsi lain.
Contoh:
def mul(x, y): return x*y def add(mul, y): return mul+y x = add(mul(9, 10), 10) print(x)
Dalam blok kode di atas, dapat dilihat bahwa fungsi mul diteruskan sebagai argumen ke fungsi add dan disimpan dalam variabel x yang kemudian dicetak untuk memverifikasi jawaban.
100
Dalam Python, kita dapat mendefinisikan fungsi di dalam fungsi lain. Fungsi-fungsi ini disebut sebagai fungsi bersarang. Namun dalam kasus penggunaan ini, fungsi di dalam atau fungsi bersarang tidak dapat dipanggil secara terpisah. Kedua contoh diilustrasikan dalam blok kode berikut.
Mari kita tulis fungsi pertama kita.
def mul(x, y): m = x*y def square(m): return m*m return square(m) x = mul(9, 10) print(x)
Output: 8100
Dalam blok kode di atas, fungsi luar adalah “mul” yang mengembalikan fungsi square yang mengambil argumen “m” yang merupakan hasil kali dari dua argumen yang diberikan ke fungsi “mul”. Eksekusi kode pertama dimulai dengan memanggil fungsi “mul”, kemudian hasil kali “x” dan “y” disimpan dalam variabel “m”. Karena fungsi ini mengembalikan fungsi square, fungsi “square” dipanggil dan hasil akhir yang merupakan kuadrat dari “m” dikembalikan.
Mari kita pelajari beberapa hal penting dalam Python, yang akan membuat perjalanan pengkodean Anda dengan Python jauh lebih baik.
Ini adalah argumen yang kita gunakan sebagai parameter fungsi. Mari kita tulis fungsi biasa menggunakan apa yang telah kita pelajari sampai sekarang. Kita akan menulis fungsi yang dapat memberikan kita area maksimum dari sebuah persegi panjang yang diberikan 2 area persegi panjang sebagai parameter untuk fungsi tersebut.
def maxarea(a, b): if a > b: return f'rectangle a memiliki area lebih besar yaitu {a}' else: return f'rectangle a memiliki area lebih besar yaitu {b}' x = maxarea(100, 60) print(x)
Output: rectangle a memiliki area lebih besar yaitu 100 [code lang="js"]
Fungsi ini baik untuk 2 parameter atau argumen, tetapi bagaimana jika kita perlu membandingkan lebih dari 2 area. Salah satu pendekatannya adalah dengan meneruskan daftar area ke dalam fungsi.
def maxarea(lis): max = 0 for i in lis: if i > max: max = i return f"rectangle yang memiliki area lebih besar adalah {max}" x = maxarea([100, 60, 50]) print(x)
Output: rectangle yang memiliki area lebih besar adalah 100
Pendekatan ini baik, tetapi kita harus mengetahui jumlah parameter atau argumen yang akan diberikan sebelumnya. Dalam eksekusi kode waktu nyata ini akan menjadi masalah. Oleh karena itu, untuk memudahkan hidup programmer, Python menggunakan *args dan **kwargs.
Operator ini adalah operator unpacking yang biasanya digunakan untuk meneruskan jumlah parameter atau argumen yang tidak ditentukan.
Seperti yang telah kita lihat, operator “*” digunakan untuk membongkar nilai. Contoh diilustrasikan di bawah ini.
x = [1, 2, 3, 4] y = [5, 6, 7, 8] z = *x, *y print(type(z)) print(z)
Output: <class 'tuple'> (1, 2, 3, 4, 5, 6, 7, 8)
Seperti yang kita lihat, operator unpacking telah membongkar daftar x dan daftar y menjadi tuple yaitu z. Kita juga dapat melihat bahwa hasilnya adalah tuple.
Mari kita tulis fungsi yang sama menggunakan *Args.
def maxarea(*lis): max = 0 for i in lis: if i > max: max = i return f"rectangle yang memiliki area lebih besar adalah {max}" x = maxarea(100, 60, 50, 200) y = maxarea(100, 60, 50, 200, 9000) z = maxarea(100, 60, 50, 20, 90) print(x) print(y) print(z)
Output: rectangle yang memiliki area lebih besar adalah 200 rectangle yang memiliki area lebih besar adalah 9000 rectangle yang memiliki area lebih besar adalah 100
Dalam blok kode ini kita dapat melihat bahwa sekarang argumennya dinamis, kita dapat menambahkan jumlah argumen yang akan dibongkar dalam fungsi maxarea untuk memberikan hasil yang diinginkan. Juga, kita dapat membandingkan jumlah area dalam konteks ini.
kwargs mirip dengan args tetapi menerima argumen posisi. Ini menggunakan operator ** yang memiliki beberapa atribut seperti membongkar beberapa argumen posisi dengan panjang berapa pun, juga dapat membongkar kamus, juga dapat digunakan untuk menggabungkan dua kamus.
a = {"h": 1, "n": 2} b = {"m": 5, "l": 10} c = {**a, **b} print(type(c)) print(c) Kita dapat melihat dari kode di atas bahwa kita memiliki 2 kamus a dan b yang digabungkan menggunakan operator ** untuk memberikan kamus lain. Output: <class 'dict'> {'h': 1, 'n': 2, 'm': 5, 'l': 10}
Ketika kita menggunakan operator * alih-alih operator **, kode untuk kasus ini diilustrasikan di bawah ini.
a = {"h": 1, "n": 2} b = {"m": 5, "l": 10} c = {*a, *b} print(type(c)) print(c)
Output: <class 'set'> {'n', 'l', 'm', 'h'}
Oleh karena itu, ketika operator * digunakan pada dua kamus untuk digabungkan, hasilnya adalah set dengan hanya kunci dari kamus.
Fungsi maxarea menggunakan **kwargs diilustrasikan dalam blok kode di bawah ini.
def maxarea(**lis): max = 0 for i in lis.values(): if i > max: max = i return f"rectangle yang memiliki area lebih besar adalah {max}" x = maxarea(a=1, b=2, c=3) y = maxarea(a=1, b=2) z = maxarea(a=1, b=2, c=3, d=9) print(x) print(y) print(z)
Output: rectangle yang memiliki area lebih besar adalah 3 rectangle yang memiliki area lebih besar adalah 2 rectangle yang memiliki area lebih besar adalah 9
Dalam blog ini tentang fungsi lanjutan dalam Python, kita telah membahas topik seperti meneruskan fungsi ke fungsi lain, menggunakan fungsi di dalam fungsi, *Args dalam Python, operator “*” dalam Python, **kwargs dalam Python, dan lainnya. Topik selanjutnya yang mencakup kelas akan dibahas di blog post berikutnya. Pekerjaan rumah mengenai fungsi lanjutan dalam Python diberikan di bawah ini.
Apa itu analisis pekerjaan? Apakah Anda pernah mendengar istilah tersebut, apakah Anda tahu apa yang…
File dalam format PDF menemani kita setiap hari. Cara universal untuk menyimpan konten ini menjamin…
Perkembangan Internet dan pembelajaran mesin akhirnya telah mengesampingkan kamus bahasa cetak yang besar dan tradisional.…
Pencarian sinar-X adalah salah satu dari banyak teknik pencarian data yang digunakan untuk merekrut karyawan…
Hari ini, kita akan fokus pada tahap awal pengembangan perusahaan - start-up. Kita akan mencoba…
Program untuk membangun aplikasi tanpa coding – apakah Anda tahu salah satunya? Seperti yang ditunjukkan…