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 <= 0
ise,game_over
True
olur. - 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 expression2
Yukarı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) # True
Baş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 > 7
ise indirim yüzdesi,discount_perc
20'dir. - Aksi takdirde,
discount_perc
5'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>)
,True
döndürür.
>>> bool(0) False >>> bool(1) True >>> bool(-1) True >>> bool(10) True
Benzer şekilde, Boolean'ı tamsayılara dönüştürürken aşağıdakilere sahibiz:
>>> int(True) 1 >>> int(False) 0
Tip dökümü ve indekslemeyi bir araya getirerek aşağıdakileri yapabiliriz:
- Demetteki 0 dizinindeki öğe:
condition
False
olduğunda kullanılacak değer. - Demetteki 1. dizindeki öğe:
condition
True
olduğ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 syntax
Birden 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) # medium
Yukarı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.