Python "if" ifadesi çalışmıyor

Çift eşittir kullanma şartı var ancak bu kısımda elif kullanması zorunlu değil. Elif kullanımının gerektiği alan alt alta sıralanmış olan if koşullarından birinin tutarlı olması halinde diğerleri de tutarlı olsa dahi çalışmamasını sağlamak içindir, bu örnekte bu durum sağlanmış çünkü verilen ay girdisi ocak olursa sadece bir tane if koşulu ile tutarlı olacak, bir diğer if koşulu ile tutarlı olmamış olacak. Yine de elif kullanımını öğrenmesi gerek ancak burada ne işe yaradığını bilmeden sadece elif kullan dendiği için kullanması da doğru olmaz.

Örnek verecek olursak
Python:
ay = "ocak"
gun = "salı"

if ay == "ocak" and gun == "salı":
    print('Ocak ayında bir salı günündeyiz.')

if ay == "ocak":
    print('Ocak ayındayız.')

Bu kodu çalıştırırsanız aldığınız çıktı şöyle olacaktır.
Kod:
Ocak ayında bir salı günündeyiz.
Ocak ayındayız.

Ancak biz zaten Ocak ayında olduğumuzu söyledik, ikinci defa söylemesini istemiyorsak birinci koşul tutarlı olduğunda ikinci koşulun çalışmaması için elif kullanabiliriz.
Python:
ay = "ocak"
gun = "salı"

if ay == "ocak" and gun == "salı":
    print('Ocak ayında bir salı günündeyiz.')
elif ay == "ocak":
    print('Ocak ayındayız.')
Kod bu şekilde olduğunda birinci if koşulu tutarlı olduğu için ikinci if koşulu (elif ile belirtilen) tutarlı olsa dahi çalışmayacaktır. Elifin kullanımının ne olduğunu şimdi öğrenmiş oldunuz.
Teşekkür ederim. Kullanacağım yerler mutlaka olacaktır fakat burada yapmaya çalıştığım şey unix timestamp kodu oluşturmaktı. Bunun için ay değerinin ingilizce kısaltma şeklinde olması gerekiyormuş. Ben de girdileri türkçe yazıp timestamp oluşturmaya uygun olması amacıyla ingilizce kısaltma haline çevirmeye çalıştım. Yani bütün girdiler farklı ve diğer girdilerle etkileşim yok. Tekrar teşekkür ederim. Mutlaka başka projelerimde kullanacağım. İyi forumlar!
 
Çift eşittir kullanma şartı var ancak bu kısımda Elif kullanması zorunlu değil. Elif kullanımının gerektiği alan alt alta sıralanmış olan if koşullarından birinin tutarlı olması halinde diğerleri de tutarlı olsa dahi çalışmamasını sağlamak içindir. Bu örnekte bu durum sağlanmış çünkü verilen ay girdisi ocak olursa sadece bir tane if koşulu ile tutarlı olacak, bir diğer if koşulu ile tutarlı olmamış olacak. Yine de Elif kullanımını öğrenmesi gerek ancak burada ne işe yaradığını bilmeden sadece Elif kullan dendiği için kullanması da doğru olmaz.

Örnek verecek olursak.
Python:
ay = "ocak"
gun = "salı"

if ay == "ocak" and gun == "salı":
 print('Ocak ayında bir salı günündeyiz.')

if ay == "ocak":
 print('Ocak ayındayız.')

Bu kodu çalıştırırsanız aldığınız çıktı şöyle olacaktır.
Kod:
Ocak ayında bir salı günündeyiz.
Ocak ayındayız.

Ancak biz zaten ocak ayında olduğumuzu söyledik, ikinci defa söylemesini istemiyorsak birinci koşul tutarlı olduğunda ikinci koşulun çalışmaması için Elif kullanabiliriz.
Python:
ay = "ocak"
gun = "salı"

if ay == "ocak" and gun == "salı":
 print('Ocak ayında bir salı günündeyiz.')
elif ay == "ocak":
 print('Ocak ayındayız.')
Kod bu şekilde olduğunda birinci if koşulu tutarlı olduğu için ikinci if koşulu (Elif ile belirtilen) tutarlı olsa dahi çalışmayacaktır. Elif'in kullanımının ne olduğunu şimdi öğrenmiş oldunuz.

Alt alta 12 if i dizdi, 1. if true dondu, diger 11 tanesini yine kontrol eder. Bu da bosa islem demektir, 1. if true ise diger 11 tanesine bakmamasi gerekiyor. Best practice budur, calissin yeter mantigini lutfen birakin onemli olan calismasi degil en iyi sekilde calismasidir. En sondaki else in sebebide olur da bir hata olur da hiçbir if/elife girmezse oraya bir mesaj yazar onu basar.
 
Alt alta 12 if i dizdi, 1. if true dondu, diger 11 tanesini yine kontrol eder. Bu da bosa islem demektir, 1. if true ise diger 11 tanesine bakmamasi gerekiyor. Best practice budur, calissin yeter mantigini lutfen birakin onemli olan calismasi degil en iyi sekilde calismasidir. En sondaki else in sebebide olur da bir hata olur da hiçbir if/elife girmezse oraya bir mesaj yazar onu basar.
Nedenini söylemeden sıralı if komutlarını bu şekilde kullanma dediğiniz için açıkladım. If ile elif kullanımı arasında hız farkı olacağı doğrudur ancak bu farklardan bahsederken nanosaniye seviyesinde farklardan bahsediyoruz. En iyi uygulama konusunda diyeceğim bir şey yok, bende gerekmese bile else if kullanmayı seçiyorum çünkü. En sonda else kullanılmasınada bir sözüm yok.
 
böyle de yapabilirsin.
Python:
months = { "ocak":"january", "şubat":"february", "mart":"march" }
print( months["ocak"])
 
Nedenini söylemeden sıralı if komutlarını bu şekilde kullanma dediğiniz için açıkladım. If ile Elif kullanımı arasında hız farkı olacağı doğrudur ancak bu farklardan bahsederken nanosaniye seviyesinde farklardan bahsediyoruz. En iyi uygulama konusunda diyeceğim bir şey yok, bende gerekmese bile else if kullanmayı seçiyorum çünkü. En sonda else kullanılmasınada bir sözüm yok.

Bunu açıklamaya gerke bile duymadım çünkü gayet basit bir olay, sebebini tahmin edemese bile bu şekilde kullanmaya alışsın.
 

Technopat Haberler

Yeni konular

Geri
Yukarı