[]

some code

merhaba duyurucu arkadaşlar! :)
bana şu kodun nasıl çalıştığını anlatabilecek var mı?
neden count adlı değişken bir iki üç şeklinde artmıyor da 12 24 36 şeklinde artıyor?
şimdiden teşekkür ettim!

iteration = 0
count = 0
while iteration < 5:
for letter in "hello, world":
count += 1
print("Iteration " + str(iteration) + "; count is: " + str(count))
iteration += 1

p.s. Uzun bir süreden sonra şöyle güzel bir soruyla gelmek ne akdar güzel hissettiriyor ya! :)

 
hangi dil oldugunu bilmesem de scripting gibi geldi. for letter in hello world kisminda "hello, world" stringi icerisindeki her bir karakter icin 1 artiriyo olabilir. print de bu satirdan sonra oldugu icin 12 12 artiyomus gibi gozukur. bi parantez marantez bisi koyup da count+=1 ve printi icine alirsan birer birer artmasi lazim durum buysa.


  • bartman  (30.01.18 21:23:14) 
12'şer artıyor gözükür çünkü for düngüsü sadece count+=1 i kapsıyacak şekilde indentation(girintileme) yapmışsındır. count değişkeni stringdeki her bir karakter için birer birer artıyor (toplamda 12) ve for döngüsünden çıkılıyor, while döngüsüne print() satırından devam ediliyor ve her bir while iterasyonunda 12 artmış değer bastırılıyor. bartman'ın dediği gibi parantezleri, yani pythondaki karşılığı indentation'ı düzeltmen lazım.


  • leben  (30.01.18 21:47:18 ~ 21:56:53) 
Haydi türkçeye çevirelim

döngü_sayısı = 0 # iteration = 0
sayı = 0 # count = 0
döngü_sayısı küçük iken 5'den: # while iteration < 5:
>>>"hello, world" içindeki her bir karakter için: # for letter in "hello, world":
>>>>>>sayiyi esitle sayi arti 1 ile # count += 1
>>>ekrana_yaz(döngü_sayısı; sayı) # print("Iteration " + str(iteration) + "; count is: " + str(count))
>>>döngü_sayısı'sini eşitle döngü_sayısı artı bir ile # iteration += 1
  • selam  (30.01.18 23:56:47 ~ 23:59:43) 
kod bu şekilde arkadaşlar:

iteration = 0
count = 0
while iteration < 5:
>>>>for letter in "hello, world":
>>>>>>>>count += 1
>>>>print("Iteration " + str(iteration) + "; count is: " + str(count))
>>>>iteration += 1

benim anlamadığım yer şu: yürüttüğüm mantığa göre for döngüsünde her bir karakter için count bir arttırılacak. yani h için count 0+1 den 1 oluyor. e için 1+1 2 oluyor gibi. Sonuçta 12 olacakken 60 oluyor. Sonra print'i yazacak ekrana. sonra da itaration bir arttırılıp while döngüsüne tekrar girilecek. lakin durum böyle değil.
  • umutlarivarolankisi  (31.01.18 00:26:04 ~ 00:27:41) 
verdiğin kodun çıktısı (run ediniz) (git:repl.it )
5 kere iterasyon yapılıyor; her bir iterasyonda count = 0 olarak başlatılan değişkenin değeri 12 artırılıyor ve artırma işlemi bittiğinde print ediliyor, dolayısıyla count değişkeninin son değeri 60 oluyor.
neyi anlamadığını tam anlayamadım sanırsam, açıklarsan yardımcı olmak isterim.
  • leben  (31.01.18 01:19:43 ~ 01:20:28) 
@leben hocam zaten çıktıya bakarak söylediğiniz şeyi çoktan gördüm ben. ama sıkıntı şu: neden çıktı şöyle olmuyor? yani neden count bir bir değil de 12 12 artıyor?
Iteration 0; count is: 1
Iteration 1; count is: 2
Iteration 2; count is: 3
Iteration 3; count is: 4
Iteration 4; count is: 5
  • umutlarivarolankisi  (31.01.18 02:13:57) 
Iterasyonun icinde for dongusu 12 kez calisiyor. Print'i bir ustundeki count'la ayni hizaya getirirsen sunu alirsin.
Iteration 0; count is: 1
Iteration 0; count is: 2
Iteration 0; count is: 3
.
.
.
Iteration 0; count is: 12
Iteration 1; count is: 13
Iteration 1; count is: 14
.
.
.
  • gormemisin oglu  (31.01.18 07:05:54) 
dostum 5 iterasyon yaptırıyorsun,

for letter in "hello, world":
count += 1

ne yapar? count'u 1'er 1'er artırır, 12 kere.

Tavsiye ettiğimiz üzere print ifadesini for döngüsünün içine alırsan 1'er 1'er arttığını göreceksin.kod (git: repl.it )

Senin kodunda count ifadesi 1'er 1'er 12 kere artırıldıktan sonra print edildiği için 12'şer 12'şer artıyor gözükür.
  • leben  (31.01.18 15:02:08 ~ 15:07:23) 
hepinize çok teşekkür ederim! @gormemisin oglu na daha çok teşekkür ederim! sonunda olayı anladım. burada önemli olan şey indentation'mış. farklı farklı indentation yaparak farklı çıktılar aldım ve bu sayede olayı kavradım.


  • umutlarivarolankisi  (31.01.18 18:42:05) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.