Python - Argumen Arbitari atau Panjang Variabel

Hai di sana, ahli penyihir Python masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia argumen arbitari di Python. Jangan khawatir jika anda baru di atas pengaturcaraan; saya akan menjadi pemandu anda yang bersahabat, dan kita akan menjelajahi konsep ini langkah demi langkah. Jadi, rakamkan wands virtual anda (papan kekunci), dan mari kita melompat masuk!

Python - Arbitrary Arguments

Argumen Arbitari (*args)

Bayangkan anda sedang merancang satu perayaan, tetapi anda tidak pasti berapa ramai kawan yang akan hadir. Anda mahu untuk bersedia untuk apa jua jumlah tetamu. Itu adalah persis apa yang argumen arbitari lakukan di atas fungsi Python – mereka membenarkan anda untuk menguruskan jumlah yang tidak diketahui atas argumen!

Di atas Python, kita gunakan *args untuk menandakan argumen arbitari. Bintang (*) adalah simbol penyihir di sini, dan args adalah hanya satu konvensyen (anda boleh menggunakan apa jua nama, tetapi args adalah sangat digunakan dan dikenali).

Mari kita lihat satu contoh yang ringkas:

def greet_friends(*args):
for friend in args:
print(f"Hello, {friend}!")

greet_friends("Alice", "Bob", "Charlie")

Dalam contoh ini, greet_friends() boleh menerima apa jua jumlah argumen. Apabila kita menjalankan kod ini, ia akan menghasilkan:

Hello, Alice!
Hello, Bob!
Hello, Charlie!

Tapi apa jika kita ada lebih ramai kawan? Tiada masalah! Kita boleh dengan mudah menambah lebih banyak nama:

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

Dan fungsi kita akan bersenang-senang untuk menyambut mereka semua!

Cara Kerja *args

Apabila anda menggunakan *args di atas definisi fungsi, Python akan mengemas semua argumen ke atas satu rakam. Anda boleh kemudian mengiterasi atas rakam ini di atas fungsi anda. Ia seperti memiliki rakam penyihir yang boleh menahan apa jua jumlah item!

Contoh Argumen Arbitari

Mari kita cipta satu contoh yang lebih praktikal. Bayangkan kita mahu untuk mengira purata bagi jumlah yang berubah-ubah atas mata:

def calculate_average(*args):
if len(args) == 0:
return 0
total = sum(args)
average = total / len(args)
return average

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

Ini akan menghasilkan:

84.33333333333333
86.6

Fungsi calculate_average() kita boleh menguruskan apa jua jumlah mata. Ia mengira jumlah menggunakan fungsi rakaman sum(), kemudian membahagi dengan jumlah mata untuk mendapatkan purata.

Argumen Wajib Dengan Argumen Arbitari

Kadang-kadang, anda mungkin mahu untuk memiliki beberapa argumen wajib bersama dengan argumen arbitari. Tiada risau! Python telah membantu anda. Anda boleh campur parameter biasa dengan *args. Just ingat untuk meletakkan *args di atas akhir:

def introduce_class(teacher, *students):
print(f"Hello, I'm {teacher}, and I'll be your teacher.")
print("Let's introduce the students:")
for student in students:
print(f"- {student}")

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

Ini akan menghasilkan:

Hello, I'm Mr. Johnson, and I'll be your teacher.
Let's introduce the students:
- Alice
- Bob
- Charlie

Dalam contoh ini, teacher adalah argumen wajib, sementara *students boleh menerima apa jua jumlah nama pelajar.

Argumen Kata Kunci Arbitari (**kwargs)

Sekarang, mari kita naik taraf! Apa jika kita mahu untuk melepaskan pasangan kunci-nilai sebagai argumen? Masukkan **kwargs (argumen kata kunci)! Ia seperti *args, tetapi untuk argumen bernama.

Inilah satu contoh yang ringkas:

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

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

Ini akan menghasilkan:

name: Alice
age: 25
city: New York

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

Beberapa Argumen Dengan Argumen Kata Kunci Arbitari

Anda boleh menggabungkan argumen biasa, *args, dan **kwargs di atas satu fungsi. Justingat untuk susunan: argumen biasa dahulu, kemudian *args, dan akhirnya **kwargs.

Inilah satu contoh yang membawa semua bersama:

def student_info(school, *args, **kwargs):
print(f"School: {school}")
print("Subjects:")
for subject in args:
print(f"- {subject}")
print("Additional Information:")
for key, value in kwargs.items():
print(f"{key}: {value}")

student_info("Python High", "Math", "Science", "History", name="Alice", age=16, grade="10th")

Ini akan menghasilkan:

School: Python High
Subjects:
- Math
- Science
- History
Additional Information:
name: Alice
age: 16
grade: 10th

Ringkasan Method

Inilah satu jadual yang menjelaskan method yang kita telah membincangkan:

Method Syntax Description
Argumen Arbitari *args Membenarkan fungsi untuk menerima apa jua jumlah argumen posisi
Argumen Kata Kunci Arbitari **kwargs Membenarkan fungsi untuk menerima apa jua jumlah argumen kata kunci
Penggunaan gabungan def func(regular_args, *args, **kwargs) Menggabungkan argumen biasa dengan kedua jenis argumen arbitari

Ingat, kekuatan argumen arbitari adalah pada keanjalan mereka. Mereka membenarkan anda untuk membuat fungsi yang lebih serba guna yang boleh menyesuaikan diri kepada situasi yang berbeza.

Apabila kita menutup perjalanan penyihir ini melalui argumen arbitari, saya harap anda merasa lebih yakin tentang penggunaan alat penyihir ini di atas script Python anda... Saya maksud, skrip! Latihan menggunakan *args dan **kwargs di atas fungsi anda, dan tidak lama lagi anda akan menghasilkan kod Python dengan kefasihan penyihir yang berpengalaman. Selamat pengaturcaraan, dan jangan lupa untuk menjadikan fungsi anda sentiasa fleksibel!

Credits: Image by storyset