Selam, pythonda listedeki her bir sayıya +1 eklemek istiyorum ama şu kodu çalıştırıyorum;
numbers = [1,2,3,4,5,6,7,8,9,100]
while True:
for i in numbers:
i += 1
print(i)
sadece 100’e +1 ekliyor.
Python’da yeniyim biliyorum ki bu dediğim şey çok basit ama ben yapamadım yardım ederseniz sevinirim birde while döngüsünü nasıl sonlandırabilirim ?
numbers = [1,2,3,4,5,6,7,8,9,100]
for i in range(len(numbers)):
numbers[i] = numbers[i] + 1
print(numbers)
While döngüsünü de break ile sonlandırabilirsiniz ama bu örnekte while döngüsüne gerek yok. Daha doğrusu for ve while’ın birlikte kullanımına gerek yok.
Düzenleme: Ayrıca sizin örneğinizde de her sayıya +1 ekliyor, sadece 100’e değil. Siz printi for ile aynı girinti düzeyinde yazmış olduğunuz için öyle görünüyor olabilir.
Sorununuz zaten çözülmüş ama şu noktaya bir parmak basayım dedim. Yazdığınız kodda aslında listedeki her bir sayıya 1 eklemiş olmuyorsunuz. Nitekim for döngüsü bittikten sonra print(numbers) yazacak olursanız sayıların ilk durumdaki gibi olduğunu göreceksiniz.
Listenin her bir elemanına 1 eklemek için:
numbers = [1,2,3,4,5,6,7,8,9,100]
for i in range(len(numbers)):
numbers[i] += 1
print(numbers[i]) # sayıyı her döngünün sonunda görmek istiyorsanız bunu,
print(numbers) # sayıların tamamını en son görmek istiyorsanız bunu kullanın.
Öbür türlü, siz geçici bir değişken olan i değeriyle oynamış olursunuz ve numbers içerisindeki sayılar sabit kalacaktır.