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 |
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 nedirname = "" bu kodu tam anlamıyla anlayamadım burayı açıklarmısnız |
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 |
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. |
tam anlayamadım ama birazdaha ayrıntılı anlatayım sizex = 0 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 burdada sonuç 1 den başlayıp 100 den bitmesi kafa karıştıran nokta bu oldu |
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 |
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 |
While x <=100: şeklinde yazarsan 1den 100 e kadar 100 dahil yazması lazım. |
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. |
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] ş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ıyoruma = 0 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] 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 |
orada uzun uzun 4 satır yazıp yapamadım dediğiniz 4. soru, Raku ile çok kısa 2 satırda yapılabiliyor: < Resime gitmek için tıklayın > |
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.
5.soru => direk yazıyorum
|
Python aslında tek satırda halledebiliyor.. print(sorted([input("{0}. sayıyı girin: ".format(i+1)) for i in range(5)])) |
kulladnığım editör visual studio code
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi layk5t -- 23 Ağustos 2020; 20:47:29 >