Python Üçlü Operatörü Nasıl Kullanılır?

Yayınlanan: 2023-01-04

Bu 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-üçlü-operatör-1

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.

üçlü-op-ex1

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?

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.

üçlü operatör örneği

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.