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.
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.
# 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))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255Adı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
Python'daki en iyi dize biçimlendirme tekniklerini öğrenin. Modern f-dizelerini, format() ve yüzde formatını kod örnekleriyle karşılaştırın.
Python'da İstisnalar Nasıl Ele AlınırPython'da try, hariç, else ve nihayet bloklarını kullanarak istisnaları nasıl ele alacağınızı öğrenin. Hatasız ve çökmeye dayanıklı Python kodu yazın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Dizeleri
Python'da dize manipülasyonunda ustalaşın. Açık, yürütülebilir kod örnekleriyle dize yöntemlerini, dilimleme, birleştirme ve biçimlendirme tekniklerini öğrenin.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python Dekoratörler ve Dekoratör Tasarım Deseni: Temel Farklılıklar
Python dekoratörlerini ve klasik dekoratör tasarım modelini karşılaştırın. Çalıştırılabilir kodla tanım zamanı işlev sarma ve çalışma zamanı dinamik nesne bileşimi arasındaki farkları anlayın.