Veri türleri arasında dönüştürme
Tavsiye
Daha fazla ayrıntı için Metin ve resimler sekmesine bakın!
İşlevi input() kullanarak bir kullanıcıdan gelen verileri kabul ettiğinizde, Python kullanıcı bir sayı yazarken bile verileri her zaman metin (dize) olarak yakalar. Bu değeri matematiksel hesaplamalarda kullanmak için önce veri türünü açıkça dönüştürmeniz (veya "atamanız") gerekir.
Tür dönüştürme işlevleri
Python, verileri bir türden diğerine dönüştürmek için yerleşik işlevler sağlar. Bir değeri değiştirmek için istediğiniz dönüştürme işlevine sarmalarsınız:
| Function | Dönüştürür: | Example | Result |
|---|---|---|---|
int() |
Tam sayı | int("42") |
42 |
float() |
Ondalık sayı | float("3.14") |
3.14 |
str() |
Metin | str(100) |
"100" |
Kullanıcı girişini dönüştürme
Kullanıcı girişini metinden sayıya dönüştürme adımları şunlardır:
raw_input = input("Enter your score: ") # Captured as text, e.g. "95"
score = float(raw_input) # Convert to a decimal number, e.g. 95.0
print(score + 5) # Math is now possible. Output: 100.0
Bu kodu adresinde çevrimiçi python yorumlayıcısında https://aka.ms/python-coderkendiniz çalıştırmayı deneyebilirsiniz.
Tek satırlık kısa el
Bu adımları tek bir kod satırında birleştirebilirsiniz. İşlevi bir dönüştürme işlevinin input() içine yerleştirdiğinizde, Python önce kullanıcının girişini metin olarak yakalar, ardından hemen istenen türe dönüştürür:
score = float(input("Enter your score: "))
- Python önce inside işlevini çalıştırır:
input("Enter your score: "): metni almak için. - Bu metni hemen dış işleve geçirir:
float() - Dönüştürülen sayı değişkenine
scoreatanır.
Uyumsuz değerlerle ne olur?
Sayı olarak yorumlanamaz bir değeri dönüştürmeye çalışırsanız, Python programınızı çalıştırmayı durdurur ve bir ValueErroroluşturur:
user_age = int("hello")
Output:
ValueError: invalid literal for int() with base 10: 'hello'
Ayrıca, ValueError ondalık sayıyı tamsayıya dönüştürmeye çalışırsanız Python sizin için yuvarlayamazsınız:
user_age = int("3.14") # Pythoncan't drop the decimal for you
Bir kullanıcının ondalık sayı yazabileceğini düşünüyorsanız, bu hatayı önlemek için yerine int() kullanınfloat(). Kayan değerler tamsayılara dönüştürülebilir, ancak Python her zaman ondalık bölümünü aşağı yuvarlar (örneğin, int(3.99) olur3).
Bir değerin türünü denetleme
Yerleşik type() işlevi kullanarak herhangi bir değişkenin veri türünü doğrulayabilirsiniz:
score = "95"
print(type(score)) # Output: <class 'str'>
score = float(score)
print(type(score)) # Output: <class 'float'>