Fungsi Python - Gerbang Anda ke Pemrograman Efisien

Helo di sini, pemrogram Python yang berhasrat! Saya sangat gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia fungsi Python. Sebagai seseorang yang telah mengajar pemrograman beberapa tahun, saya boleh katakan bahwa fungsi adalah seperti rakit penyelamat bagi pemrograman - serba guna, berkuasa dan sangat penting. Jadi, mari kita melompat dan membongkar misteri-misteri fungsi Python bersama-sama!

Python - Functions

Apa itu Fungsi Python?

Bayangkan anda membuat kue (yum!). Daripada mengukur bahan-bahan setiap kali, apakah tidak baik jika anda hanya perlu katakan "buat kue" dan semua langkah itu berlaku secara automatik? Itulah yang fungsi lakukan dalam pemrograman! Mereka adalah blok kode yang dapat digunakan kembali yang melakukan tugas tertentu.

Mengapa Gunakan Fungsi?

  1. Kegunaan Kembali: Tulis sekali, gunakan berberapa kali.
  2. Modularitas: Pecahkan masalah kompleks menjadi bahagian yang lebih kecil dan dapat dikendalikan.
  3. Keterbacaan: Buat kode anda lebih mudah untuk dipahami dan dipelihara.

Jenis Fungsi Python

Python menawarkan beberapa jenis fungsi:

  1. Fungsi bawaan
  2. Fungsi yang didefinisikan pengguna
  3. Fungsi tanpa nama (fungsi lambda)

Mari kita fokus pada fungsi yang didefinisikan pengguna untuk saat ini, kerana mereka adalah batu bata bagi perjalanan Python anda.

Definisi Fungsi Python

Membuat fungsi adalah seperti menulis resepi. Ini adalah struktur dasar:

def ucapan_pengguna(name):
"""Fungsi ini menyapa pengguna"""
print(f"Hello, {name}! Selamat datang di dunia fungsi Python!")

Mari kita pecahkan ini:

  • def adalah kata kunci yang memberitahu Python kita sedang mendefinisikan fungsi.
  • ucapan_pengguna adalah nama fungsi (pilih yang deskriptif!).
  • (name) adalah parameter yang fungsi mengharapkan untuk menerima.
  • Blok yang denga adalah tubuh fungsi, di mana magik berlangsung.
  • String dalam tanda petik triple adalah yang disebut docstring, memberikan deskripsi singkat tentang fungsi.

Memanggil Fungsi Python

Sekarang bahwa kita telah mendefinisikan fungsi kita, mari gunakannya!

ucapan_pengguna("Alice")

Output:

Hello, Alice! Selamat datang di dunia fungsi Python!

Lihatlah betapa mudah itu? Kita hanya memanggil fungsi kita dan memberikan argumen ("Alice"), dan ia melakukan tugasnya sempurna!

Lulusan oleh Rujukan vs Nilai

Dalam Python, semua adalah objek, dan semua variabel menahan rujukan ke objek. Ini berarti bahwa ketika anda passing variabel ke fungsi, anda sebenarnya passing rujukan ke objek yang dituju. Konsep ini adalah penting untuk memahami bagaimana fungsi berinteraksi dengan data.

def ubah_list(my_list):
my_list.append(4)
print("Dalam fungsi:", my_list)

list_asal = [1, 2, 3]
ubah_list(list_asal)
print("Luar fungsi:", list_asal)

Output:

Dalam fungsi: [1, 2, 3, 4]
Luar fungsi: [1, 2, 3, 4]

Perhatikan bahwa list asal telah diubah? Itu karena kita passing rujukan ke list, bukan salinan dari itu.

Argumen Fungsi Python

Python menyediakan cara fleksibel untuk passing argumen ke fungsi. Mari kita eksplorasi mereka!

Argumen Posisi atau Wajib

Ini adalah bentuk paling dasar dari argumen. Urutan penting!

def ucapan(name, greeting):
print(f"{greeting}, {name}!")

ucapan("Bob", "Hello")  # Betul
ucapan("Hello", "Bob")  # Ups! Ini akan menghasilkan hasil yang tidak diharapkan

Argumen Kata Kunci

Gunakan ini apabila anda ingin membuat panggilan fungsi anda lebih eksplisit:

ucapan(name="Charlie", greeting="Selamat pagi")
ucapan(greeting="Selamat malam", name="David")  # Urutan tidak penting di sini!

Argumen Default

Ini menyediakan nilai fallback jika argumen tidak diberikan:

def ucapan(name, greeting="Hello"):
print(f"{greeting}, {name}!")

ucapan("Eve")  # Menggunakan ucapan default
ucapan("Frank", "Good night")  # Mengganti default

Argumen Posisi-Sahaja

Python 3.8 mengenalkan cara untuk menentukan argumen yang harus dilewatkan secara posisional:

def ucapan(name, /, greeting="Hello"):
print(f"{greeting}, {name}!")

ucapan("George")  # Betul
ucapan(name="Helen")  # Ini akan menghasilkan kesalahan

Argumen Kata Kunci-Sahaja

Paksa pemanggil untuk menggunakan argumen kata kunci untuk keterbacaan yang lebih baik:

def ucapan(*, name, greeting="Hello"):
print(f"{greeting}, {name}!")

ucapan(name="Ivy")  # Betul
ucapan("Jack")  # Ini akan menghasilkan kesalahan

Argumen Arbitrer atau Panjang Variabel

Apabila anda tidak yakin berapa banyak argumen anda akan menerima:

def ucapan(*names):
for name in names:
print(f"Hello, {name}!")

ucapan("Kate", "Liam", "Mia")

Fungsi Python dengan Nilai Kembali

Fungsi juga dapat memberikan hasil kembali:

def tambah(a, b):
return a + b

hasil = tambah(5, 3)
print(f"Hasil penjumlahan adalah: {hasil}")

Fungsi Tanpa Nama (Fungsi Lambda)

Kadang-kadang anda perlu fungsi yang cepat, sekaliguna. Masukkan fungsi lambda:

kotak = lambda x: x ** 2
print(kotak(4))  # Output: 16

Lingkup Variabel

Mengerti lingkup variabel adalah penting untuk menulis kode yang efisien dan bebas dari bug.

Variabel Global vs. Lokal

var_global = "Saya global!"

def uji_lingkup():
var_lokal = "Saya lokal!"
print(var_global)  # Ini berfungsi
print(var_lokal)   # Ini juga berfungsi

uji_lingkup()
print(var_global)  # Ini berfungsi
print(var_lokal)   # Ini akan menghasilkan kesalahan

Ingat, variabel lokal hanya dapat diakses dalam fungsi mereka!

Tabel Metode Fungsi

Berikut adalah tabel yang berguna dari beberapa metode fungsi yang umum di Python:

Metode Deskripsi Contoh
def Mendefinisikan fungsi def my_function():
return Menentukan nilai kembali return x + y
lambda Membuat fungsi tanpa nama lambda x: x * 2
*args Memungkinkan jumlah arbitrer argumen posisional def func(*args):
**kwargs Memungkinkan jumlah arbitrer argumen kata kunci def func(**kwargs):
global Mengumumkan variabel global di dalam fungsi global x
nonlocal Mengumumkan variabel non-local di dalam fungsi bersarang nonlocal y

Dan itu adalah, para pelajar yang dihargai! Kita telah melakukan perjalanan melalui wilayah fungsi Python, dari dasar-dasar ke beberapa konsep yang lebih tingkat lanjut. Ingat, praktek membuat perfect, jadi jangan segan untuk melakukan eksperimen dengan konsep ini di kode anda sendiri. Selamat coding, dan semoga fungsi bersama dengan anda!

Credits: Image by storyset