Şimdi Ara

while döngüsü

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
25
Cevap
0
Favori
634
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • herkese merhaba while döngüsüne yeni geçtim ama enteresan bir sorun oldu video da altda verdiğim bir kod var bu kod bir den 100 kadar sayıları basıp 100 gelince döngüden çıkacak ama bende döngüden çıkmadı 1 den başladı 10 bin 20 bin diye gitmeye başladı videodaki kodun yanısını yazmama rağmen bende böyle oldu sorun ne sizce
    kulladnığım editör visual studio code
    x = 0

    while 0 < 100:
    print(x)
    x = x + 1

    print("bitdi")



    < Bu mesaj bu kişi tarafından değiştirildi layk5t -- 23 Ağustos 2020; 20:47:29 >



  • while 0 < 100: demişsin.Bu şart her zaman sağladığı için sonsuz döngüye giriyor.x değerinin 100 den küçük olup olmadığını kontrol etmelisin

    while x < 100: yazmalısın yani
  • chnkyn kullanıcısına yanıt
    peki teşekkürler
  • chnkyn kullanıcısına yanıt
    merhaba size şöyle bir soru sormak istiyorum print ve x += 1 yerlarini değiştirdiğimiz zaman döngü farklı çalışıyor atığım kodda 0 başlayıp 99 kadar gidiyor ama yer değişikligi olunca 1 den başlayıp 100 kadar gidiyor bunun nedeni nedir


    name = ""

    while not name:
    name = input("isminizi giriniz: ")
    print(f"merhaba {name} ")


    bu kodu tam anlamıyla anlayamadım burayı açıklarmısnız



    < Bu mesaj bu kişi tarafından değiştirildi layk5t -- 23 Ağustos 2020; 22:42:36 >
  • 0 dan basliyor.
    x+=1 satiri x in degerini bir arttirir.Print ifadesini nerede cagirirsan o anki x degeri neyse onu yazdirir.once arttirip sonra yazarsan haliyle 1 den baslar

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Pythonu tam hatirlamiyorum ama
    While name: ile kastedilen name degiskeni null ve boş degilse demek.yani bir deger girildiyse.

    Ama kodta while not name:

    yani bir deger girilmediyse(bir deger girilene kadar) kullanicidan girdi alir ve degiskene atar.sonra da yazdirir ve while dongusu kirilir.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • chnkyn kullanıcısına yanıt
    tam anlayamadım ama birazdaha ayrıntılı anlatayım size
    x = 0 

    while x < 100:
    print(x)
    x = x + 1

    print("bitdi")


    benim burda anladığım x küçüktür 100 den bu koşul sağlanınca ekrana sayıları basıtırp ondan sonra teker teker artırıyor
    sonuç 0 dan başlayıp 99 bitiyor şimdide şöyle bir değişklik yapalım

    x = 0 

    while x < 100:
    x = x + 1
    print(x)

    print("bitdi")


    burdada sonuç 1 den başlayıp 100 den bitmesi kafa karıştıran nokta bu oldu



    < Bu mesaj bu kişi tarafından değiştirildi layk5t -- 23 Ağustos 2020; 22:53:47 >
  • X=99 olsun

    Usttekinde x’i ekrana bastin sonra 1 arttirdin.yeni deger =100 oldugundan tekrar donguye girmez en son 99 yazilmis oldu

    Alttakinde ise;
    X’i 1 arttirdin =100 oldu.Sonra ekrana yazdin.tekrar while dongu kosuluna gidince 100<100 false doneceginden calismaz.en son 100 yazdirmis olduk.

    Print in yeri onemli burada

    < Bu ileti mini sürüm kullanılarak atıldı >
  • anladığım kadarıyla döngü başlayınca x bir artıyor sonra x += 1 den dolayı x birkere dahamı artıyor zaten altdaki kod 2 den başlayıp 101 den bitiyor şimdi yazdırmak istediğin ifade yani print foksuyonu her zaman üste ve artırmak istediğin ifade herzaman döngünün en altında olmak mı zorunda for döngüsünde sıra pek önemi yok gibi ama whlie döngüsünde işler degişiyor



    < Bu mesaj bu kişi tarafından değiştirildi layk5t -- 24 Ağustos 2020; 15:46:1 >
  • While x <=100: şeklinde yazarsan 1den 100 e kadar 100 dahil yazması lazım.



    < Bu mesaj bu kişi tarafından değiştirildi a.g.r.e.s.i.f -- 25 Ağustos 2020; 1:2:59 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • X=0
    While x < 100:
    Print(x)
    x=x+1
    Print ("bitdi")
    bu kodda x=0 ile işleme başlıyoruz x değeri 0 ve döngüye giriyoruz print(x)in değeri 0 arttırma işlemi bir alt satırda olduğu için.

    X=0
    While x <=100: ----> 100 den küçük ve eşit olduğu sürece
    x=x+1 veya ----> x+=1
    Print(x)
    Print("bitdi ")

    bende yeni başladım python istihza yazbel den takip ediyorum.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • for döngüsünü anlaman için sana c# tan örnek vereyim.python da bu yapılamıyor sanırım.

    c# ta for döngüsü :

    for(baslangic ; kosul ; arttirma){
    kodlar
    }

    c# ta for döngü yapısı byledir.
    baslangıc : döngünün başlangıcı.örneğin int i=0 ile sıfırdan başlar.
    kosul : her adımda kontrol edilecek koşul. örneğin i<5 ile i 5'ten küçük olduğu sürece
    arttirma: döngülerin sonlanabilir olması içiin her adımda kosulu bitirecek arttırma veya azaltma işlemi yapılmalı.örneğin i++ ile her döngüde i yi 1 arttır.

    bunlara istinaden.

    for(int i=0; i<5; i++)
    Console.writeline(i);
    }

    çıktı şöyle olur:
    0
    1
    2
    3
    4

    c# ta breakpoint ile takip edersen işlem şu şekilde olur:
    1- önce i değişkeni oluşturur ve 0 değerini atar(bu işlem daha sonra hiç yapılmaz)
    2- i nin değerinin 5 ten küçük olup olmadığına bakılır.Bu işlem her döngüde kontrol edilir.
    3- (önemli nokta burası) Console.writeline(i) yani for içine yazdığın kodlar çalıştırılır.
    4- arttırma işlemi yapılır ve 2.işleme gidilip döngü tekrar edilir.

    3. ve 4. işlemlerin sırası önemli olduğu için yukarıda vurguladım.önce kodlar yazılır sonra arttırma yapılır.python for döngüsü de aynen böyle çalışıyor olmalı.

    c# ta baslangıc,kosul ve arttırma işlemlerini döngü başlangıcında tanımlamak zorunda değilsin.kodların içinde de yapabilirsin.
    örn:

    for(int i=0; i<5;)
    {
    i++; //i yi 1 arttırdık
    console.writeline(i);
    }

    bu örnekte arttırma işlemi normalde 4.adım iken burada 3.adıma almış olduk.yani 3. ve 4. adımların yerini değiştirdik.

    Bunun çıktısı
    1
    2
    3
    4
    5

    yukardakinden farklı olur.python normal c# for döngüsü mantığıyla çalıştığından printin nerede yazıldığının önemi yok.çünkü arttırma işlemini en son yapıyor.


    örneğe ilişkin ise 2'den başlayıp 101 de bitiyor demişsin.
    Çıktı : 1,2,3,.....99,100
    şeklinde olacak.yani 1den başlayıp 100de bitiyor




  • Tekrardan merhaba uygulama soruları var hoca sağolsun eksik bilgi vermek adet edinmiş benim uygulama soruma yardımcı olcak bir uygulama bu ama analmakda az zorlandım ama benim anlama şeklim while döngüsünün mantığına aykırı buraya bırakıyorum
    liste = [1,2,3,4,5]

    a = 0

    while (a < len(liste)):
    print("Indeks:",a,"Eleman:",liste[a])
    a +=1

    şimdı burda print satırında a elemenını listeden a değişkenini indexlemiş bu kısım biraz kafa karıştırdı bu anlarsam uygulama sorusunuda yapabilicem
  • dizilerin elemanlarına index numaralarıyla erişilir.
    liste=[1,2,3,4,5]

    liste[0] = 1 # liste dizisinde 0 index numaralı eleman.dizilerde index numarası sıfırdan başlar.
    liste[1] = 2
    liste[2] = 3
    liste[3] = 4
    liste[4] = 5

    dizilerin elemanlarına index numaralarıyla erişildiğini anladıysan eğer;

    a=0 için => liste[0] yazmak ile liste[a] yazmanın aynı şey olduğunu bilirsin.Aynı şekilde ;
    a=1 için => liste[1] = liste[a]
    a=2 için => liste[2] = liste[a]
    a=3 için => liste[3] = liste[a]
    a=4 için => liste[4] = liste[a]

    a değişkeni de while içinde her seferinde 1 arttırıldığı için, listenin tüm elemanlarını yazdırmış oluyorsun.
  • 5 tanesinde birini yapmışdım ama yarım yamalak anladım hatda yaptığım sorunun bir tanesini buraya atıyorum

    a = 0

    while (a < len(sayılar)):
    print(sayılar[a])
    a += 1

    o soruyu mantığını tam anlamdığım için böyle bişey yaptım while döngüsüyle yaptım sonuç bu çıkdı güzelcede çalışıyor diğer sorularda yapmaya çalışacam
  • Kodlamada amaç en kısa kod ve en kısa algoritma ile sonuca gitmek olmalı her zaman.

    Sen sayıları ekrana yazdırmak için 3 satır yazıyorsun ama tek satırda da hallolur.

    print( [i for i in sayilar] )
  • tekrardan merhaba yapabildiğim sorular bukadar yapamadıkalrımda oldu cevabını vermek yerne ip ucu isteyecem sizden
    sayılar = [1,3,5,7,9,12,19,21]

    # 1: sayılar listesini while döngüsü ile ekrana yazdırın
    """
    a = 0

    while (a < len(sayılar)):
    print(sayılar[a])
    a += 1
    """

    # 2: başlangıç ve bitiş değerleirni kulanıcıdan alıp tüm
    # tek sayıları ekrana yazdırın
    """


    """

    # 3: 1 ve 100 arasındaki yazıları azalan şekilde ekrana yazdırın
    """
    b = 100
    while 0 <= b:
    print(b)
    b -= 1
    """
    # 4: kullanıcıdan alacağınız 5 sayıyı ekrana sıralı bir şekilde
    # yazdırın

    """
    gırılen_sayılar = [int(input("sayı1 giriniz: ")),int(input("sayı2 giriniz: ")),int(input("sayı3 giriniz: ")),int(input("sayı4 giriniz: ")),int(input("sayı5 giriniz: "))]
    gırılen_sayılar.sort()


    for i in gırılen_sayılar:
    print(i)
    """

    # 5: kullanıcıdan alacağınız sınırsız ürün bilgisini ürünler listesinie saklayınız
    # ** ürün sayısını kullanıcıya sorun
    # ** dictionary listesi yapısı (name, prise) şeklinde olsun
    # ** ürünler ekleme işlemi bitdiğinde ürünleri while ile ekrana listleyin




    tabiki cevaplarada bir göz atmanızıda isteyecem birde 4. soruyu while yapmaya çalışdım ama mümkün değil buyüzden for döngüsü en iyisi olucakdır




  • layk5t kullanıcısına yanıt
    orada uzun uzun 4 satır yazıp yapamadım dediğiniz 4. soru, Raku ile çok kısa 2 satırda yapılabiliyor:

    while döngüsü

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 1.soru => çözümün doğru
    2.soru => kullanıcıdan iki sayı al.min ve max diye.for veya while ile min'den başlayıp max'a kadar sayıları oku ve okurken tek sayı olup olmadığını kontrol edebilirsin.
    3.soru => doğru
    4.soru => sana direk cevabı while ile yapayım.Döngü ile halledilmeli.1000 sayı istenirse hepsi için ayrı ayrı input mu alacaksın yazdığın gibi.


    dizi = []

    while len(dizi) < 5:
    oku = input("Sayı giriniz : ") # sayı oku
    oku = int(oku) # int türüne çevir
    dizi.append(oku) # diziye ekle

    dizi.sort() # diziyi sırala - while içinde değil

    print([i for i in dizi])


    5.soru => direk yazıyorum

    urunler = [] # listemiz.Elemanlar dictionary olacak

    # eleman özellikleri için sadece adı ve fiyatını alalım
    # örnek
    # eleman = {
    # "name": "urun1",
    # "price": 55
    # }

    adet = int(input("Kaç adet ürün eklemek istersiniz : "))
    baslangic = 0
    while baslangic < adet:
    name = input("Ürün adı giriniz : ")
    price = input("Fiyatını giriniz : ")
    urunler.append({
    "name": name,
    "price": price
    })
    baslangic += 1


    # yazdırma kısmı
    for i in urunler:
    print(
    "Ürün adı * {0} *, Ürünün fiyatı * {1} *".format(i["name"], i["price"]))





  • Python aslında tek satırda halledebiliyor..

    print(sorted([input("{0}. sayıyı girin: ".format(i+1)) for i in range(5)]))
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.