Python listedeki sayılara +1 eklemek

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.

1 Beğeni

Anladım hocam teşekkür ederim.
Benim yazdığımda doğruymuş fakat ben farkedememişim while döngüsünden dolayı

1 Beğeni

While döngüsünden dolayı değil aslında, for döngüsü ile aynı girinti düzeyinde yazdığınız için.

numbers = [1,2,3,4,5,6,7,8,9]

for i in numbers:
    i += 1
print(i)

Bu örnekte de i en son 9’da kaldığı için, print fonksiyonu bize yalnızca 9’u döndürecektir.

While döngüsünün yarattığı sorun sizi sonsuz döngüye sokması.

1 Beğeni

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.

3 Beğeni