python dersleri

Python Döngüler

Merhaba Arkadaşlar,

Mobilhanem.com da Python Dersleri serisinin bu dersinde Python da Döngüler konusunu işleyeceğim eğer bir önceki derse bakmadıysanız bu dersi iyi anlamanız için mutlaka buradan bakmanızı tavsiye ederim.

Python Döngüler :

Python da baya yol almamıza rağmen hala bizi kısıtlayan bazı problemler var mesela bir önceki dersimizde basit bir hesap giriş  uygulaması yapmıştık Kullanıcı adı ve parola doğru ise sisteme giriş yapıyordu eğer yanlış ise program kapanıyordu. Sisteme  tekrar giriş yapmamız için uygulamayı tekrar başlatmamız gerekiyordu. Daha basit bir örnek vermek gerekirse ekrana on defa “Python Dersleri” yazdırmak istersek on defa print() fonksiyonunu kullanmamız gerekiyor.

İşte biz bu dersimizde eğer kullanıcı , kullanıcı adı ve parolayı yanlış girerse kullanıcıya tekrar Kullanıcı adı ve parola girme imkanı verilsin veya sadece bir print() fonksiyonu ile ekrana on defa “Python Dersleri” yazısını yazdırma işlemi yapsın. işte bunu Pyhon döngüler(loop) ile yapacağız. İki farklı döngü çeşidi var ; while ve for ayrıca bu döngüler de bize lazım olan range() ve len() fonksiyonu ile break, continue ve in deyimlerine değineceğim.

While Döngüsü:

İngilizce bir kelime olan while Türkçe deki  karşılığı “-iken” dir. Python da yazdığımız kodları tekrar çalıştırmamızı sağlayan döngü çeşididir. Çalışma mantığı ise while döngüsü her defasında tekrarlanır , eğer koşul sağlıyorsa  tekrar döngüye girer , eğer sağlamıyorsa döngü sonlanır hemen bir örnekle gösterelim; 0 ile 10 arasındaki sayıları ekrana yazdıralım.

sayi=0

while sayi <=10:

    print(sayi)

    sayi = sayi+1

 

Kodları sırayla inceleyelim ilk satırda sayı adında bir değişken oluşturduk ve değerini sıfır yaptık ikinci satırda sayı değişkenin değeri 10’dan küçük ve eşit olduğu sürece döngü  tekrar etsin.

Üçüncü satırda ekrana sayı değişkenini yazdırma işlemini yaptık ve dördüncü satırda sayı değişkenini bir artırdık.

Program nasıl çalışacak;

İlk olarak sayı değişkeninin değeri sıfır bunu on ile karşılaştıracak eğer küçük ve eşitse döngü içine girecek ilk olarak sıfır değerini ekrana yazdıracak sonra sayı değişkenini bir arttıracak sayı değişkenin yeni değeri bir olacak ve tekrar döngünün başına gelecek. Yine aynı şekilde on değeri ile karşılaştıracak ekrana yeni değeri yazdıracak ve değeri bir artıracak , sayı değişkenin değeri on dan büyük olana kadar ve döngüyü sonlandıracak.

Şimdi bir önceki dersimizde basit olarak yaptığımız harf notu uygulamasını while döngüsü ile tekrar yapalım;

"""Harf notu Hesaplama Programı"""

while True:

    vize = int(input("Vize Notu :"))

    final = int(input("Final Notu :"))
    ortalama = (vize * 0.4) + (final * 0.6)  # vizenin %40 final %60 olarak alındı

    if (ortalama >= 85):

        print("Harf notunuz : AA0")

    elif (ortalama >= 70 and ortalama < 85):

        print("Harf notunuz : BA")

    elif (ortalama >= 60 and ortalama < 70):

        print("Harf notunuz : BB")

    elif (ortalama >= 45 and ortalama < 60):

        print("Harf notunuz : CB")

    elif (ortalama >= 0 and ortalama < 45):

        print("Harf notunuz : FF")

artık while döngüsü sayesinde üst üste hesaplama işlemi yapabiliyoruz.

For Döngüsü:

Python Döngüler de bir diğer döngümüz ise for döngüsüdür. While döngüsü ile aynı işlevi gören bu döngünün kullanımı biraz farklıdır ama işlevleri aynıdır. Hemen while döngüsü ile yaptığımız 10’a kadar sayıları ekrana yazdırma işlemini for döngüsü ile yapalım;

for sayı in range(0,11):

    print(sayı)

Burada da değişken sayı, koşul ise sayı değişkenin 0 ile 10 değerleri arasında olması. Farklı bir örnekle daha gösterelim.

for harf in “Python”:

    print(harf)

Python Döngüler konusunun her iki döngü çeşidini gördüğümüze göre. Hangisini kullanmamız daha iyi diye sorarsanız ikisinin birbirine göre üstünlüğü yok bir uygulamada while döngüsü daha iyiyken başka bir uygulamada for döngüsü daha avantajlı olabilir.

Range Fonksiyonu:

Türkçede karşılığı “aralık “olan bu fonksiyon sayı aralıklarını belirtir. Kullanımı şu şekildedir;

range(başlangıç değeri , bitiş değeri, değişim miktarı)

range(10) : sıfır ile 9 aralığındaki sayıları belirtir. Başlangıç değerini belirtmediğimiz için default olarak 0, değişim miktarını belirtmediğimiz için ise default olarak 1 değerini alır. Ve dikkat etmemiz gereken başka bir husus ise bitiş değerini dahil etmiyor.

range(2,20,2): iki ile 19 arasındaki sayıların ikili artış şeklindeki sayıları kapsar.

range(20,2,-2): 20 ile 2 arasındaki sayılların ikili azalma ile olan sayıları kapsar

in  İşleci:

Türkçe deki karşılığı “içinde” olan bu işlevi istenilen değer yada arlık içinde olup olmadığını sorgulama yapmamızı sağlayan işleçtir.

Örneğin

for sayı in range(20):

burada sayı değişkeni 0 ile 19 arasındaki bütün değerleri alır.

Len() Fonksiyonu:

Türkçe de ki anlamı “uzunluk” olan length kelimesinin kısaltması olan bu fonksiyon karakter dizileri, liste, demet gibi değişkenlerin uzunluğunu gösterir.

Örneğin

metin ="Python"

print(len(metin))

veya listelerde

liste =[2,36,”Python”,2,5]

print(len(liste))

Peki bu fonksiyon nerelerde kullanılır; mesela sosyal hesabınız işin şifre oluşturduğunuz zaman en az 6 karakter yada en fazla 12 karakter girmenizi ister bu tur işlemlerde yada elinizde olan bir verinin uzunluğunu öğrenmek için kullanabilirsiniz ama kesinlikle tamsayılar da kullanamazsınız bu fonksiyonu.

Break Deyimi:

Türkçe de ki anlamı bırakmak “terketmek” olan bu kelime Python da bir döngüyü sonlandırmak için kullanılır yorumlayıcı bunu gördüğü zaman programı sonlandırır diğer kodlar yorumlanmaz. Hemen bir örnekle gösterelim.

Şimdi bir önceki dersimizde yaptığımız hesaba giriş uygulamasını while() ile tekrar düzenleyelim bu sefer kullanıcıya üç defa giriş hakkı verilsin kullanıcı bilgileri yanlış girdiği zaman  giriş hakkı bir azaltıp tekrar kullanıcıdan bilgileri istesin.

kullanici_adim="Python"

parolam ="1234"

giris_hakki=3

while giris_hakki>0:
    giris_hakki -=1

    kullanici_adi = input("Kullanıcı Adınızı Girin :")

    parola = input("Parolayı Giriniz :")

    if kullanici_adi==kullanici_adim and parola== parolam:

        print("Sisteme başarılı bir şekilde giriş yaptınız.")

    else:

        print("Kullanıcı bilgileri yanlış tekrar deneyin!")

 

Kullanıcı adı ve parolayı doğru girdiğimizde yine bizden kullanıcı adı ve parolayı istiyor ama bizim istediğimiz bilgileri doğru girdiğimiz zaman giriş yapalım ve işlem sonlansın bunun için hemen break deyimini kullanalım;

kullanici_adim="Python"

parolam ="1234"

giris_hakki=3

while giris_hakki>0:
    giris_hakki -=1
    kullanici_adi = input("Kullanıcı Adınızı Girin :")

    parola = input("Parolayı Giriniz :")

    if kullanici_adi==kullanici_adim and parola== parolam:

        print("Sisteme başarılı bir şekilde giriş yaptınız.")

        break

    else:

        print("Kullanıcı bilgileri yanlış tekrar deneyin!")

 

Continue Deyimi:

Türkçe deki anlamı “devam” etmek olan bu deyim yorumlayıcı gördüğü zaman diğer kodları es geçer ve döngünün başına gelir hemen bir örnekle gösterelim;

for sayi in range(20):

    if sayi%2==0:

        continue


    else:

        print(sayi)

Burada sayı değişkeni 2 ye tam bölüyorsa yorumlayıcı continue  deyimi sayesinde   sayı değişenin 2 ye tam bölündüğü koşulları es geçip döngünün başına gelecektir.

Mobilhanem.com da Python Dersleri serisinin bu dersinde Python Döngüleri öğrendik bir sonraki dersimiz Liste ve Listenin Metotları konusunu işleyeceğim. Anlamadığınız , eksik yada hatalı gördüğünüz olursa çekinmeden ulaşabilirsiniz size yardım etmekten mutluluk duyarım bir sonraki yazıda görüşmek üzere.

Bütün Python derslerine buradan ulaşabilirsiniz.

Örnek uygulamalar

 

 

 

 

 

362

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

32 Yorum

  • Merhaba öncelikle emeğiniz için teşekkür ederim.

    Birşey sormak istiyorum, yukarıda kullanıcı adı 3 defa hatalı girildiğinde 4. ye girilmemesi gerekmiyor mu? Ben kendim yazdığımda da sizin kodunuzu direk kopyaladığımda da sınırsız sayıda hatalı giriş denemeye izin veriyor.

    Acaba kodda bir hata mı var, kodda kaç kez giriş yapıldığını saymaya yarayan bir parça mı eksik? Çözemedim. (Spyder 3.7 kullanıyorum)

    İlginiz için teşekkür ederim.

    • Merhaba Oğuz Bey,

      Kod da while döngüsü için sonlandırma ifadesi bırakmayı unutmuşum kodu düzenledim. İyi çalışmalar 🙂

  • print(“NOT ORTALAMA HESAPLAMA”)

    while (True):
    vıze = int(input(“vize notunuzu girin:”))
    quiz = int(input(“quiz notunuzu giriniz:”))
    if vıze100:
    print(“hatalı işlem vize notunuz 100 den büyük olamaz!!”)
    elif quiz100:
    print(“hatalı işlem quiz notunuz 100 den büyük olamaz !!!”)

    vızenotu =vıze *30 / 100
    print(“vize ortalamanız:”, vızenotu)
    quiznotu = quiz * 10 / 100
    print(“quiz ortamalanız:”, quiznotu)

    ıstenılen = 60 – (vızenotu + quiznotu)
    print(“gereken not ortaması”, ıstenılen)
    x = ıstenılen * 100 / 60
    print(“gereken not”, x)

    ben burada hatalı işlem (yani – değer veya 100 ün üstünde bir sayı girdiğimde) hata verip döngüyü başa almasını istiyorum. bunu nasıl yapabilirim. Umarım anlatabilmişimdir.

    • Demek istediğiniz bu galiba
      print(“NOT ORTALAMA HESAPLAMA”)

      while True:
      vize = int(input(“vize notunuzu girin:”))
      if vize>=0 and vize= 0 and quiz <=100:
      quiznotu = quiz * 10 / 100
      print("Quiz ortamalanız:", quiznotu)

      istenilen = 60 – (vizenotu + quiznotu)
      print("Gereken not ortaması", istenilen)
      x = istenilen * 100 / 60
      print("Gereken not", x)

      else:
      print("hatalı işlem quiz notunuz 0 dan küçük ve 100 den büyük olamaz !!!")

      else:
      print("hatalı işlem vize notunuz 0 dan küçük ve 100 den büyük olamaz!!")

      • Buraya yazdığınız kodlar pek okunaklı olmuyor soru-cevap kısmına yazarsanız daha anlaşılır olur ve daha çabuk cevaplanır kolay gelsin 🙂

  • Sorumu hızlı cevaplarsanız sevinirim.
    Girilen ifadedeki sesli harflerin sayısını bulup ekrana yazan program. (For döngüsü kullanılacak. Python)

    • ifade=input(“lütfen bir ifade giriniz: “)
      k=len(ifade)
      sesliharf=0
      sesliharfler=[“a”,”e”,”ı”,”i”,”u”,”ü”,”o”,”ö”]
      m=len(sesliharfler)
      for i in range(k):
      for j in range(m):
      if ifade[i]==sesliharfler[j]:
      sesliharf+=1

      print(“toplam sesli harf sayısı: “,sesliharf)

  • kullanici adini ve sifreyi dogru yazana kadar kullanicidan bilgi girmesini istiyorum. nasil yapabilirim. tesekkurler

    • kullanici_adim = “Python”

      parolam = “1234”

      while True:

      kullanici_adi = input(“Kullanıcı Adınızı Girin :”)

      parola = input(“Parolayı Giriniz :”)

      if kullanici_adi == kullanici_adim and parola == parolam:
      print(“Sisteme başarılı bir şekilde giriş yaptınız.”)
      break

      else:

      print(“Kullanıcı bilgileri yanlış tekrar deneyin!”)

  • Abi ben verilen yanıta göre döngüye devam etsin ya da etmesin istiyom.
    Yardımcı olabilir misin?

    • if fonksiyonu ile yapabilirsiniz şu şekilde

      kullanıcı_adı = “naim”

      while true :

      a = input(“kullanıcı adı giriniz :”)
      if a == “halterci”
      break

      yani kullanıcı adı halterci girildiğinde döngü bitecek ama halterci dışındaki cevaplarda döngü devam edicek. Bunu farklı varyasyonlara çekebilirsiniz artık o da sizin yeteneğiniz 🙂

  • Ya abi hoca bize dedi ki pow ve ** kullanmadan, döngülerle kullanıcıdan alınan x ve y değerlerinin üssünü hesaplayın dedi. Bir türlü yapamadım. Hagi döngü kullanılacak falan. Bazı kodlar buldum ama C# c++ için falan onlarda. Acemi olduğum için python da çevirmeyi denedim ama olmadı. Nasıl yapabilirim ? 🙁

    • Merhaba

      sayi = int(input('Sayi Girin :'))
      ust = int(input('Ust Girin :'))
      sonuc=1
      sayac=1
      while sayac<=ust:
      
          sonuc=sonuc*sayi
          sayac+=1
      print('Sonuc :',sonuc)
      

      kolay gelsin 🙂

  • kullanıcının girdiği 10 basamaklı bir sayıyı alıp yine kullanıcının istegi göre rakamlarının toplamını ve çarpımını veren program nedir
    pythonda nerden nasıl başlasyacağımı bilemedim

    • Emeğinize sağlık aşırı güzel olmuş . Kullanıcının girdiği 10 basamaklı bir sayıyı alıp yine kullanıcının istegi göre rakamlarının toplamını ve çarpımını veren program nasıl yapılacağını bilmiyorum anlamdım da yardımcı olur musunuz

  • ilk öncelikle merhaba 2-3 ker yazdım Ama aşırı önemli yardımcı olur musunuz
    Kullanıcının girdiği 10 basamaklı bir sayıyı alıp yine kullanıcının istegi göre rakamlarının toplamını ve çarpımını veren program nedir
    bunu nasıl yapabilirim
    ,

    • merhaba neslihan biraz gec cevap verdim ama:)

      print("""
      1.) Rakamlari topla
      2.) Rakamlari carp
      3.) Cikmak icin herhangi bir tusa bas
      """)
      
      while True:
          sayi = int(input('10 basamakli bir sayi girin :'))
          select = input('Bir secim yapin :')
      
          if select =='1':
              toplam = 0
      
              for i in str(sayi):
                  toplam += int(i)
              print(toplam)
          elif select =='2':
              carpim = 1
              for i in str(sayi):
                  carpim *= int(i)
              print(carpim)
          else:
              exit()
      
      
  • İnput komutu kullanılarak kullanıcıdan klavye yoluyla karakter dizisi
    formunda alacağı ad-soyad bilgisini yine input komutu ile kullanıcıdan temin
    edeceği pozitif bir tamsayı adedince while döngüsü sayesinde fpritnf ile ekrana alt
    alta basacak bir Matlab programı yazınız.

  • while döngüsünün 2 öreginide yaptım fakat
    multiple statements found while compiling a single statement!

    böyle bir hata veriyor en kısa zamanda yardımcı olursanız sevinirim.

  • Python adam asmaca oyunu yapıyorum fakat kullandığım harfi tekrar kullanıcıya sunmak istemiyorum nasıl yapabilirim

  • selamun aleykum
    kullanici_adim=”Python”

    parolam =”1234″

    giris_hakki=3

    while giris_hakki>0:
    giris_hakki -=1
        kullanici_adi = input(“Kullanıcı Adınızı Girin :”)

        parola = input(“Parolayı Giriniz :”)

        if kullanici_adi==kullanici_adim and parola== parolam:

            print(“Sisteme başarılı bir şekilde giriş yaptınız.”)

            break

        else:

            print(“Kullanıcı bilgileri yanlış tekrar deneyin!”)

    kodlarını aynı şekilde kopyala yapıştır yapıyorum ama kullanıcı adı ve şifreyi doğru girdiğim halde kullanıcı “kullanıcı bilgileri yanlış” diyor

  • Ya yaklaşık 1 aydır kafamı kurcalayan bir soruyu sorma istiyorum artık.Biz şimdi for ile 5 tane aynı soruyu sorup alınan her cevabı ayrı ayrı değişkenlere nasıl atarız. Biraz karışık oldu hemen kod ile göstereyim.

    for a in range(1,6):
    b= int(input(“Sayıyı giriniz:”))

    işte ben burda o b yerine her soruda farklı değişkene atamak istiyorum yoksa olmuyo mu?

  • Teşekkürler hocam. Bir sorum olacaktı. İnternette okuduğuma göre ‘while True’ ile ‘while’ aynı şeymiş. Amma velakin kodlarda denedigimde kodum çalışmadı. Rica etsem aradakı farkı açıklayabilir misiniz?

  • Hocam elinize sağlık sayfanızı çok beğendim.
    Bir sorum olacaktı

    kullanici_adim=”Python”

    parolam =”1234″

    giris_hakki=3

    while giris_hakki>0:
    giris_hakki -=1

    kullanici_adi = input(“Kullanıcı Adınızı Girin :”)

    parola = input(“Parolayı Giriniz :”)

    if kullanici_adi==kullanici_adim and parola== parolam:

    print(“Sisteme başarılı bir şekilde giriş yaptınız.”)

    else:

    print(“Kullanıcı bilgileri yanlış tekrar deneyin!”)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    kullanici_adim=”Python”

    parolam =”1234″

    giris_hakki=3

    while giris_hakki>0:
    giris_hakki -=1

    Burds giriş hakkını döngünün ilk başında düşürmüşsünüz.
    Döngünün başında yada sonun da olması fark eder mi
    Özel durumu var mı

  • While döngüsünü kullanarak
    Okula götürülecek beş kitabı kullanıcıdan alıp
    Liste halinde ekrana yazdıran programın kodlarını istedi hoca
    While,input,print,list,append komutlarını kullanarak yapılması gerekiyormuş bilen varmı

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?