Đầu vào () có được hỗ trợ trong python 3 không?

Tương tác người dùng là một phần thiết yếu của nhiều chương trình. Các trang web và ứng dụng mà chúng ta sử dụng hàng ngày cung cấp nhiều cách để tương tác với chúng, thường cho phép người dùng cung cấp thông tin đầu vào của riêng họ theo nhiều cách khác nhau

Đối với các chương trình chạy trên dòng lệnh, ngôn ngữ lập trình thường cung cấp cách nhắc người dùng cung cấp một số đầu vào đã nhập. Đầu vào do người dùng cung cấp này sau đó có thể được lưu trữ trong một biến trong mã và được sử dụng trong quy trình của chương trình. Python đã bao gồm chức năng này trong nhiều năm

Tuy nhiên, khi Python 2 được thay thế bởi Python 3, những thay đổi lớn đã được thực hiện. Những thay đổi này bao gồm các chức năng nhập của người dùng. Điều này có thể khiến các nhà phát triển bối rối khi theo dõi phương pháp chính xác để sử dụng cho đầu vào của người dùng trong các chương trình dòng lệnh Python

Trong bài viết này, chúng tôi sẽ xem xét cách chấp nhận đầu vào của người dùng trong Python 2 và Python 3. Chúng tôi sẽ xem xét những gì đã thay đổi trong Python 3 và thảo luận về lý do tại sao những thay đổi này được thực hiện

hàm raw_input[] trong Python 2

Python 2 bao gồm chức năng tích hợp sẵn

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

1, để nhắc người dùng dòng lệnh cho chuỗi đầu vào của người dùng. Hàm này nhắc người dùng nhập một số văn bản tại dòng lệnh và trả về văn bản đó dưới dạng một chuỗi

Cách phổ biến nhất để sử dụng chức năng này là gán kết quả của nó cho một biến, sau đó thực hiện một số hành động với dữ liệu đó

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>

Ở dòng thứ ba của đoạn mã trên, hàm raw_input[] nhắc người dùng nhập một giá trị và lưu trữ giá trị đó dưới dạng một chuỗi trong biến

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

2. Điều quan trọng cần nhớ là raw_input[] luôn trả về một chuỗi, ngay cả khi người dùng nhập các loại giá trị khác, chẳng hạn như một số

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

Nếu người dùng không được hướng dẫn rằng chương trình đang đợi họ nhập dữ liệu vào, họ có thể nghĩ rằng chương trình đang bị treo hoặc bị lỗi

Câu lệnh

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

3 có thể được sử dụng để thông báo cho người dùng rằng họ phải nhập một số giá trị

>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'

Trong ví dụ trên, chúng tôi đã thực hiện điều này trong Python 2 mà không cần thêm '\n' [ký tự dòng cuối] trong thông báo được in, bằng cách sử dụng hàm

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

3 từ Python 3. Điều này đã được thực hiện bằng cách truy cập các cải tiến trong tương lai thông qua thư viện
>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

5. Điều này viết tin nhắn của bạn cho người dùng trong chức năng in trước chức năng raw_input[], như được hiển thị ở trên

Tuy nhiên, điều này thực sự không cần thiết vì bạn có thể thực hiện tác vụ này dễ dàng hơn rất nhiều với một đối số trong hàm raw_input[] trong Python 2. Đối số này là một chuỗi được hiển thị cho người dùng để nhắc họ nhập dữ liệu của người dùng, vì vậy họ biết rằng họ cần nhập một số dữ liệu. Ví dụ

________số 8

Tuy nhiên, nếu bạn có các yêu cầu định dạng nghiêm ngặt đối với nhiều dòng lời nhắc, thì có thể hữu ích khi sử dụng cả câu lệnh in và đối số raw_input[]

hàm input[] trong Python 2

Python 2 có một hàm tích hợp khác để nhận đầu vào của người dùng, hàm

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

6. Sự khác biệt chính giữa raw_input[] và input[] là kiểu dữ liệu của giá trị trả về của hàm. Hàm raw_input[] cụ thể trả về đầu vào của người dùng dưới dạng một chuỗi, trong khi hàm input[] có thể chấp nhận các ký tự Python và trả về nhiều kiểu dữ liệu Python. Nó thậm chí có thể trả về kết quả của một biểu thức mã Python [đó là một trong những lý do khiến nó bị xóa khỏi Python 3 vì lý do bảo mật]

Điều này có vẻ khó hiểu lúc đầu. Tuy nhiên, khá nhiều là hàm input[] có thể nhận các loại dữ liệu khác nhau, chẳng hạn như số nguyên, danh sách, từ điển, v.v. tùy thuộc vào đầu vào của người dùng. Hãy xem một ví dụ để hiểu rõ hơn về nó

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>
0

Khi hàm input[] nhắc nhập, nếu người dùng nhập số nguyên 12, giá trị 12 được lưu dưới dạng số nguyên trong biến

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

7. Điều này sẽ được chuyển đổi thành một chuỗi khi sử dụng hàm raw_input[], như chúng ta đã thấy trước đây. Tương tự, một danh sách được lưu trữ trong biến
>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

8 nếu người dùng nhập nó ở dạng Pythonic theo nghĩa đen, bao gồm cả dấu ngoặc vuông. Danh sách này có thể được sử dụng như một danh sách Python bình thường

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>
3

Cho phép người dùng nhập các cấu trúc dữ liệu tùy ý thoạt nhìn có vẻ hữu ích, nhưng nó có các vấn đề lớn và đã bị xóa trong Python 3. Hãy xem tại sao

Tại sao input[] ban đầu bị xóa khỏi Python?

Đầu tiên, chúng ta nên làm rõ rằng hàm input[] trong Python 2 hoàn toàn khác với hàm input[] trong Python 3. Như chúng tôi đã đề cập trước đây, Python 2 bao gồm cả raw_input[] [luôn chuyển đổi đầu vào của người dùng thành kiểu dữ liệu chuỗi] và input[] chấp nhận kiểu dữ liệu do người dùng cung cấp

Python 3,

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

6 là tùy chọn duy nhất tồn tại, nhưng hơi khó hiểu, nó hoạt động giống như raw_input[] từ Python 2 - nghĩa là - nó chuyển đổi tất cả đầu vào của người dùng thành kiểu dữ liệu chuỗi

Lý do chính khiến chức năng ban đầu của hàm input[] bị xóa trong Python 3 là để bảo mật. Hàm input[] từ Python 2 về cơ bản cho phép người dùng thực thi mã thô, cung cấp cho người dùng khả năng thao tác mã và hoạt động bên trong của chương trình

Ví dụ: trong Python 2, người dùng có thể thực thi một hàm từ dấu nhắc input[]

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>
5

Cung cấp cho người dùng quá nhiều quyền lực có thể nguy hiểm và nó có thể được sử dụng với mục đích xấu, do đó đã bị xóa trong Python 3

hàm input[] trong Python 3

Hàm

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

6 trong Python 3 hoàn toàn giống với hàm raw_input[] trong Python 2, chỉ khác tên. Bạn có thể sử dụng hàm input[] trong Python 3 giống như hàm raw_input[] trong Python 2

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>
7

Ở đây bạn có thể thấy rằng input[] luôn trả về một chuỗi trong Python 3 và chấp nhận một đối số chuỗi [dấu nhắc] giống như raw_input[]

Đầu vào người dùng nhiều dòng

Hàm input[] của Python 3 [và raw_input[] của Python 2] chỉ có thể lưu trữ một dòng đầu vào của người dùng tại một thời điểm. Sử dụng ký tự ________ 51 [dòng mới] trong dấu nhắc đầu vào cũng không hoạt động

>>> # Python 2
>>> fruit = raw_input[]
apples
>>> print[fruit]
apples
>>>
9

Và cũng sai lầm khi cho rằng người dùng biết ký tự

>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'
1 là gì. Nhưng với một vòng lặp while đơn giản, chúng ta có thể tạo một lời nhắc người dùng nhiều dòng trực quan

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

1

Tại đây, trước tiên bạn tạo một danh sách

>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'
3 để lưu trữ tất cả các dòng người dùng. Sau đó, bạn phải thiết lập một vòng lặp while vô hạn, vòng lặp này sẽ nhắc người dùng nhập liệu lặp đi lặp lại và lưu trữ dữ liệu nhập vào trong danh sách
>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'
3. Vòng lặp sẽ kết thúc khi người dùng nhập chữ "END". Bạn cũng nên thông báo cho người dùng cách kết thúc lời nhắc của người dùng bằng thông báo in

Tiếp theo, bạn cần định dạng chính xác đầu vào của người dùng

>>> # Python 2
>>> num = raw_input[]
12
>>> num
'12'
>>> type[num]

0

Sau đó, bạn có thể nối các dòng trong danh sách

>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'
3 bằng phương thức chuỗi
>>> # Python 2
>>> from __future__ import print_function # Access Python 3 print function in Python 2
>>> 
>>> def getInput[]:
..     print["Enter name of a fruit: ", end=""]
..     fruit = raw_input[]
..     return fruit
.. 
>>> fruit = getInput[]
Enter name of a fruit: apple
>>> fruit
'apple'
6 như hình trên. Điều này sẽ cho phép bạn lưu trữ đầu vào nhiều dòng của người dùng trong một biến

Bản tóm tắt

Trong bài viết này, chúng tôi đã thảo luận về các chức năng khác nhau mà bạn có thể sử dụng trong Python để nhận đầu vào của người dùng từ dòng lệnh

Đầu tiên, bạn đã thấy cách sử dụng các hàm nhập của người dùng trong Python 2. raw_input[] và đầu vào[]. Sau đó, bạn đã thấy tại sao chức năng của hàm input[] trong Python 2 đã bị loại bỏ trong Python 3. Tiếp theo, bạn đã xem cách sử dụng hàm input[] trong Python 3, hàm này giống với hàm raw_input[] trong Python 2. Cuối cùng, bạn đã thấy cách bạn có thể chấp nhận và định dạng đầu vào nhiều dòng của người dùng bằng vòng lặp while

Bước tiếp theo

Nếu bạn muốn tìm hiểu thêm về những kiến ​​thức cơ bản về viết mã, lập trình và phát triển phần mềm, hãy xem Sách hướng dẫn những điều cơ bản về mã hóa dành cho nhà phát triển của chúng tôi, nơi chúng tôi đề cập đến các ngôn ngữ, khái niệm và công cụ thiết yếu mà bạn sẽ cần để trở thành một nhà phát triển chuyên nghiệp

Cảm ơn và mã hóa hạnh phúc. Chúng tôi hy vọng bạn thích bài viết này. Nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào, vui lòng liên hệ với jacob@initialcommit. io

Đầu vào [] có được tích hợp sẵn trong Python không?

input[] Hàm input[] tích hợp nhắc người dùng về dữ liệu được chuyển đổi thành và trả về dưới dạng chuỗi.

Loại hàm nào là input[] trong Python?

Có hai chức năng có thể được sử dụng để đọc dữ liệu hoặc đầu vào từ người dùng trong python. raw_input[] và đầu vào[]. Các kết quả có thể được lưu trữ vào một biến. raw_input[] – Nó đọc đầu vào hoặc lệnh và trả về một chuỗi. input[] – Đọc đầu vào và trả về một loại python như list, tuple, int, v.v. .

Hàm input[] là gì?

Hàm input[] cho phép người dùng chèn một giá trị vào chương trình . input[] trả về một giá trị chuỗi. Bạn có thể chuyển đổi nội dung của đầu vào bằng bất kỳ loại dữ liệu nào. Chẳng hạn, bạn có thể chuyển đổi giá trị mà người dùng chèn thành số dấu phẩy động. input[] được hỗ trợ trong Python 3.

Chúng tôi có thể lấy dữ liệu đầu vào bằng Python không?

Python cho phép người dùng nhập dữ liệu . Điều đó có nghĩa là chúng tôi có thể yêu cầu người dùng nhập dữ liệu. Phương thức này hơi khác một chút trong Python 3. 6 so với Python 2. 7. Trăn 3. 6 sử dụng phương thức input[].

Chủ Đề