Python - Argumen Default

Hai di sana, pemrogram Python yang berhasrat! Hari ini, kita akan menyelam ke atas dunia yang menakjubkan argumen default di Python. Sebagai guru sains komputer yang ramah di lingkungan kita, saya sangat gembira untuk membimbing anda melalui perjalanan ini. Jadi, rakam minuman kesukaan anda, dapatkan yang selesa, dan mari kita mulakan petualangan Python ini bersama-sama!

Python - Default Arguments

Apa Itu Argumen Default?

Sebelum kita melompat ke hal yang kacang-kacang, mari kita mulakan dengan dasar-dasar. Argumen default adalah fitur yang berguna di Python yang membolehkan anda untuk menentukan parameter fungsi dengan nilai pra-set. Nilai ini akan digunakan jika anda tidak memberikan nilai khusus saat memanggil fungsi.

Pikirkan argumen default sebagai rakit penyelamat. Mereka ada untuk menjatuhkan anda jika anda lupa untuk menentukan nilai, memastikan fungsi anda masih dapat berjalan dengan lancar. Ia seperti memiliki rakannya yang selalu membawa snack tambahan ke atas picknik – anda mungkin tidak selalu memerlukannya, tetapi ia adalah bagus untuk memiliki mereka jika perlu!

Mengapa Gunakan Argumen Default?

  1. Mereka membuat kod anda lebih fleksibel.
  2. Mereka mengurangkan jumlah argumen yang anda perlu berikan.
  3. Mereka membantu mempertahankan keserasian ke belakang ketika menambah parameter baru ke fungsi.

Sekarang, mari kita lihat bagaimana ini berfungsi dalam praktik!

Contoh Argumen Default

Mari kita mulakan dengan contoh yang sederhana. Bayangkan jika kita membuat fungsi untuk menyapa orang:

def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"

# Menggunakan fungsi
print(greet("Alice"))
print(greet("Bob", "Hi"))

Output:

Hello, Alice!
Hi, Bob!

Dalam contoh ini, greeting adalah argumen default kita. Jika kita tidak menentukan penyapaan, fungsi akan menggunakan "Hello" secara default. Mari kita pecahkan:

  1. Kita mendefinisikan fungsi greet dengan dua parameter: name dan greeting.
  2. greeting memiliki nilai default "Hello".
  3. Saat kita memanggil greet("Alice"), kita hanya memberikan name. Fungsi menggunakan default "Hello" untuk penyapaan.
  4. Saat kita memanggil greet("Bob", "Hi"), kita memberikan kedua-dua name dan greeting, jadi fungsi menggunakan "Hi" bukannya default.

Contoh: Memanggil Fungsi Tanpa Argumen Kata Kunci

Sekarang, mari kita lihat contoh yang sedikit lebih kompleks. Kita akan membuat fungsi untuk menghitung jumlah total harga item di atas rak belanja:

def calculate_total(items, tax_rate=0.08, discount=0):
subtotal = sum(items)
total = subtotal * (1 + tax_rate) - discount
return round(total, 2)

# Menggunakan fungsi
cart1 = [10, 20, 30]
print(calculate_total(cart1))
print(calculate_total(cart1, 0.10))
print(calculate_total(cart1, 0.10, 5))

Output:

64.80
66.00
61.00

Mari kita pecahkan ini:

  1. Fungsi calculate_total kita memiliki tiga parameter: items (diperlukan), tax_rate (default 0.08), dan discount (default 0).
  2. Pada panggilan pertama, kita hanya memberikan items. Fungsi menggunakan default tax rate dan tidak ada diskon.
  3. Pada panggilan kedua, kita memberikan items dan tax rate khusus 0.10. Diskon tetap 0.
  4. Pada panggilan ketiga, kita memberikan semua tiga argumen: items, tax rate, dan diskon 5.

Ingat, saat memanggil fungsi tanpa argumen kata kunci, urutan penting! Python menetapkan nilai kepada parameter dalam urutan mereka diberikan.

Objek yang Dapat Diubah sebagai Argumen Default

Sekarang, di sini tempat hal menjadi sedikit tricky. Menggunakan objek yang dapat diubah (seperti daftar atau kamus) sebagai argumen default dapat menyebabkan perilaku yang tidak diharapkan. Mari saya tunjukkan maksud saya:

def add_item(item, shopping_list=[]):
shopping_list.append(item)
return shopping_list

print(add_item("apple"))
print(add_item("banana"))
print(add_item("cherry"))

Output:

['apple']
['apple', 'banana']
['apple', 'banana', 'cherry']

Kesampaian! Daftar terus tumbuh dengan setiap panggilan. Ini terjadi karena daftar default hanya dibuat sekali saat fungsi didefinisikan, bukan setiap kali fungsi dipanggil.

Untuk menghindari ini, kita dapat menggunakan None sebagai default dan membuat daftar baru di dalam fungsi:

def add_item(item, shopping_list=None):
if shopping_list is None:
shopping_list = []
shopping_list.append(item)
return shopping_list

print(add_item("apple"))
print(add_item("banana"))
print(add_item("cherry"))

Output:

['apple']
['banana']
['cherry']

Lebih baik! Sekarang setiap panggilan membuat daftar baru seperti yang diharapkan.

Ringkasan Argumen Default Python

Mari kita ringkas apa yang kita telah pelajari dalam tabel yang mudah dipakai:

Konsep Deskripsi Contoh
Argumen Default Dasar Memberikan nilai default untuk parameter def greet(name, greeting="Hello"):
Banyak Argumen Default Fungsi dapat memiliki banyak argumen default def calculate_total(items, tax_rate=0.08, discount=0):
Urutan Argumen Argumen non-default harus datang sebelum argumen default dalam definisi fungsi def func(required, optional=default):
Argumen Default yang Dapat Diubah Hindari menggunakan objek yang dapat diubah sebagai argumen default Gunakan None sebagai default dan buat objek di dalam fungsi
Argumen Kata Kunci Membolehkan memanggil fungsi dengan argumen bernama dalam urutan apa pun calculate_total(items=[10, 20], discount=5)

Dan itu adalah semua, orang-orang! Anda baru saja meningkatkan keterampilan Python anda dengan argumen default. Ingat, seperti setiap alat yang kuat, gunakan mereka dengan bijak. Mereka dapat membuat kod anda lebih fleksibel dan lebih mudah digunakan, tetapi hati-hati dengan default yang dapat diubah!

Terus latihan, tetap curious, dan happy coding! Sebelum anda tahu, anda akan menulis Python seperti profesional. Sampai jumpa lagi, ini adalah guru sains komputer yang ramah di lingkungan anda, menandatangani keluar!

Credits: Image by storyset