Ana içeriğe geç

Python'da Bir Dizge (String) Tamsayıya (Integer) Nasıl Dönüştürülür

Bu hızlı eğitimde Python dizgelerini tamsayılara nasıl dönüştüreceğinizi öğrenin.
· 5 dk. oku

Yapay Zeka ile Keşfedin

Veri türü hataları, özellikle yeni başlayanlar için, Python'daki en yaygın engellerden biridir. Yaygın bir veri türü hatası, sayıların dizge (string) olarak biçimlendirilmesiyle ortaya çıkar; bu da yanlış hesaplamalara, hatalı içgörülere veya doğrudan hata mesajlarına yol açar.

Bu eğitimde, bu hatalarda nasıl yol alacağınızı ve Python dizgelerini tamsayılara nasıl dönüştüreceğinizi göstereceğim.

Hızlı Yanıt: Python Dizgesi Tamsayıya Nasıl Dönüştürülür

Dizgeniz bir tam sayıyı temsil ediyorsa (ör. 12), bir dizgeyi tamsayıya dönüştürmek için int() işlevini kullanın. Dizgeniz bir ondalık sayıyı temsil ediyorsa (ör. 12.5), dizgeyi kayan noktalı sayıya dönüştürmek için float() işlevini kullanın. Aşağıda örnekleri bulabilirsiniz:

# Converting a string into an integer 
number_str = "10"
number_int = int(number_str)
print(number_int)  # Output: 10

# Converting a string into a float 
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float)  # Output: 10.5

Python'da Veri Türleri

Python, dizgeler ve tamsayılardan kayan noktalı sayılara ve boole değerlere kadar çeşitli veri türlerine sahip, dinamik olarak tür belirleyen bir dildir. Bunları anlamak, etkili programlama için kritik önemdedir. Aşağıda Python veri türlerinin kapsamlı olmayan bir listesi yer alır:

  • Dizge (str): Tırnak içine alınmış metinsel veri. Örn., greeting = "Hello, World!"
  • Tamsayı (int): Kesirli bileşeni olmayan tam sayılar. Örn., age = 25
  • Kayan noktalı sayı (float): Ondalık noktaya sahip sayılar. Örn., height = 5.9
  • Boolean (bool): True veya False değerlerini temsil eder
  • Liste (list): Farklı veri türlerinden öğeler içerebilen sıralı bir koleksiyon. Listeler değiştirilebilir, yani üzerinde değişiklik yapılabilir. Örneğin, colors = ["red", "blue", "green"]
  • Sözlük (dict): Anahtar-değer çiftlerinden oluşan bir koleksiyon; veriyi anahtarlar aracılığıyla saklamayı ve getirmeyi sağlar. Örneğin, person = {"name": "Alice", "age": 30}

Veri türleri hakkında daha fazlası için DataCamp'teki şu eğitimi okuyun: Python'da Veri Yapıları.

Neden Bir Dizgeyi Tamsayıya Dönüştürmeli?

Doğru veri türleri, doğru hesaplamalar için gereklidir. Şu örneği düşünün. Diyelim ki 5 ve 10 olmak üzere iki sayımız var ve bunlar dizge. Bunları toplarsak, + işleciyle birleştirilen dizgeler olarak değerlendirildiklerinden yanıt 510 olur.

Doğru yanıtı almak için (bu durumda 15), toplamı hesaplamadan önce bunların tamsayıya dönüştürülmesi gerekir. Bu basit bir gösterimdir; ancak bunun bir şirket gelir veri kümesine uygulandığını düşünün—bu durum kötü iş kararlarına yol açabilir.

# Summing two numbers that are actually strings
'5'+'10'# This returns 510

# Converting them to integers before summing them
int('5') + int('10') # This returns 15

Python'da Dizgeleri Tamsayıya Nasıl Dönüştürürsünüz

Sayısal verilerle çalışırken, bu veriler dizge olarak biçimlendirilmişse, hesaplamalar veya diğer sayısal işlemler için bu dizgeleri tamsayılara dönüştürmek sıklıkla gerekir. Python, bunu int() işleviyle gerçekleştirmek için yalın bir yol sunar. Bu işlev bir dizgeyi girdi olarak alır ve dizge geçerli bir tam sayıyı temsil ettiği sürece onun tamsayı karşılığını döndürür.

# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer)  # Output: 42

Python'da Dizgeleri Kayan Noktalı Sayıya Nasıl Dönüştürürsünüz

Dizge, ondalık noktaya sahip bir sayıyı temsil ediyorsa, onu tamsayıya dönüştürmek uygun olmaz ve bir hatayla sonuçlanır. Bunun yerine, bu dizgeleri Python'da float() işlevini kullanarak kayan noktalı sayılara dönüştürebilirsiniz. Özellikle finansal veriler veya sensör ölçüm verileri gibi yüksek hassasiyet gerektiren verilerle çalışırken float veri türlerini kullanmak kritik önemdedir.

# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float)  # Output: 3.14

Python'da Dizgeleri Sayılara Dönüştürürken Karşılaşılan Sorunlar

Dizgeleri sayılara dönüştürürken, bazı tuzaklar hatalara veya beklenmedik sonuçlara yol açabilir.

Sayısal olmayan dizgeleri dönüştürmek

'hello world' gibi sayısal olmayan bir dizgeyi sayıya dönüştürmeye çalışmak hata verir. Programlı olarak tamsayıya dönüştürülemeyen dizgeleri yakalamak istiyorsanız, bu durumları zarifçe ele almak için bir try/except bloğu kullanmayı deneyin.

try:
    invalid_number = int("hello world")
except ValueError:
    print("This is not a number.")

Kayan noktalı dizgeleri tamsayıya dönüştürmek

Kayan noktalı bir sayıyı temsil eden bir dizgeyi doğrudan tamsayıya dönüştürmek bir ValueError üretir. Bir tamsayıyı temsil eden bir dizgeyi kayan noktalı sayıya dönüştürebilseniz de tersi mümkün değildir. İşte alabileceğiniz hataya bir örnek:

string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal) 
# Returns ValueError: invalid literal for int() with base 10: '13.5'

Farklı tabanlara sahip dizgeler

Sayılar için "tabanlar"dan bahsettiğimizde, sayının ifade edildiği sayı sistemine atıfta bulunuruz. En yaygın taban, gündelik hayatta kullandığımız, 0'dan 9'a kadar 10 rakam içeren onluk (taban 10) sistemdir.

Bununla birlikte, özellikle bilişimde kullanılan başka tabanlar da vardır. Örneğin:

  • İkilik (Taban 2): Yalnızca 0 ve 1 kullanır. Bilgisayarların temel dilidir.
  • Sekizlik (Taban 8): 0'dan 7'ye kadar rakamları kullanır. Günümüzde daha az yaygındır ancak eski bilgi işlem sistemlerinde kullanılmıştır.
  • Onaltılık (Taban 16): 0'dan 9'a kadar rakamları ve A'dan F'ye kadar harfleri kullanır (A=10 ve F=15). Bilgi işlemde, özellikle web tasarımında renk kodları ve bellek adresleri için yaygın şekilde kullanılır.

Eğer 10 dışındaki bir tabanda bir sayıyı temsil eden bir dizgeniz varsa, Python'un onu doğru yorumlayabilmesi için tabanı belirtmeniz gerekir. İşte onaltılık bir sayı kullanılarak yapılan bir örnek:

# Convert a hexadecimal string to an integer
hex_string = "1A"  # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16)  # The '16' tells Python it's in base 16
print(converted_int)  # Output: 26

Sonuç

Python'da veri türleri ve dönüştürmelerde yol almak programlama için temel bir beceridir. Dizgeleri doğru şekilde tamsayı ve kayan noktalı sayılara dönüştürmeyi anlayarak yaygın tuzaklardan kaçınabilir ve veri işlemenizin doğru olmasını sağlayabilirsiniz. Python hakkında daha fazlası için Yeni Başlayanlar için Python Cheat Sheet'imize, Python Nasıl Öğrenilir rehberimize ve Python Kursları'mıza göz atın.

Adel Nehme

Yazar

Adel Nehme

Adel, Veri Bilimi eğitmeni, konuşmacı ve DataCamp’te Medya Başkan Yardımcısıdır. Adel, veri analizi, makine öğrenimi ve veri mühendisliği üzerine çeşitli kurslar ve canlı eğitimler yayınlamıştır. Kuruluşlar genelinde veri becerilerini ve veri okuryazarlığını yaygınlaştırmaya ve teknolojinin toplumla kesişimine tutkuyla bağlıdır. Veri Bilimi ve İş Analitiği alanında yüksek lisans derecesine sahiptir. Boş zamanlarında onu kedisi Louis ile vakit geçirirken bulabilirsiniz.

SSS

Python'da bir dizgenin tamsayı olup olmadığını nasıl kontrol ederim?

Bir dizgenin tamsayıyı temsil edip etmediğini kontrol etmek için, dizge yalnızca rakamlar içeriyorsa ve işaret (+/-) veya ondalık nokta yoksa str.isdigit() yöntemini kullanabilirsiniz:

string = "42"
if string.isdigit():
    print("The string is an integer.")
else:
    print("The string is not an integer.")

İşaret (+/-) içerebilecek dizgeler için daha sağlam bir yöntem kullanabilirsiniz:

string = "-42"
try:
    int(string)
    print("The string is an integer.")
except ValueError:
    print("The string is not an integer.")
Python'da bir tamsayıyı dizgeye nasıl dönüştürürüm?

Bir tamsayıyı dizgeye dönüştürmek için str() işlevini kullanın. Örneğin:

number = 42
string_number = str(number)
print(string_number)  # Output: "42"
Dizge ondalık sayı içeriyorsa ve ben bunu tamsayıya dönüştürmek istiyorsam ne yapmalıyım?

Önce dizgeyi float() işlevini kullanarak kayan noktalı sayıya dönüştürün, ardından int() ile tamsayıya dökün. Örneğin:

decimal_string = "13.5"
converted_integer = int(float(decimal_string))
print(converted_integer)  # Output: 13

Konular

İlgili