Aşağıdaki basit döngü döngü sonunda i
değerini kaydetmiyor?'Python'da döngü davranışı için
for i in range(1, 10):
print i
i = i + 3
yukarıdaki baskılar:
1
2
3
4
5
6
7
8
9
Ama basmalı:
1
4
7
Aşağıdaki basit döngü döngü sonunda i
değerini kaydetmiyor?'Python'da döngü davranışı için
for i in range(1, 10):
print i
i = i + 3
yukarıdaki baskılar:
1
2
3
4
5
6
7
8
9
Ama basmalı:
1
4
7
for
setlerii
her yineleme, nesneden sonraki değere üzerinde yinelenilen. Döngünün içine i
'u ne ayarlamış olursanız olun bu noktada göz ardı edilir. for
statement documentation itibaren
:
paketi daha sonra artan endeksleri sırasıyla, yineleyici tarafından sağlanan her öğe için bir kez gerçekleştirilir. Sırayla her bir öğe, atamalar için standart kuralları kullanarak hedef listeye atanır ve daha sonra süit yürütülür.
i
range(1, 10)
nesneden her değer atanır.
i
öğesinin daha sonra başka bir şeye ayarlanması,
range(1, 10)
ifadesinin üretilmesini değiştirmez.
i
değiştirdiğiniz bir döngü oluşturmak istiyorsanız, bunun yerine bir while
döngü kullanın; içinden koşul her zaman-testleri yeniden:
i = 1
while i < 10:
print i
i += 3
ama sadece ön değerleri üreten bir adımla bir range()
kullanmak daha kolay olacak: Muhtemelen
for i in range(1, 10, 3):
print i
ve bunu nasıl gerçekleştiremiyorum? –
@NishantSingh, aralığınızı (1,10,3) ' – Ian
İyi cevabınız ile kontrol edebilirsiniz. Burada önemli olan nokta testin devam etmemesidir. Python'da döngü için, diğer dillerin döngüleri için "yap-test-tekrarla" yerine gerçek bir döngü, bir yineleme vardır. Java'da sanırım python döngüsüne daha çok benzeyen her bir 'döngü' var; belki de böyle bir adlandırma, bu döngünün nasıl davrandığını biraz daha netleştirir, değil mi? –
[related açıklama ] (http://stackoverflow.com/questions/35618307/how-to-transform-string-into-dict/35618686#35618686). – Ian
Bu neden böyle çalışır? Bu tamamen karşı sezgisel. – Andrey
değişkeniniz "for" olarak ayarlandı, yazdırıldı ve sonra ek yapıyorsunuz. Eğer bu çıktıya isterseniz "print i + 3" yazmalısınız – miguels