Amalan Terbaik untuk Pernyataan Bersyarat dalam Python

Amalan Terbaik untuk Pernyataan Bersyarat dalam Python

Artikel ini menjelaskan amalan terbaik untuk pernyataan bersyarat dalam Python.

YouTube Video

Amalan Terbaik untuk Pernyataan Bersyarat dalam Python

if dalam Python adalah struktur asas untuk melaksanakan cawangan bersyarat, dan ia sangat mempengaruhi kebolehbacaan dan penyelenggaraan kod. Di sini, kami akan membincangkan secara terperinci amalan terbaik untuk menggunakan if.

Gunakan ungkapan bersyarat yang jelas

Tulis ungkapan bersyarat secara ringkas dan jelas, elakkan kenyataan yang berulang.

1condition = True
2
3### Bad Example
4if condition == True:
5    pass
6
7### Good Example
8if condition:
9    pass
  • Dalam Python, anda boleh menunjukkan bahawa syarat adalah benar dengan menulis if condition:.

Menggabungkan pelbagai syarat

Apabila menggabungkan pelbagai syarat, gunakan and atau or. Walau bagaimanapun, apabila ungkapan bersyarat menjadi kompleks, kebolehbacaan mungkin berkurangan, maka pertimbangkan pelarasan 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 memecahkan syarat dan memberikan mereka kepada pembolehubah, kebolehbacaan boleh ditingkatkan.

Penilaian pintas (short-circuit) bagi and/or

Dalam ungkapan bersyarat yang menggunakan and atau or, jika hasilnya dapat ditentukan hanya oleh nilai sebelah kiri, penilaian pintas akan berlaku dan bahagian kanan tidak akan dinilai. Memahami perkara ini membantu anda mengelakkan pemprosesan yang tidak perlu dan mencegah ralat.

 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 menggunakan penilaian pintas, anda dapat meningkatkan kecekapan dan keselamatan pemprosesan.

Keutamaan (precedence) bagi and dan or

and mempunyai keutamaan yang lebih tinggi berbanding or. Oleh itu, jika anda menggabungkan syarat secara tidak berhati-hati, anda mungkin mendapat hasil yang tidak dijangka. Adalah penting untuk menggunakan kurungan supaya niat anda lebih 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 kurungan, anda boleh memperjelaskan keutamaan and dan or, sekaligus mengurangkan risiko pepijat yang tidak dijangka.

Fahami Truthy dan Falsy

Dalam Python, nilai berikut dinilai sebagai False:.

  • Tiada
  • Salah
  • Nombor 0 (termasuk 0.0)
  • Jenis jujukan kosong (seperti senarai kosong, tuple, atau rentetan)
    • Contoh: [], (), ""
  • Kamus kosong
    • Contoh: {}

Memanfaatkan ini boleh membantu menyederhanakan ungkapan bersyarat anda.

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

Penggunaan elif dan else yang betul

Apabila menilai pelbagai syarat, gunakan elif. Gunakan else untuk menentukan tingkah laku lalai 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 syarat dilindungi, ia boleh dikeluarkan.
  • Perhatikan susunan ungkapan syarat dan susunkannya secara logik tanpa berlebihan.

Hadkan kedalaman penyorokan.

Penyorokan mendalam terhadap pernyataan if menjadikan kod sukar untuk 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 pemulangan awal boleh mengurangkan penyorokan dan menjadikan kod lebih ringkas.

Elakkan menggunakan pernyataan if satu baris.

Adalah mungkin untuk menulis kenyataan if dalam satu baris, tetapi ini mungkin mengurangkan 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 kenyataan if satu baris hanya boleh diterima untuk syarat atau tindakan yang ringkas, tetapi elakkan menulis kod yang terlalu berbelit-belit.

Memudahkan dengan pengendali ternari atau or

Untuk cawangan bersyarat yang mudah, menggunakan pengendali ternari atau or boleh menjadikan kod anda lebih ringkas. Namun, penggunaan berlebihan boleh menyebabkan kod sukar dibaca, jadi ia harus digunakan hanya untuk syarat yang mudah dan jelas.

 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 syarat yang mudah, menggunakan pengendali ternari atau or boleh menjadikan kod anda lebih pendek dan mudah difahami.

Menyimpan ungkapan syarat dalam cache.

Ungkapan syarat yang melibatkan pengiraan mahal atau panggilan fungsi boleh disimpan dalam pembolehubah untuk meningkatkan prestasi.

 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 dalam Python adalah alat yang mudah dan berkuasa, tetapi penggunaan yang tidak betul boleh menjadikan kod rumit dan sukar untuk dibaca. Dengan mengamalkan amalan terbaik yang diperkenalkan di sini, anda boleh meningkatkan kebolehbacaan, kebolehselenggaraan, dan kecekapan kod anda.

Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.

YouTube Video