Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `input()` Python Mengembalikan Rentetan Daripada Integer?

Mengapakah `input()` Python Mengembalikan Rentetan Daripada Integer?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 15:18:18961semak imbas

Why Does Python's `input()` Return Strings Instead of Integers?

Mengapa x dan y Menerima Rentetan Daripada Integer

Apabila melaksanakan kod yang disediakan, khususnya baris x = input("Masukkan nombor : ") dan y = input("Masukkan nombor:"), ia menggesa pengguna untuk memasukkan nilai, yang kemudiannya disimpan dalam x dan y sebagai rentetan, bukannya integer.

Sebab untuk Gelagat ini

Tingkah laku ini timbul disebabkan oleh pengendalian input Python dalam versi yang berbeza. Dalam Python 3, di mana kod yang disediakan mungkin berjalan, fungsi input() mengembalikan nilai yang dimasukkan sebagai rentetan secara lalai. Untuk menukar rentetan ini kepada integer, hantaran eksplisit diperlukan, seperti yang dilihat dalam kod yang diubah suai di bawah:

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Mengendalikan Asas Nombor Berbeza

Python menyediakan serba boleh pendekatan untuk menerima nombor pelbagai asas. Menggunakan asas yang sesuai semasa menghantar, seperti yang ditunjukkan di bawah, membolehkan tafsiran nombor dalam jejari berbeza:

data = int(input("Enter a number: "), 8)  # Converts to base 8 (octal)
data = int(input("Enter a number: "), 16)  # Converts to base 16 (hexadecimal)
data = int(input("Enter a number: "), 2)  # Converts to base 2 (binary)

Menukar kepada Terapung untuk Nilai Pecahan

Untuk nilai yang mungkin mengandungi komponen pecahan, menukarnya kepada terapung dan bukannya integer adalah sesuai. Ini boleh dicapai menggunakan sintaks berikut:

x = float(input("Enter a number:"))

Ciri Tersendiri antara Python 2 dan 3

Ringkasan

Perbezaan utama antara Python 2 dan 3 berkenaan dengan input pengguna ialah:

  • Fungsi input Python 2 menilai data yang diterima dan secara tersirat menukarkannya kepada integer, manakala fungsi input Python 3 mengembalikannya sebagai rentetan secara lalai.
  • Python 2 menyediakan kedua-duanya fungsi input dan raw_input, manakala Python 3 hanya mempunyai input.

Gelagat Python 2.x

  • input menilai ungkapan yang dimasukkan dan mengembalikan hasilnya sebagai jenis yang sesuai (cth., integer atau rentetan ).
  • raw_input mendapatkan semula input sebagai rentetan tanpa tafsiran.

Gelagat Python 3.x

  • fungsi input sama seperti input_raw Python 2, mengembalikan input sebagai rentetan.

Potensi Bahaya dengan input Python 2.x Fungsi

Apabila menggunakan fungsi input dalam Python 2.x, adalah penting untuk mengambil kira penilaian automatiknya, kerana ia boleh membawa kepada tingkah laku yang tidak diingini, seperti membenarkan pelaksanaan kod berniat jahat.

Atas ialah kandungan terperinci Mengapakah `input()` Python Mengembalikan Rentetan Daripada Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn