Python'da String'i Int'ye Dönüştürme (Güvenli Döküm ve Tabanlar)

Python'da int() işlevini kullanarak bir dizeyi tam sayıya nasıl dönüştüreceğinizi öğrenin. Hataları güvenli bir şekilde ele alın ve sayıları ikili, sekizli veya onaltılıdan dönüştürün.

Bu Çözümü Editör'de deneyin

Genel Bakış

Bir sayının dize gösterimini gerçek bir tam sayıya dönüştürmek, uygulama geliştirmede sık karşılaşılan bir görevdir. Genellikle atama olarak adlandırılan bu süreç, ham kullanıcı girişiyle uğraşırken, yapılandırma dosyalarını okurken, komut satırı arayüzlerinden argümanları ayrıştırırken veya web'den veri alırken çok önemlidir. Python türü kesin olarak belirlenmiş bir dil olduğundan, sayıların dize gösterimleri üzerinde, önce onları dönüştürmeden matematiksel işlemler gerçekleştiremezsiniz.

Python'un yerleşik `int()` yapıcısı bu dönüşümün birincil aracıdır. En basit biçimiyle, sayısal bir dizgenin ("42" gibi) "int()"'e iletilmesi, onun tamsayı eşdeğerini döndürür. Bununla birlikte, sayısal olmayan bir dizenin ("hello" gibi) veya kayan noktalı sayıyı temsil eden bir dizenin ("3.14"` gibi) iletilmesi "ValueError" hatasına yol açacaktır. Sağlam uygulamalar yazmak için, beklenmedik girdileri zarif bir şekilde ele almak üzere döküm işlemlerini bir "try-hariç" bloğuna sarmak standart bir uygulamadır.

Standart 10 tabanlı dönüşümün ötesinde, 'int()' işlevi isteğe bağlı bir 'base' bağımsız değişkenini kabul eder. Bu, ikili (2 tabanı), sekizli (8 tabanı) veya onaltılık (16 tabanı) gibi farklı sayı sistemlerindeki sayıları temsil eden dizeleri kolayca ayrıştırmanıza olanak tanır. Örneğin, 'int('1010', 2)' ikili dizgeyi '10' ondalık tamsayıya doğru şekilde ayrıştırır, bu da onu daha düşük seviyeli veya özel matematiksel programlama için çok yönlü bir araç haline getirir.

Kod ve Yürütme Çıkışı

Bu komut dosyası, bir dizenin bir tamsayıya dönüştürülmesini, istisnaların ele alınmasını ve farklı temel gösterimlerin dönüştürülmesini gösterir.

convert_int.py
Editör'de deneyin
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")

# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
    result = int(invalid_str)
except ValueError:
    print(f"Could not convert '{invalid_str}' to an integer.")

# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))
Terminal Çıkışı
Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255

Adım Adım Uygulama

  • Sayısal dizeyi yerleşik int() işlevine iletin.
  • Geçersiz formatları işlemek için yayınlama işlemlerinizi ValueError blokları hariç try... içine sarın.
  • Diğer tabanlarda yazılan dize değerlerini dönüştürmek için ikinci bir argüman sağlayın (ör. taban=16).

Sıkça Sorulan Sorular

'12.34' gibi kayan bir dizeyi tam sayıya nasıl dönüştürebilirim?

Önce onu bir float'a, sonra da int'ye dönüştürmelisiniz: int(float("12.34")). int("12.34") işlevinin çağrılması doğrudan ValueError değerini yükseltir.

Bir dizenin güvenli bir şekilde int'ye dönüştürülüp dönüştürülemeyeceğini nasıl kontrol edebilirim?

.isdigit() dize yöntemini kullanabilirsiniz, ancak bunun negatif işaretler veya boşluklar için False değerini döndürdüğünü unutmayın. Bir try-hariç bloğu en sağlam yoldur.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.