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))
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))
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))
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?
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))
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