Hướng dẫn how do you convert input to int in python? - làm cách nào để bạn chuyển đổi đầu vào thành int trong python?

Trong Python 3.x, hàm đầu vào () đầu vào của người dùng phân tích cú pháp dưới dạng chuỗi ngay cả khi nó chỉ chứa các chữ số.

>>> import sys
>>> data=input("Enter a Value: ")
Enter a Value: 100
>>> data
'100'
>>> type(data)

>>> data=input("Enter a Value: ")
Enter a Value: Hello
>>> data
'Hello'
>>> type(data)

Làm thế nào để chúng tôi đảm bảo đầu vào số từ người dùng? Thay thế phổ biến nhất là phân tích giá trị trả về của hàm

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

6 thành số nguyên với hàm int ()

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

Tuy nhiên, điều này dễ bị lỗi. Nếu người dùng nhập dữ liệu không phải là số lượng,

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

7 sẽ được nâng lên.

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'

Điều này có thể được chăm sóc bởi kỹ thuật xử lý ngoại lệ của Python. Mã sau tiếp tục yêu cầu đầu vào của người dùng cho đến khi số nguyên được đưa ra.

while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")

Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 100
You entered: 100

Bạn có thể sử dụng hàm float () tích hợp nếu số điểm nổi dự kiến ​​sẽ được nhập.

Một phương pháp khác là sử dụng hàm eval (). Ngoài các ứng dụng khác của chức năng tích hợp này, đây là một công cụ thuận tiện để kiểm tra xem đầu vào có phải là số hợp lệ không. Trong trường hợp không, người phiên dịch Python tăng

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

8

while True:
    try:
        data=eval(input("Enter a Number: "))
        print ("You entered: ",data)
        break;
    except NameError:
        print ("Invalid input")

Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 12.34
You entered: 12.34

Chuyển đổi đầu vào thành số trong Python 2.x

Python 2.x có hai chức năng tích hợp để chấp nhận đầu vào của người dùng.

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

9 và
>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

6. Hàm
>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

6 thông minh vì nó đánh giá loại dữ liệu của dữ liệu đọc, trong khi
>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

9 luôn coi đầu vào là một chuỗi. Vì vậy, luôn luôn sử dụng hàm
>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

6 trong Python 2.x.

>>> data=input("enter something : ")
enter something : 100
>>> data
100
>>> type(data)

>>> data=input("enter something : ")
enter something : Hello'
>>> data
'Hello'
>>> type(data)


Dung dịch

Kể từ Python 3,

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 trả về một chuỗi mà bạn phải chuyển đổi rõ ràng thành
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
5s, với
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
5, như thế này

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

Bạn có thể chấp nhận số lượng của bất kỳ cơ sở nào và chuyển đổi chúng trực tiếp sang Base-10 với hàm

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
5, như thế này

>>> data = int(input("Enter a number: "), 8)
Enter a number: 777
>>> data
511
>>> data = int(input("Enter a number: "), 16)
Enter a number: FFFF
>>> data
65535
>>> data = int(input("Enter a number: "), 2)
Enter a number: 10101010101
>>> data
1365

Tham số thứ hai cho biết cơ sở của các số được nhập là gì và sau đó bên trong nó hiểu và chuyển đổi nó. Nếu dữ liệu đã nhập sai, nó sẽ ném

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

7.

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

0

Đối với các giá trị có thể có thành phần phân số, loại sẽ là

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
9 thay vì
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
5:

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

1

Sự khác biệt giữa Python 2 và 3

Bản tóm tắt

  • Hàm
    >>> data=int(input("Enter a Number: "))
    Enter a Number: hello
    Traceback (most recent call last):
      File "", line 1, in 
        data=int(input("Enter a Number: "))
    ValueError: invalid literal for int() with base 10: 'hello'
    
    4 của Python 2 đã đánh giá dữ liệu nhận được, chuyển đổi nó thành một số nguyên ngầm (đọc phần tiếp theo để hiểu hàm ý), nhưng hàm
    >>> data=int(input("Enter a Number: "))
    Enter a Number: hello
    Traceback (most recent call last):
      File "", line 1, in 
        data=int(input("Enter a Number: "))
    ValueError: invalid literal for int() with base 10: 'hello'
    
    4 của Python 3 không làm điều đó nữa.
  • Tương đương với Python 2 của Python 3
    >>> data=int(input("Enter a Number: "))
    Enter a Number: hello
    Traceback (most recent call last):
      File "", line 1, in 
        data=int(input("Enter a Number: "))
    ValueError: invalid literal for int() with base 10: 'hello'
    
    4 là hàm
    while True:
        try:
            data=int(input("Enter a Number: "))
            print ("You entered: ", data)
            break;
        except ValueError:
            print ("Invalid input")
    
    4.

Python 2.x

Có hai chức năng để nhận đầu vào của người dùng, được gọi là

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 và
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4. Sự khác biệt giữa chúng là,
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4 không đánh giá dữ liệu và trả về như hiện tại, ở dạng chuỗi. Nhưng,
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 sẽ đánh giá bất cứ điều gì bạn đã nhập và kết quả đánh giá sẽ được trả lại. Ví dụ,

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

2

Dữ liệu

while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
9 được đánh giá và kết quả là
Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 100
You entered: 100
0. Khi nó đánh giá biểu thức
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
9, nó phát hiện rằng bạn đang thêm hai số và do đó kết quả cũng sẽ có cùng loại
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
5. Vì vậy, việc chuyển đổi loại được thực hiện miễn phí và
Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 100
You entered: 100
0 được trả về do kết quả của
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 và được lưu trữ trong biến
Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 100
You entered: 100
5. Bạn có thể nghĩ về
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 khi
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4 sáng tác với cuộc gọi
Enter a Number: hello
Invalid input
Enter a Number: abcd
Invalid input
Enter a Number: 100
You entered: 100
8.

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

3

Lưu ý: Bạn nên cẩn thận khi bạn đang sử dụng

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 trong Python 2.x. Tôi đã giải thích tại sao một người nên cẩn thận khi sử dụng nó, trong câu trả lời này. you should be careful when you are using
>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 in Python 2.x. I explained why one should be careful when using it, in this answer.

Nhưng,

while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4 không đánh giá đầu vào và trả về như vậy, như một chuỗi.

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

4

Python 3.x

Python 3.x's

>>> data=int(input("Enter a Number: "))
Enter a Number: hello
Traceback (most recent call last):
  File "", line 1, in 
    data=int(input("Enter a Number: "))
ValueError: invalid literal for int() with base 10: 'hello'
4 và Python 2.x's
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4 tương tự nhau và
while True:
    try:
        data=int(input("Enter a Number: "))
        print ("You entered: ", data)
        break;
    except ValueError:
        print ("Invalid input")
4 không có sẵn trong Python 3.x.

>>> data=int(input("Enter a Number: "))
Enter a Number: 100
>>> data
100
>>> type(data)

5