String'den integer'a for döngüsü ile çevirme nasıl yapılır?

Merhaba, for döngüsü kullanarak string ifadeyi nasıl integra çevirebilirim, yalın ve kütüphane kullanmadan bir kod ile örnek verebilir misiniz?
Hata veren örneğim;

a = "3 2 4 6 -1 12 0"
for i in a:
    i = int(i)
    print(i)
    print(type(i))
1 Beğeni

Merhaba, for döngüsü kullanmanıza gerek yok. Şöyle de yapabilirsiniz.

a = "3 2 4 6 -1 12 0"
b = list(map(int, a.split(" ")))
print(b)

Hatayı önlemek için sizin kodlarınızda da şöyle bir değişiklik yapmak lazım:

a = "3 2 4 6 -1 12 0"

for i in a.split(" "):
    print(int(i))
2 Beğeni

Hocam cevabımı yazdığınız ikinci kodda aldım teşekkürler. Anlamadığım şey for ile stringe girip her değeri i değişkenine atayıp i yi de int’e çevirmek çok mantıklı geliyor. Neden bu olmuyor, neden split ile stringi list döndürecek şekilde kullanıyoruz?

1 Beğeni

Siz for döngüsüne girecek stringin bütün karakterlerini int(i) yapmaya çalışıyorsunuz. Bu string ifadesinde, boşluk karakteri var, eksi işareti var. Bu karakterler hata yükseltecektir. İsterseniz int(i) yazmak yerine print(i) yazın, hatta print(repr(i)) yazın, hangi karakterleri int'e dönüştürmeye çalışıyorsunuz bir gözlemleyin. Ayrıca stringdeki 12 sayısı, 1 ve 2 olacak şekilde ayrı sayılar gibi ele alınacak.

a = "3 2 4 6 -1 12 0"
for i in a:
    print(repr(i))
2 Beğeni

Dediklerinizi yaptım hocam çok net anladım, string ifade sadece numerik ise benim yapmaya çalıştığım şey işe yarıyor fakat işin içine boşluk, numerik operatörler vs girdiği zaman bunları da integer’a çevirmeye çalıştığım için olmuyordu. Çok teşekkür ederim hocam

2 Beğeni