Veri türleri arasında dönüştürme

Tamamlandı

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: "))
  1. Python önce inside işlevini çalıştırır: input("Enter your score: ") : metni almak için.
  2. Bu metni hemen dış işleve geçirir: float()
  3. 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'>