Python Üçlü Operatörü Nasıl Kullanılır?
Yayınlanan: 2023-01-04Bu kılavuz size Python'da üçlü operatörün nasıl kullanılacağını öğretecektir. Sözdizimini öğrenecek ve nasıl çalıştığını anlamak için birkaç örnek kodlayacaksınız.
if-else koşullu ifadesinin nasıl çalıştığını gözden geçirerek başlayacağız ve ardından üçlü işleci kullanarak eşdeğer bir ifade yazmayı öğreneceğiz.
Ardından, birkaç örnek kodlayacağız ve ardından bir Python demeti ve sözlüğü kullanarak Python'un üçlü operatörünün davranışını nasıl taklit edeceğimizi öğreneceğiz. Son olarak, üçlü işleci kullanmayı tercih etmeniz gereken birkaç kullanım durumunu gözden geçireceğiz.
Hadi başlayalım!
Python'da If-Else Beyanı: Bir İnceleme
Bir Python REPL başlatarak veya Geekflare'nin çevrimiçi Python düzenleyicisinde kod yazabilirsiniz.
Python'daki if-else ifadesinin genel sözdizimi aşağıdaki gibidir:
if condition: # do this else: # do this Yukarıdaki kod parçacığında, koşul, kontrol edilecek condition belirtir. Koşul True olarak değerlendirilirse, if bloğu tetiklenir. Koşul False olarak değerlendirilirse, else bloğunun içindeki ifadeler yürütülür.
Aşağıda, energy değerinin sıfırdan küçük veya sıfıra eşit olmasına bağlı olarak game_over değişkenine bir Boole değeri atandığı bir örnek verilmiştir.
-
energy <= 0ise,game_overTrueolur. - Aksi takdirde,
game_over.
Aşağıdaki kod parçacığı, if-else koşullu ifadeleri kullanarak bunun nasıl yapılacağını gösterir:
energy = -1 if energy <= 0: game_over = True else: game_over = False print(game_over) # True Bu örnekte, energy 0'dan küçük olan -1'dir. Yani game_over .
Python Üçlü Operatör: Sözdizimi ve Örnekler

Python, C ve C++ gibi dillerde üçlü koşullu operatöre çok benzeyen bir üçlü operatöre sahiptir. Bunu kullanmak için genel sözdizimi aşağıdaki gibidir:
expression1 if condition else expression2Yukarıdaki sözdizimini ayrıştıralım:
-
condition: Kontrol edilecek koşul. - ifade1 : Koşulun Doğru olup olmadığı değerlendirilecek
expression1. - ifade2 : Koşulun Yanlış olup olmadığı değerlendirilecek
expression2.
Şimdi, kodun if-else sürümünden expression1 , expression2 ve condition ne olması gerektiğini belirleyeceğiz.

Hepsini bir araya getirerek, Python'un üçlü operatörünü kullanarak aşağıdakilere sahibiz.
game_over = True if energy <= 0 else False print(game_over) # TrueBaşka bir örnek kodlayalım. Bir kitapçı işlettiğinizi ve son bir yıl içinde mağazanızı ne sıklıkta ziyaret ettiklerine bağlı olarak okuyuculara alışverişlerinde indirim yaptığınızı varsayalım.
numVisits ziyaret sayısını göstermesine izin verin.
-
numVisits > 7ise indirim yüzdesi,discount_perc20'dir. - Aksi takdirde,
discount_perc5'tir.
discount_perc değişkenine değer atamak için üçlü işleci kullanırız.
numVisits = 10 discount_perc = 20 if numVisits > 7 else 5 print(discount_perc) # 20 (as numVisits = 10 which is > 7)Daha sonra, bir Python demeti ve bir sözlük kullanarak üçlü işleci taklit etmeyi öğreneceğiz.
Üçlü İşleci Python Tuple ile Öykünme
Python'daki tüm yinelemeler gibi, demetler de sıfır indekslemeyi takip eder. Dolayısıyla, bir demette iki öğeniz varsa, tuple_name[0] , demetteki ilk öğeyi belirtir ve tuple_name[1] , demetteki ikinci öğeyi verir.
Python'daki temel veri türleri tamsayı, kayan nokta, dize ve Boolean'dır. Python, belirli bir veri türünü başka bir veri türündeki eşdeğer temsiliyle temsil etmenizi sağlayan tür atamayı destekler.
Bir Python REPL başlatın ve aşağıdaki örnekleri çalıştırın. Tamsayıları Boolean'lara dönüştürmeyi denerseniz, aşağıdakileri fark edeceksiniz:
-
bool(0)False. -
bool(<any non-zero integer>),Truedöndürür.
>>> bool(0) False >>> bool(1) True >>> bool(-1) True >>> bool(10) TrueBenzer şekilde, Boolean'ı tamsayılara dönüştürürken aşağıdakilere sahibiz:
>>> int(True) 1 >>> int(False) 0Tip dökümü ve indekslemeyi bir araya getirerek aşağıdakileri yapabiliriz:
- Demetteki 0 dizinindeki öğe:
conditionFalseolduğunda kullanılacak değer. - Demetteki 1. dizindeki öğe:
conditionTrueolduğunda kullanılacak değer.
Yukarıdakileri kullanarak, aşağıdakilere sahibiz:
>>> numVisits = 10 >>> discount_perc = (5,20)[numVisits > 7] >>> discount_perc # 20 Burada numVisits > 7 koşulu True , çünkü numVisits 10'dur. int(True) 1 olduğu için, discount_perc değeri 20, indeks 1'deki öğedir.
Üçlü İşleci Python Sözlüğü ile Öykünme
True ve False sözlüğün tuşları olarak ayarlayabilirsiniz. Ve expression2 ve expression1 sırasıyla True ve False tuşlarına karşılık gelen değerler olarak ayarlayabilirsiniz.
some_dict = {True: expression1, False: expression2 } Bundan sonra ne yapacaksın? Şimdi expression1 some_dict[condition] kullanırsanız, True anahtarına karşılık gelen ifade1, condition True ise değerlendirilir. Ve expression2 , condition False olduğunda değerlendirilir.
discount_perc örneğini (yine) ama bu kez bir Python sözlüğü kullanarak kodlayalım.
>>> numVisits = 10 >>> discount_dict = {True: 20, False:5} >>> discount_perc = discount_dict[numVisits > 7] >>> discount_perc # 20 Burada numVisits = 10 , 7'den büyüktür. Bu nedenle, numVisits > 7 koşulu True . Yani discount_dict[numVisits > 7] , 20 değeri olan discount_dict[True] olarak değerlendirilir.

Her Zaman Python Üçlü Operatörünü Kullanmalı Mısınız?

Şimdiye kadar, üçlü operatörün nasıl kullanılacağını öğrendik. Ancak her zaman üçlü operatörü kullanmalı mıyız? Üçlü operatör, tüm kullanım durumları için en iyi seçim olmayabilir. Bu bölüm, if-else deyimleri yerine üçlü işleci kullanmayı tercih etmeniz gerektiğinde bozulur. Üçlü işleç yerine if-else deyimini ne zaman kullanmayı düşünmemiz gerektiğini de ele alacağız.
If-Else Bloklarından Daha Özlü
Belirtildiği gibi, Python'da üçlü operatör ifadesi, if-else ifadesinden daha özlüdür. Bu nedenle, koşulları kontrol etmek ve ifadeleri anında koşullu olarak değerlendirmek için kullanabilirsiniz.
Aşağıdaki örnekte, nums rasgele oluşturulmuş 100 tam sayıdan oluşan bir listedir. 100 sayının her birinin tek mi çift mi olduğunu kontrol ederiz. Ve bu değerlendirme, f-string içinde satır içi olarak gerçekleşir.
import random nums = [random.choice(range(100)) for i in range(10)] for num in nums: print(f"{num} is {'even' if num%2==0 else 'odd'}") # sample output 0 is even 56 is even 6 is even 53 is odd 62 is even 7 is odd 8 is even 77 is odd 41 is odd 94 is evenÜçlü Operatör, Else Yan Tümcesini Gerektirir
if-else koşul deyimlerini kullanırken, else yan tümcesi isteğe bağlıdır. Bir örnek alalım. energy sıfıra eşit veya sıfırdan küçük bir değere düşerse game_over değişkeni True olarak ayarlanır.
Ancak energy sıfırdan büyükse game_over değişkeni hiçbir zaman başlatılmaz. Dolayısıyla, game_over değişkenine erişmeye çalışırsanız hatalarla karşılaşırsınız.
energy = 5 if energy <= 0: game_over = True print(f"Is the game over? {game_over}") Traceback (most recent call last): File "ternary_op.py", line 39, in <module> print(f"Is the game over? {game_over}") NameError: name 'game_over' is not defined Bunu düzeltmenin bir yolu, game_over başlangıçta False olarak ayarlamak ve enerji seviyesi sıfıra eşit veya sıfırdan küçükse bunu True olarak güncellemektir.
energy = 5 game_over = False if energy <= 0: game_over1 = True print(f"Is the game over? {game_over}") Ancak, yukarıdakine eşdeğer Python üçlü işleci kullanılırken, else yan tümcesi isteğe bağlı değildir. Üçlü işleç, condition False olduğunda ifadenin değerlendirilmesini gerektirir.
game_over = True if energy <= 0 else False Else kısmını kaldırarak yukarıdakini game_over = True if energy <= 0 olarak değiştirirseniz, aşağıda gösterildiği gibi bir sözdizimi hatasıyla karşılaşırsınız:
File "ternary_op.py", line 42 game_over = True if energy <= 0 ^ SyntaxError: invalid syntaxBirden Fazla Koşulu Kontrol Etmek İçin If-Else İfadelerini Kullanın
Örneği ele alalım: Bir dizi kodlama mülakat sorusundaki her sorunun ilişkili bir zorluk puanı vardır. Bu puana bağlı olarak, belirli bir soruya üç zorluk seviyesinden birini atarız: kolay, orta veya zor. Aşağıdakilere sahip olduğumuzu varsayalım:
| Puan | Zorluk seviyesi |
| 10'dan az | kolay |
| 10 ile 20 arasında | orta |
| 20'den büyük | sert |
Zorluk puanı göz önüne alındığında, gösterildiği gibi Python üçlü operatörünü kullanarak zorluk seviyesini elde edebilirsiniz:
score = 12 difficulty_level = "easy" if score < 10 else "hard" if score > 20 else "medium" print(difficulty_level) # mediumYukarıdaki kod bloğundaki üçlü operatör ifadesi aşağıdaki biçimdedir:
expression1 if condition1 else expression2 if condition2 else expression3Özlü olmasına rağmen, okuması ve ayrıştırması biraz zor. Aşağıdaki görüntü, bu durumda kontrol akışının nasıl gerçekleştiğini gösterir.

Aşağıdaki kod parçacığı, if-else deyimlerini kullanan eşdeğer bir uygulamayı göstermektedir. Görüldüğü gibi kontrol akışının anlaşılması çok daha kolay ve kod daha okunabilir.
if score < 10: difficulty_level="easy" elif score > 20: difficulty_level="hard" else: difficulty_level="medium" print(difficulty_level)Bu nedenle, birden fazla koşulunuz olduğunda, üçlü operatör yerine if-else bloklarını kullanmalısınız. Bu, kodun okunması ve anlaşılmasının kolay olmasını sağlar.
Ayrıca, koşulun doğru veya yanlış olmasına bağlı olarak birden fazla ifade yürütmeniz gerektiğinde, if-else ifadesini kullanmayı düşünmelisiniz.
Çözüm
İşte bu eğitimde öğrendiklerinizin bir özeti.
- Python'da, üçlü işleç şu sözdizimiyle kullanılabilir:
expression1 if condition else expression2. - Python demetlerini ve sözlüklerini kullanarak üçlü operatörün davranışını taklit edebilirsiniz.
- Üçlü işleç, if-else bloklarına daha özlü bir alternatif olsa da, kodun okunabilir olduğundan emin olmalısınız. Kodun okunabilirliğini artırmak için, özellikle birden çok koşulu zincirlemeniz gerektiğinde, üçlü operatör yerine if-else ifadelerini kullanabilirsiniz.
Ardından, Python'da eşit ve eşit olmayan işleçlerle ilgili eğiticiye göz atmayı öğrenin.
