Saya telah mulai mempelajari lebih dalam tentang Python dan saat ini memiliki cuplikan kode yang terlihat seperti ini saat mengerjakan tugas:

if conditionA:
    if x > y:
    // perform action

elif conditionB:
    if x >= y:
    // perform same action

else:
    pass

Dengan kata lain, tergantung pada apakah conditionA atau conditionB benar (keduanya tidak mungkin benar, tetapi keduanya bisa salah) Saya ingin memeriksa kondisi bersarang yang sangat mirip dalam kedua kasus kecuali itu operator logika berubah antara ">" atau ">=". Saya ingin mempelajari cara untuk menyederhanakan ini dan tidak harus memasukkan kode "tindakan" yang sama dua kali tanpa membuat fungsi untuk itu. Intuisi saya memberi tahu saya bahwa saya sedang mencari cara untuk mengubah operator logika ">" menjadi ">=" (atau sebaliknya) tergantung pada apakah A atau B benar, tetapi saya tidak dapat menemukan apa pun secara online tentang kemampuan ini. Jika menyederhanakan ini tidak mungkin, maka saya dapat menggunakan untuk mempertahankan apa yang saya miliki dan hanya membuat kode "tindakan" menjadi suatu fungsi, jika itu dianggap praktik terbaik.

Terima kasih!

1
LP2LP 14 Maret 2021, 10:31

2 jawaban

Jawaban Terbaik

Mengapa Anda tidak menggabungkan persyaratan? Sesuatu seperti ini:

if (conditionA and x > y) or (conditionB and x >= y):
    # perform your action
2
Mushif Ali Nawaz 14 Maret 2021, 07:57

Anda dapat membungkus "tindakan yang sama" Anda dalam suatu fungsi, dan menggabungkan kondisi alih-alih menumpuknya, misalnya:

def action():
    # perform your action
    ...

if condition_a and x > y:
    action()
elif condition_b and x >= y:
    action()

Anda juga dapat menggabungkan kedua kondisi menjadi satu

if (
    (condition_a and x > y) or
    (condition_b and x >= y)
):
    # perform your action

Tidak banyak lagi yang saya lihat dari informasi yang Anda berikan. Jangan mencoba untuk "menyederhanakan" terlalu banyak jika itu akan menghambat keterbacaan.

1
michaeldel 14 Maret 2021, 07:38