Python - Argumen Arbitrer atau Panjang Variabel

Halo semua, para penyihir Python masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia argumen arbitrer di Python. Jangan khawatir jika kamu baru mengenal pemrograman; saya akan menjadi pemandumu yang ramah, dan kita akan menjelajahi konsep ini langkah demi langkah. Jadi, siapkan wands virtual kamu (keyboard), dan mari kita melompat!

Python - Arbitrary Arguments

Argumen Arbitrer (*args)

Bayangkan jika kamu sedang merencanakan sebuah pesta, tetapi kamu tidak yakin berapa banyak teman yang akan datang. Kamu ingin untuk bersiap untuk jumlah tamu yang berapa saja. Itu adalah yang akan argumen arbitrer lakukan di fungsi Python – mereka memungkinkan kamu untuk menangani jumlah argumen yang tidak diketahui!

Di Python, kita menggunakan *args untuk menandai argumen arbitrer. Tanda bintang (*) adalah simbol magis di sini, dan args hanya konvensi (kamu bisa menggunakan nama apa saja, tetapi args sangat umum digunakan dan dikenal).

Lihatlah contoh sederhana ini:

def ucapan_teman(*args):
for teman in args:
print(f"Halo, {teman}!")

ucapan_teman("Alice", "Bob", "Charlie")

Dalam contoh ini, ucapan_teman() dapat menerima jumlah argumen apa saja. Ketika kita menjalankan kode ini, itu akan menghasilkan:

Halo, Alice!
Halo, Bob!
Halo, Charlie!

Tapi apa jika kita punya lebih banyak teman? Tidak masalah! Kita dapat dengan mudah menambahkan lebih banyak nama:

ucapan_teman("Alice", "Bob", "Charlie", "David", "Eve")

Dan fungsi kami akan senang untuk menyapa mereka semua!

Cara Kerja *args

Ketika kamu menggunakan *args di definisi fungsi, Python mengemas semua argumen ke dalam sebuah tuple. Kamu kemudian dapat mengulanginya di dalam fungsi kamu. Itu seperti memiliki tas magis yang dapat menahan jumlah item berapa saja!

Contoh Argumen Arbitrer

Mari kita buat contoh yang lebih praktis. Misalkan kita ingin menghitung rata-rata dari jumlah skor yang berubah:

def hitung_rerata(*args):
if len(args) == 0:
return 0
total = sum(args)
rerata = total / len(args)
return rerata

print(hitung_rerata(85, 90, 78))
print(hitung_rerata(92, 88, 95, 78, 80))

Ini akan menghasilkan:

84.33333333333333
86.6

Fungsi hitung_rerata() kami dapat menangani jumlah skor berapa saja. Itu menghitung jumlah menggunakan fungsi built-in sum(), kemudian membagi dengan jumlah skor untuk mendapatkan rerata.

Argumen Wajib Dengan Argumen Arbitrer

Kadang-kadang, kamu mungkin ingin memiliki beberapa argumen wajib bersama dengan argumen arbitrer. Tidak usah khawatir! Python menangani kamu. Kamu dapat menggabungkan parameter reguler dengan *args. Hanya ingat untuk menempatkan *args di akhir:

def kenalan_kelas(guru, *murid):
print(f"Halo, saya {guru}, dan saya akan menjadi guru kamu.")
print("Mari kita kenalkan murid-murid:")
for murid in murid:
print(f"- {murid}")

kenalan_kelas("Mr. Johnson", "Alice", "Bob", "Charlie")

Ini akan menghasilkan:

Halo, saya Mr. Johnson, dan saya akan menjadi guru kamu.
Mari kita kenalkan murid-murid:
- Alice
- Bob
- Charlie

Dalam contoh ini, guru adalah argumen wajib, sementara *murid dapat menerima jumlah nama murid berapa saja.

Argumen Keyword Arbitrer (**kwargs)

Sekarang, mari kita naik level! Apa jika kita ingin mengirim pasangan kunci-nilai sebagai argumen? Masuklah **kwargs (argumen keyword)! Ini seperti *args, tetapi untuk argumen bernama.

Inilah contoh sederhana:

def print_info_pengguna(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")

print_info_pengguna(name="Alice", age=25, city="New York")

Ini akan menghasilkan:

name: Alice
age: 25
city: New York

Dalam kasus ini, **kwargs membuat kamus di mana kunci adalah nama argumen dan nilai adalah nilai argumen.

Beberapa Argumen Dengan Argumen Keyword Arbitrer

Kamu dapat menggabungkan argumen reguler, *args, dan **kwargs di dalam satu fungsi. Hanya ingat urutan: argumen reguler terlebih dahulu, kemudian *args, dan akhirnya **kwargs.

Inilah contoh yang membawa semuanya bersama:

def info_murid(school, *args, **kwargs):
print(f"Sekolah: {school}")
print("Mata Pelajaran:")
for subject in args:
print(f"- {subject}")
print("Informasi Tambahan:")
for key, value in kwargs.items():
print(f"{key}: {value}")

info_murid("Python High", "Matematika", "Sains", "Sejarah", name="Alice", age=16, kelas="10th")

Ini akan menghasilkan:

Sekolah: Python High
Mata Pelajaran:
- Matematika
- Sains
- Sejarah
Informasi Tambahan:
name: Alice
age: 16
kelas: 10th

Ringkasan Metode

Berikut adalah tabel ringkasan metode yang telah kita diskusikan:

Metode Sintaks Deskripsi
Argumen Arbitrer *args Memungkinkan fungsi untuk menerima jumlah argumen posisional apa saja
Argumen Keyword Arbitrer **kwargs Memungkinkan fungsi untuk menerima jumlah argumen keyword apa saja
Penggunaan gabungan def func(regular_args, *args, **kwargs) Menggabungkan argumen reguler dengan kedua jenis argumen arbitrer

Ingat, kekuatan argumen arbitrer ada di atas fleksibilitasnya. Mereka memungkinkan kamu untuk membuat fungsi yang lebih serbaguna yang dapat menyesuaikan dengan berbagai situasi.

Sebagai penutup perjalanan magis ini melalui argumen arbitrer, saya harap kamu merasa lebih percaya diri tentang menggunakan alat yang kuat ini di dalam skrip Python kamu... Saya maksud, penyihir! Praktekan penggunaan *args dan **kwargs di dalam fungsi kamu, dan segera kamu akan membuat kode Python dengan kefasihan penyihir yang berpengalaman. Happy coding, dan semoga fungsi kamu selalu fleksibel!

Credits: Image by storyset