Isu dengan Membaca Input Pengguna sebagai Nombor
Dalam Python 3, menggunakan fungsi input() untuk membaca input pengguna menimbulkan kebimbangan mengenai jenis daripada data yang diterima. Secara lalai, input() mengembalikan nilai sebagai rentetan, walaupun apabila pengguna berhasrat untuk memasukkan data berangka. Tingkah laku ini berbeza daripada Python 2.7, dengan input() menganggap input pengguna sebagai integer.
Dalam coretan kod anda:
x = input("Enter a number: ") y = input("Enter a number: ")
Pembolehubah x dan y akan menjadi rentetan dan bukannya integer. Ini menjadi jelas apabila melakukan operasi aritmetik pada x dan y.
Penyelesaian
Untuk membaca input sebagai nombor, anda perlu menukarnya secara eksplisit menggunakan int() atau float () fungsi. Contohnya:
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
Fungsi int() menukar input kepada integer dan fungsi float() menukarkannya kepada nombor titik terapung.
Mengendalikan Berbeza Pangkalan untuk Input Berangka
Anda juga boleh mengendalikan input berangka yang dimasukkan dalam pangkalan yang berbeza. Python 3 menyediakan cara yang mudah untuk menentukan pangkalan menggunakan parameter kedua kepada fungsi int() atau float(). Contohnya:
data = int(input("Enter a number: "), 8) # Binary base data = int(input("Enter a number: "), 16) # Hexadecimal base data = int(input("Enter a number: "), 2) # Octal base
Perbezaan antara Python 2 dan 3
Python 2 dan 3 mempunyai gelagat yang berbeza semasa membaca input pengguna.
Python 2.x:
Python 3.x:
Dengan memahami perbezaan ini dan menggunakan kaedah penukaran jenis yang sesuai, anda boleh membaca input berangka dengan berkesan dalam Python 3.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Input Berangka dengan Selamat daripada Pengguna dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!