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]
8while 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àyx = 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]
1Sự khác biệt giữa Python 2 và 3
Bản tóm tắt
- Hàm
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.>>> 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'
- Tương đương với Python 2 của Python 3
4 là 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.while True: try: data=int[input["Enter a Number: "]] print ["You entered: ", data] break; except ValueError: print ["Invalid input"]
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]
2Dữ 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]
3Lưu ý: Bạn nên cẩn thận khi bạn đang sử dụng
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'
>>> 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]
4Python 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