Praktik Terbaik untuk Pernyataan Kondisional di Python

Praktik Terbaik untuk Pernyataan Kondisional di Python

Artikel ini menjelaskan praktik terbaik untuk pernyataan kondisional di Python.

YouTube Video

Praktik Terbaik untuk Pernyataan Kondisional di Python

If dalam Python adalah konstruksi dasar untuk menerapkan percabangan kondisional, dan ini sangat memengaruhi keterbacaan serta pemeliharaan kode. Di sini, kita akan membahas secara rinci praktik terbaik untuk menggunakan pernyataan if.

Gunakan ekspresi kondisional yang eksplisit

Tulislah ekspresi kondisional secara ringkas dan eksplisit, hindari pernyataan yang berlebihan.

1condition = True
2
3### Bad Example
4if condition == True:
5    pass
6
7### Good Example
8if condition:
9    pass
  • Di Python, Anda dapat menunjukkan bahwa suatu kondisi bernilai benar dengan menulis if condition:.

Menggabungkan beberapa kondisi

Saat menggabungkan beberapa kondisi, gunakan and atau or. Namun, ketika ekspresi kondisional menjadi kompleks, keterbacaan dapat menurun, sehingga pertimbangkan penyesuaian berikut:.

 1age = 15
 2is_student = True
 3
 4### Bad Example
 5# Complex condition
 6if (age > 18 and age < 65) or (is_student and age > 15):
 7    pass
 8
 9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15    pass
  • Dengan membagi kondisi dan menetapkannya ke variabel, keterbacaan dapat ditingkatkan.

Evaluasi short-circuit pada and/or

Dalam ekspresi kondisional yang menggunakan and atau or, jika hasilnya dapat ditentukan hanya dengan nilai kiri, evaluasi short-circuit terjadi dan sisi kanan tidak dievaluasi. Memahami hal ini membantu Anda menghindari pemrosesan yang tidak perlu dan mencegah kesalahan.

 1user = None
 2def expensive_check():
 3    return True
 4
 5# Example of short-circuiting with 'and'
 6if user and user.is_active:
 7    # If user is None, user.is_active will NOT be evaluated
 8    print("Active user found.")
 9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12    # If user.is_admin is True, expensive_check will NOT be called.
13    print("Access granted.")
14else:
15    print("Access denied.")
  • Dengan memanfaatkan evaluasi short-circuit, Anda dapat meningkatkan efisiensi dan keamanan pemrosesan.

Prioritas and dan or

and memiliki prioritas lebih tinggi daripada or. Oleh karena itu, ketika menggabungkan kondisi tanpa hati-hati, Anda mungkin mendapatkan hasil yang tidak diinginkan. Penting untuk menggunakan tanda kurung agar maksud Anda menjadi jelas.

 1age = 15
 2is_student = True
 3
 4### Unclear example
 5# This is interpreted as: age > 18 and (age < 65 or is_student)
 6if age > 18 and age < 65 or is_student:
 7    pass
 8
 9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12    pass
  • Dengan menggunakan tanda kurung, Anda dapat memperjelas prioritas and dan or, sehingga mengurangi risiko bug yang tidak terduga.

Pahami Truthy dan Falsy

Di Python, nilai-nilai berikut dievaluasi sebagai False:.

  • None
  • False
  • Angka 0 (termasuk 0.0)
  • Tipe urutan kosong (seperti list, tuple, atau string kosong)
    • Contoh: [], (), ""
  • Dictionary kosong
    • Contoh: {}

Memanfaatkan ini dapat membantu menyederhanakan ekspresi kondisional Anda.

1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5    pass
6
7### Good Example
8if items:
9    pass

Penggunaan yang tepat untuk elif dan else

Saat mengevaluasi beberapa kondisi, gunakan elif. Gunakan else untuk mendefinisikan perilaku default di akhir.

 1score = 80
 2
 3if score >= 90:
 4    grade = "A"
 5elif score >= 80:
 6    grade = "B"
 7elif score >= 70:
 8    grade = "C"
 9else:
10    grade = "F"
  • else tidak wajib. Jika semua kondisi sudah tercakup, itu bisa dihilangkan.
  • Perhatikan urutan ekspresi kondisional dan susun secara logis tanpa redundansi.

Batasi kedalaman penanaman (nesting).

Penanaman dalam pernyataan if membuat kode lebih sulit dibaca.

 1def access_resource():
 2    return True
 3
 4### Bad Example
 5def deep_nest(user, resource):
 6    if user.is_authenticated:
 7        if user.has_permission:
 8            if resource.is_available:
 9                access_resource()
10
11### Good Example
12def early_return(user, resource):
13    if not user.is_authenticated:
14        return
15    if not user.has_permission:
16        return
17    if not resource.is_available:
18        return
19
20    access_resource()
  • Menggunakan pengembalian awal (early return) dapat mengurangi penanaman dan membuat kode lebih ringkas.

Hindari penggunaan pernyataan if satu baris.

Menulis pernyataan if dalam satu baris memang memungkinkan, tetapi hal ini dapat mengurangi keterbacaan.

 1condition = False
 2def do_something():
 3    return True
 4
 5### Bad Example
 6if condition: do_something()
 7
 8### Good Example
 9if condition:
10    do_something()
  • Penggunaan if satu baris hanya dapat diterima untuk kondisi atau aksi yang singkat saja, tetapi hindari menulis kode yang terlalu panjang.

Menyederhanakan dengan operator ternary atau or

Untuk percabangan kondisional sederhana, menggunakan operator ternary atau or dapat membuat kode Anda lebih ringkas. Namun, penggunaan berlebihan dapat membuat kode Anda sulit dibaca, sehingga sebaiknya hanya digunakan untuk kondisi yang sederhana dan mudah dipahami.

 1is_admin = True
 2input_name = None
 3
 4# Regular if statement
 5if is_admin:
 6    role = "Administrator"
 7else:
 8    role = "User"
 9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"
  • Untuk kondisi sederhana, menggunakan operator ternary atau or dapat membuat kode Anda lebih pendek dan lebih mudah dipahami.

Menyimpan ekspresi kondisional (caching).

Ekspresi kondisional yang melibatkan perhitungan rumit atau pemanggilan fungsi dapat disimpan dalam variabel untuk meningkatkan kinerja.

 1def expensive_function():
 2    pass
 3
 4def another_expensive_function():
 5    pass
 6
 7### Bad Example
 8if expensive_function() and another_expensive_function():
 9    pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15    pass

Ringkasan

Pernyataan if di Python adalah alat sederhana dan kuat, tetapi penggunaan yang tidak tepat dapat membuat kode menjadi kompleks dan sulit dibaca. Dengan menerapkan praktik terbaik yang diperkenalkan di sini, Anda dapat meningkatkan keterbacaan, pemeliharaan, dan efisiensi kode Anda.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video