Python’da if ifadeleriyle koşullu dallar nasıl yazılır

Python’da koşullu dallanmayı if ifadeleriyle açıklayın.

  • if deyimlerinin temelleri (if, elif, else)
  • Karşılaştırma operatörleri vb. ile koşulları belirtin.
  • Koşulları numaraya, listeye vb. göre belirtin.
  • Mantıksal işleçlerle birden çok koşul veya olumsuzluk belirtin (ve, veya değil)
  • Yeni satırlarda ve birden çok satırda koşullu ifadeler

Bir satırda koşullu bir dalı tanımlayan bir üçlü operatör de vardır. Aşağıdaki makaleye bakın.

if deyimlerinin temelleri (if, elif, else)

if ifadesinin temel biçimi aşağıdaki gibidir.

if Conditional expression 1:
    `Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
    `Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
    `Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
    `Processing when all conditionals are false.`

“elif”, C ve diğer dillerde “else if”ye karşılık gelir ve herhangi bir sayıda “elif” olabilir.

Yalnızca bir koşullu ifade varsa veya false gerekli olmadığında işleme varsa, “elif” ve “else” blokları atlanabilir.

Karşılaştırma operatörleri vb. ile koşulları belirtin.

Koşul, bir karşılaştırma operatörü gibi bir bool türü (true, false) döndüren bir işlemle belirtin.

Python karşılaştırma operatörleri aşağıdaki gibidir

Şebekesonuç
x < yx, y’den küçükse doğru
x <= yx, y’den küçük veya ona eşitse doğru
x > yx, y’den büyükse doğrudur
x >= yx, y’den büyük veya ona eşitse doğrudur
x == yx ve y değerleri eşitse doğru
x != yx ve y değerleri eşit değilse doğrux is yx ve y aynı nesneyse doğrux is not yx ve y aynı nesne değilse doğrux in yx, y’nin içindeyse doğrux not in yx, y’de yer almıyorsa doğrudur

Misal. Kolaylık sağlamak için def deyimi ile bir fonksiyon olarak tanımlanır.

def if_test(num):
    if num > 100:
        print('100 < num')
    elif num > 50:
        print('50 < num <= 100')
    elif num > 0:
        print('0 < num <= 50')
    elif num == 0:
        print('num == 0')
    else:
        print('num < 0')

if_test(1000)
# 100 < num

if_test(70)
# 50 < num <= 100

if_test(0)
# num == 0

if_test(-100)
# num < 0

Aşağıdakiler Python’a özgü bir şekilde yazılabilir. Ayrıntılar için aşağıdaki makaleye bakın.
a < x < b

def if_test2(num):
    if 50 < num < 100:
        print('50 < num < 100')
    else:
        print('num <= 50 or num >= 100')

if_test2(70)
# 50 < num < 100

if_test2(0)
# num <= 50 or num >= 100
  • #ERROR!
  • !=

Yukarıdakiler, değerlerin bir karşılaştırmasıdır; nesne kimliklerini karşılaştırmak için aşağıdakileri kullanın

  • is
  • is not

Örneğin, bir tamsayı ile bir kayan noktalı sayıyı karşılaştırırken, değerler eşdeğerse “==” true döndürür, ancak “is”, farklı nesneler oldukları için false döndürür.

i = 10
print(type(i))
# <class 'int'>

f = 10.0
print(type(f))
# <class 'float'>

print(i == f)
# True

print(i is f)
# False

Bir listenin mi yoksa bir dizenin belirli bir öğe (karakter) içerip içermediği koşulunu yapmak da mümkündür.

  • in:Dahil etmek
  • not in:içermiyor
def if_test_in(s):
    if 'a' in s:
        print('a is in string')
    else:
        print('a is NOT in string')

if_test_in('apple')
# a is in string

if_test_in('melon')
# a is NOT in string

Koşulları numaraya, listeye vb. göre belirtin.

Bir if ifadesinin koşullu ifadesi bir sayı, liste veya bool (doğru, yanlış) türünde olmayan başka bir nesne olabilir.

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

Python if ifadesinin koşullu ifadesinde, aşağıdaki nesneler yanlış olarak kabul edilir.

Sıfırı, boş dizileri, listeleri vb. temsil eden sayılar yanlış olarak kabul edilir; diğerleri doğru kabul edilir.

Nesnenin nasıl yargılandığı bool() ile kontrol edilebilir.

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Bu, örneğin liste boş olduğunda işlemi basitçe yazmak için kullanılabilir.

def if_test_list(l):
    if l:
        print('list is NOT empty')
    else:
        print('list is empty')

if_test_list([0, 1, 2])
# list is NOT empty

if_test_list([])
# list is empty

Yanlış’ dizesinin de doğru olacağını unutmayın, çünkü yukarıdaki örnekte gösterildiği gibi, dizede boş olmayan herhangi bir dize doğru olacaktır.’ ‘True’ veya ‘False’ gibi belirli bir dizgiyi 1,0’a dönüştürmek için distutils.util modülünde strtobool()’u kullanın.

Mantıksal işleçlerle birden çok koşul veya olumsuzluk belirtin (ve, veya değil)

Mantıksal işleçler (ve, veya değil) mantıksal bağlaç, mantıksal ayrılma ve birden çok koşulun olumsuzluğunu işlemek için kullanılabilir.

Şebeke(Result (bir if ifadesinin koşullu ifadesinde)
x and yhem x hem de y doğruysa doğrudur
x or yx veya y doğruysa doğrudur
not xx doğruysa yanlış, x yanlışsa doğru
def if_test_and_not(num):
    if num >= 0 and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_not(5)
# num is positive odd

if_test_and_not(10)
# num is NOT positive odd

if_test_and_not(-10)
# num is NOT positive odd

Aslında, “x ve y” ve “x veya y” Doğru veya Yanlış değil, x veya y’yi döndürür. İf ifadelerinde koşullu ifadelerde kullanıldığı sürece, True veya False olarak değerlendirdikleri için endişelenmenize gerek yoktur. Ayrıntılar için aşağıdaki makaleye bakın.

ve ve/veya birden fazla kez kullanmak mümkündür.

def if_test_and_not_or(num):
    if num >= 0 and not num % 2 == 0 or num == -10:
        print('num is positive odd or -10')
    else:
        print('num is NOT positive odd or -10')

if_test_and_not_or(5)
# num is positive odd or -10

if_test_and_not_or(10)
# num is NOT positive odd or -10

if_test_and_not_or(-10)
# num is positive odd or -10

Yeni satırlarda ve birden çok satırda koşullu ifadeler

Birden çok koşul ifadesi “ve” veya “veya” ile bağlanarak kullanıldığında ve her satır uzarsa, bazen koşullu ifadeyi kesip birden çok satıra yazmak gerekir.

Bir ters eğik çizgi kullanılarak veya tüm satırı parantez içine alarak satır sonu yapılabilir.

def if_test_and_backslash(num):
    if num >= 0 \
       and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_backslash(5)
# num is positive odd

def if_test_and_brackets(num):
    if (num >= 0
        and not num % 2 == 0):
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_brackets(5)
# num is positive odd

Bir satırı istediğiniz kadar kesmek için ters eğik çizgi kullanabilirsiniz. Aynı şekilde, bir satırı parantez içinde istediğiniz sayıda kesebilirsiniz. Girinti sınırı yoktur.

Bunun yalnızca if ifadelerinde değil, Python kodunun herhangi bir yerinde kullanılabilecek bir teknik olduğunu unutmayın.

Copied title and URL