Olası Mükerrer: Python Üçlü Operatör
Python'a yeni başlıyorum ve sözdiziminin basitliğini gerçekten seviyorum. Ancak, bir if
-then
-else
ifadesini tek satıra sığacak şekilde yazmanın daha kolay bir yolu var mı?
Örneğin:
if count == N:
count = 0
else:
count = N + 1
Bunu yazmanın daha basit bir yolu var mı? Yani, Objective-C'de bunu şöyle yazabilirim:
count = count == N ? 0 : count + 1;
Python için benzer bir şey var mı?
Güncelleme
Bu durumda count == (count + 1) % N
kullanabileceğimi biliyorum.
Ben genel sözdizimini soruyorum.
Bu'bir if-then'den daha spesifik olarak bir üçlü operatör ifadesidir, işte python sözdizimi
value_when_true if condition else value_when_false
Daha İyi Örnek: (teşekkürler Bay Burns)
Meyve == 'Elma' ise 'Evet' aksi takdirde 'Hayır'`
Şimdi atama ve if sözdizimi ile karşılaştırma ile
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
vs
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
count = 0 if count == N else N+1
- üçlü operatör. Yine de sizin çözümünüzün bundan daha okunabilir olduğunu söyleyebilirim.
Genel üçlü sözdizimi:
value_true if <test> else value_false
Başka bir yol da olabilir:
[value_false, value_true][<test>]
Örneğin:
count = [0,N+1][count==N]
Bu, birini seçmeden önce her iki dalı da değerlendirir. Sadece seçilen dalı değerlendirmek için:
[lambda: value_false, lambda: value_true][<test>]()
Örneğin:
count = [lambda:0, lambda:N+1][count==N]()