Sabtu, 27 Desember 2008

Trik "and-or"

Salah satu keunggulan python adalah operasi boolean tidak hanya mengembalikan nilai True atau False saja, tapi bisa juga mengembalikan sebuah nilai.
Dalam python, semua objek yang mempunyai nilai dianggap True, dan yang tidak mempunyai nilai dianggap False (contoh: 0, string kosong, list kosong, dictionary kosong, dll). Perhatikan contoh di bawah.

>>> "String" and 0 # T and F => F
0

>>> "" or [1,2,3] # F or T => T

[1, 2, 3]


Akan tetapi, bagaimana jika kedua operan tersebut sama-sama True atau sama-sama False?
*Untuk operasi and, akan mengembalikan nilai yang berada di kanan jika kedua operan True.
*Untuk operasi or, akan mengembalikan nilai yang berada di kiri jika kedua operan True.
*Untuk kedua operasi, akan mengembalikan nilai yang sebaliknya jika kedua operan False.

>>> "String" and 123 # T and T => T
123

>>> 23 or [1, 5, 3] # T and T => T

23

>>> "" or 0 # F or F => F

0


Trik yang sebenarnya dimulai di sini. Dengan menggunakan sifat di atas, kita dapat membuat operasi if-else menjadi satu baris. Perhatikan contoh berikut.

>>> 1 > 0 and "T" or "F"
'T'

>>> 9 < 0 and "Right" or "Wrong"
'Wrong'


Mungkin Anda sudah bisa mengerti, bentuk umumnya adalah seperti ini condition and ifTrue or ifFalse. Akan tetapi, ini hanya berlaku jika ifTrue atau ifFalse mempunyai nilai (bukan 0, bukan string kosong, dll).
Bagaimana jika kita menginginkan nilai ifTrue atau ifFalse bernilai 0? Mudah, cukup dengan membuatkannya sebuah list, [0] . Sehingga list tersebut bukan lagi sebuah list kosong.

Selamat mencoba!

Tidak ada komentar:

Posting Komentar