Mengonversi antar jenis data

Selesai

Tip

Lihat tab Teks dan gambar untuk detail selengkapnya!

Saat Anda menerima data dari pengguna menggunakan fungsi , input() Python selalu mengambilnya sebagai teks (string)—bahkan jika pengguna mengetikkan angka. Untuk menggunakan nilai tersebut dalam perhitungan matematika, Anda harus secara eksplisit mengonversi (atau "cast") jenis datanya terlebih dahulu.

Fungsi konversi jenis

Python menyediakan fungsi bawaan untuk mengubah data dari satu jenis ke jenis lainnya. Untuk mentransmisikan nilai, Anda membungkusnya dalam fungsi konversi yang diinginkan:

Function Mengonversi ke Example Result
int() Bilangan bulat int("42") 42
float() Bilangan desimal float("3.14") 3.14
str() Teks str(100) "100"

Mengonversi input pengguna

Berikut adalah langkah-langkah untuk mengonversi input pengguna dari teks ke angka:

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

Anda dapat mencoba menjalankan kode ini sendiri di penerjemah python online di https://aka.ms/python-coder.

Shorthand satu baris

Anda dapat menggabungkan langkah-langkah ini ke dalam satu baris kode. Saat Anda menumpuk fungsi di input() dalam fungsi konversi, Python terlebih dahulu mengambil input pengguna sebagai teks, lalu segera mengonversinya ke jenis yang diinginkan:

score = float(input("Enter your score: "))
  1. Python menjalankan fungsi dalam terlebih dahulu: : input("Enter your score: ") untuk mengambil teks.
  2. Ini segera meneruskan teks tersebut ke fungsi luar: float()
  3. Angka yang dikonversi kemudian ditetapkan ke variabel score.

Apa yang terjadi dengan nilai yang tidak kompatibel?

Jika Anda mencoba mengonversi nilai yang tidak dapat ditafsirkan sebagai angka, Python berhenti menjalankan program Anda dan menaikkan ValueError:

user_age = int("hello") 

Output:

ValueError: invalid literal for int() with base 10: 'hello'

Anda juga bisa mendapatkan ValueError jika Mencoba mengonversi angka desimal menjadi bilangan bulat, karena Python tidak dapat membulatkannya untuk Anda:

user_age = int("3.14") # Pythoncan't drop the decimal for you

Jika menurut Anda pengguna mungkin mengetikkan angka desimal, gunakan float() alih-alih int() untuk menghindari kesalahan ini. Float dapat dikonversi menjadi bilangan bulat, tetapi Python selalu membulatkan ke bawah bagian desimal (misalnya, int(3.99) menjadi 3).

Memeriksa jenis nilai

Anda dapat memverifikasi jenis data variabel apa pun menggunakan fungsi bawaan type() :

score = "95"
print(type(score))         # Output: <class 'str'>

score = float(score)
print(type(score))         # Output: <class 'float'>