Chọn đầu vào Python

Mô-đun này cung cấp quyền truy cập vào các chức năng select()poll() có sẵn trong hầu hết các hệ điều hành, devpoll() có sẵn trên Solaris và các dẫn xuất, epoll() có sẵn trên Linux 2. 5+ và kqueue() có sẵn trên hầu hết các BSD. Lưu ý rằng trên Windows, nó chỉ hoạt động với ổ cắm; . Nó không thể được sử dụng trên các tệp thông thường để xác định xem tệp đã phát triển kể từ lần đọc cuối cùng hay chưa

Ghi chú

Mô-đun cho phép ghép kênh I/O ở mức cao và hiệu quả, được xây dựng dựa trên nguyên mẫu của mô-đun. Người dùng được khuyến khích sử dụng mô-đun thay thế, trừ khi họ muốn kiểm soát chính xác các nguyên mẫu cấp hệ điều hành được sử dụng

không phải Emscripten, không phải WASI

Mô-đun này không hoạt động hoặc không khả dụng trên nền tảng WebAssugging wasm32-emscriptenselect()0. Xem để biết thêm thông tin

Mô-đun xác định như sau

ngoại lệ chọn. lỗi

Một bí danh không dùng nữa của

Đã thay đổi trong phiên bản 3. 3. Sau PEP 3151, lớp này được đặt bí danh là.

chọn. devpoll()

(Chỉ được hỗ trợ trên Solaris và các công cụ phái sinh. ) Trả về một đối tượng thăm dò select()3;

Các đối tượng devpoll() được liên kết với số lượng bộ mô tả tệp được phép tại thời điểm khởi tạo. Nếu chương trình của bạn giảm giá trị này, devpoll() sẽ thất bại. Nếu chương trình của bạn tăng giá trị này, devpoll() có thể trả về một danh sách không đầy đủ các bộ mô tả tệp đang hoạt động

Bộ mô tả tệp mới là

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 4. Bộ mô tả tệp mới hiện không thể kế thừa.

chọn. epoll(sizehint=- 1 , cờ=0)

(Chỉ hỗ trợ trên Linux 2. 5. 44 và mới hơn. ) Trả về một đối tượng bỏ phiếu cạnh, có thể được sử dụng làm giao diện Kích hoạt cạnh hoặc Cấp độ cho các sự kiện I/O

sizehint thông báo cho epoll về số lượng sự kiện dự kiến ​​sẽ được đăng ký. Nó phải là số dương hoặc select()7 để sử dụng giá trị mặc định. Nó chỉ được sử dụng trên các hệ thống cũ hơn khi không có select()8;

cờ không được dùng nữa và hoàn toàn bị bỏ qua. Tuy nhiên, khi được cung cấp, giá trị của nó phải là select()9 hoặc poll()0, nếu không thì giá trị của nó là select()1

Xem phần bên dưới để biết các phương pháp được hỗ trợ bởi các đối tượng epolling

poll()2 đối tượng hỗ trợ giao thức quản lý bối cảnh. khi được sử dụng trong một câu lệnh, bộ mô tả tệp mới sẽ tự động đóng ở cuối khối

Bộ mô tả tệp mới là

Đã thay đổi trong phiên bản 3. 3. Đã thêm tham số cờ.

Đã thay đổi trong phiên bản 3. 4. Hỗ trợ cho tuyên bố đã được thêm vào. Bộ mô tả tệp mới hiện không thể kế thừa.

Không dùng nữa kể từ phiên bản 3. 4. Tham số cờ. poll()0 hiện được sử dụng theo mặc định. Sử dụng để làm cho bộ mô tả tệp có thể kế thừa.

chọn. thăm dò ý kiến()

(Không được hỗ trợ bởi tất cả các hệ điều hành. ) Trả về một đối tượng thăm dò, hỗ trợ đăng ký và hủy đăng ký các bộ mô tả tệp, sau đó thăm dò chúng cho các sự kiện I/O;

chọn. kqueue()

(Chỉ được hỗ trợ trên BSD. ) Trả về một đối tượng hàng đợi hạt nhân;

Bộ mô tả tệp mới là

Đã thay đổi trong phiên bản 3. 4. Bộ mô tả tệp mới hiện không thể kế thừa.

chọn. kevent(nhận dạng , bộ lọc=KQ_FILTER_READ , flags=KQ_EV_ADD , flags=0 , dữ liệu=0 , udata=0)

(Chỉ được hỗ trợ trên BSD. ) Trả về một đối tượng sự kiện hạt nhân;

chọn. select(rlist , wlist , xlist[ , hết giờ])

Đây là một giao diện đơn giản cho cuộc gọi hệ thống Unix select(). Ba đối số đầu tiên là các lần lặp lại của 'đối tượng có thể chờ đợi'. hoặc các số nguyên đại diện cho các bộ mô tả tệp hoặc các đối tượng có phương thức không tham số có tên trả về một số nguyên như vậy

  • danh sách. đợi cho đến khi sẵn sàng để đọc

  • danh sách. đợi cho đến khi sẵn sàng để viết

  • xlist. đợi một “điều kiện đặc biệt” (xem trang hướng dẫn để biết những gì hệ thống của bạn coi là một điều kiện như vậy)

Cho phép lặp lại trống, nhưng việc chấp nhận ba lần lặp trống phụ thuộc vào nền tảng. (Nó được biết là hoạt động trên Unix nhưng không hoạt động trên Windows. ) Đối số thời gian chờ tùy chọn chỉ định thời gian chờ dưới dạng số dấu phẩy động tính bằng giây. Khi đối số hết thời gian chờ bị bỏ qua, các khối chức năng cho đến khi ít nhất một bộ mô tả tệp sẵn sàng. Giá trị hết thời gian bằng 0 chỉ định một cuộc thăm dò và không bao giờ chặn

Giá trị trả về là một bộ ba danh sách các đối tượng đã sẵn sàng. tập hợp con của ba đối số đầu tiên. Khi hết thời gian chờ mà bộ mô tả tệp chưa sẵn sàng, ba danh sách trống sẽ được trả về

Trong số các loại đối tượng được chấp nhận trong các lần lặp có Python (e. g. poll()9 hoặc các đối tượng được trả về bởi hoặc ), các đối tượng ổ cắm được trả về bởi. Bạn cũng có thể tự định nghĩa một lớp trình bao bọc, miễn là nó có một phương thức phù hợp (thực sự trả về một bộ mô tả tệp, không chỉ là một số nguyên ngẫu nhiên)

Ghi chú

Các đối tượng tệp trên Windows không được chấp nhận, nhưng ổ cắm thì. Trên Windows, hàm select() cơ bản được cung cấp bởi thư viện WinSock và không xử lý các bộ mô tả tệp không bắt nguồn từ WinSock

Đã thay đổi trong phiên bản 3. 5. Chức năng hiện được thử lại với thời gian chờ được tính toán lại khi bị gián đoạn bởi một tín hiệu, trừ khi bộ xử lý tín hiệu đưa ra một ngoại lệ (xem PEP 475 để biết lý do), thay vì đưa ra.

chọn. PIPE_BUF

Số lượng byte tối thiểu có thể được ghi mà không bị chặn vào một đường ống khi đường ống đó được báo cáo là đã sẵn sàng để ghi bởi hoặc một giao diện khác trong mô-đun này. Điều này không áp dụng cho các loại đối tượng giống như tệp khác, chẳng hạn như ổ cắm

Giá trị này được POSIX đảm bảo ít nhất là 512

Unix

Mới trong phiên bản 3. 2

select()3 Đối tượng thăm dò ý kiến

Solaris và các công cụ phái sinh có select()3. Trong khi select() là O(bộ mô tả tệp cao nhất) và poll() là O(số bộ mô tả tệp), thì select()3 là O(bộ mô tả tệp đang hoạt động)

select()3 hành vi rất gần với đối tượng poll() tiêu chuẩn

devpoll. đóng()

Đóng bộ mô tả tệp của đối tượng bỏ phiếu

Mới trong phiên bản 3. 4

devpoll. đã đóng

epoll()5 nếu đối tượng bỏ phiếu đã đóng

Mới trong phiên bản 3. 4

devpoll. fileno()

Trả về số mô tả tệp của đối tượng bỏ phiếu

Mới trong phiên bản 3. 4

devpoll. đăng ký(fd[ , eventmask])

Đăng ký một bộ mô tả tệp với đối tượng bỏ phiếu. Các lệnh gọi phương thức trong tương lai sau đó sẽ kiểm tra xem bộ mô tả tệp có bất kỳ sự kiện I/O nào đang chờ xử lý hay không. fd có thể là số nguyên hoặc đối tượng có phương thức trả về số nguyên. Các đối tượng tệp thực hiện poll()8, vì vậy chúng cũng có thể được sử dụng làm đối số

eventmask là một bitmask tùy chọn mô tả loại sự kiện bạn muốn kiểm tra. Các hằng giống với đối tượng poll(). Giá trị mặc định là sự kết hợp của các hằng số kqueue()0, kqueue()1 và kqueue()2

Cảnh báo

Đăng ký một bộ mô tả tệp đã được đăng ký không phải là lỗi, nhưng kết quả là không xác định. Hành động thích hợp là hủy đăng ký hoặc sửa đổi nó trước. Đây là một sự khác biệt quan trọng so với poll()

devpoll. sửa đổi(fd[ , eventmask])

Phương pháp này thực hiện một theo sau bởi một. Đó là (một chút) hiệu quả hơn khi làm điều tương tự một cách rõ ràng

devpoll. hủy đăng ký(fd)

Xóa bộ mô tả tệp đang được theo dõi bởi một đối tượng bỏ phiếu. Cũng giống như phương thức, fd có thể là số nguyên hoặc đối tượng với phương thức trả về số nguyên

Cố gắng xóa bộ mô tả tệp chưa từng được đăng ký sẽ được bỏ qua một cách an toàn

devpoll. thăm dò ý kiến([hết thời gian])

Thăm dò tập hợp các bộ mô tả tệp đã đăng ký và trả về một danh sách trống có thể chứa kqueue()8 2 bộ cho các bộ mô tả có sự kiện hoặc lỗi cần báo cáo. fd là bộ mô tả tệp và sự kiện là một bitmask với các bit được đặt cho các sự kiện được báo cáo cho bộ mô tả đó — kqueue()0 cho đầu vào đang chờ, kqueue()2 để chỉ ra rằng bộ mô tả có thể được ghi vào, v.v. Một danh sách trống cho biết rằng cuộc gọi đã hết thời gian chờ và không có bộ mô tả tệp nào có bất kỳ sự kiện nào để báo cáo. Nếu thời gian chờ được đưa ra, nó chỉ định khoảng thời gian tính bằng mili giây mà hệ thống sẽ đợi các sự kiện trước khi quay lại. Nếu thời gian chờ bị bỏ qua, -1 hoặc , cuộc gọi sẽ bị chặn cho đến khi có sự kiện cho đối tượng thăm dò ý kiến ​​này

Đã thay đổi trong phiên bản 3. 5. Chức năng hiện được thử lại với thời gian chờ được tính toán lại khi bị gián đoạn bởi một tín hiệu, trừ khi bộ xử lý tín hiệu đưa ra một ngoại lệ (xem PEP 475 để biết lý do), thay vì đưa ra.

Đối tượng thăm dò kích hoạt cạnh và cấp độ (epoll)

https. //linux. chết. net/man/4/epoll

mặt nạ sự kiện

Không thay đổi

Nghĩa

selectors3

Có sẵn để đọc

selectors4

Có sẵn để viết

selectors5

Dữ liệu khẩn cấp để đọc

selectors6

Tình trạng lỗi xảy ra trên assoc. fd

selectors7

gác máy xảy ra trên assoc. fd

selectors8

Đặt hành vi Kích hoạt cạnh, mặc định là hành vi Kích hoạt cấp độ

selectors9

Đặt hành vi một lần. Sau khi một sự kiện được rút ra, fd bị vô hiệu hóa nội bộ

select0

Chỉ đánh thức một đối tượng epoll khi fd được liên kết có một sự kiện. Giá trị mặc định (nếu cờ này không được đặt) là đánh thức tất cả các đối tượng epoll đang bỏ phiếu trên một fd

select1

Luồng kết nối đóng ngang hàng ổ cắm hoặc tắt ghi một nửa kết nối

select2

Tương đương với selectors3

select4

Dải dữ liệu ưu tiên có thể được đọc

select5

Tương đương với selectors4

select7

Dữ liệu ưu tiên có thể được viết

select8

Làm ngơ

Mới trong phiên bản 3. 6. ______45_______0 đã được thêm vào. Nó chỉ được hỗ trợ bởi Linux Kernel 4. 5 hoặc muộn hơn.

thăm dò ý kiến. đóng()

Đóng bộ mô tả tệp điều khiển của đối tượng epoll

thăm dò ý kiến. đã đóng

epoll()5 nếu đối tượng epoll đã đóng

thăm dò ý kiến. fileno()

Trả về số mô tả tệp của điều khiển fd

thăm dò ý kiến. fromfd(fd)

Tạo một đối tượng epoll từ một bộ mô tả tệp đã cho

thăm dò ý kiến. đăng ký(fd[ , eventmask])

Đăng ký một bộ mô tả fd với đối tượng epoll

thăm dò ý kiến. sửa đổi(fd , mặt nạ sự kiện)

Sửa đổi bộ mô tả tệp đã đăng ký

thăm dò ý kiến. hủy đăng ký(fd)

Xóa bộ mô tả tệp đã đăng ký khỏi đối tượng epoll

Đã thay đổi trong phiên bản 3. 9. Phương thức không còn bỏ qua lỗi.

thăm dò ý kiến. thăm dò ý kiến(hết thời gian=Không, maxevents=- 1)

Chờ các sự kiện. thời gian chờ tính bằng giây (float)

Đã thay đổi trong phiên bản 3. 5. Chức năng hiện được thử lại với thời gian chờ được tính toán lại khi bị gián đoạn bởi một tín hiệu, trừ khi bộ xử lý tín hiệu đưa ra một ngoại lệ (xem PEP 475 để biết lý do), thay vì đưa ra.

Đối tượng thăm dò ý kiến

Cuộc gọi hệ thống poll(), được hỗ trợ trên hầu hết các hệ thống Unix, cung cấp khả năng mở rộng tốt hơn cho các máy chủ mạng phục vụ nhiều, nhiều máy khách cùng một lúc. poll() chia tỷ lệ tốt hơn vì lệnh gọi hệ thống chỉ yêu cầu liệt kê các bộ mô tả tệp quan tâm, trong khi select() xây dựng một bitmap, bật bit cho các fds quan tâm và sau đó, toàn bộ bitmap phải được quét lại một cách tuyến tính. select() là O(bộ mô tả tệp cao nhất), trong khi poll() là O(số bộ mô tả tệp)

thăm dò ý kiến. đăng ký(fd[ , eventmask])

Đăng ký một bộ mô tả tệp với đối tượng bỏ phiếu. Các lệnh gọi phương thức trong tương lai sau đó sẽ kiểm tra xem bộ mô tả tệp có bất kỳ sự kiện I/O nào đang chờ xử lý hay không. fd có thể là số nguyên hoặc đối tượng có phương thức trả về số nguyên. Các đối tượng tệp thực hiện poll()8, vì vậy chúng cũng có thể được sử dụng làm đối số

eventmask là một bitmask tùy chọn mô tả loại sự kiện bạn muốn kiểm tra và có thể là sự kết hợp của các hằng số kqueue()0, kqueue()1 và kqueue()2, được mô tả trong bảng bên dưới. Nếu không được chỉ định, giá trị mặc định được sử dụng sẽ kiểm tra cả 3 loại sự kiện

Không thay đổi

Nghĩa

kqueue()0

Có dữ liệu để đọc

kqueue()1

Có dữ liệu khẩn cấp để đọc

kqueue()2

Sẵn sàng cho đầu ra. viết sẽ không chặn

wasm32-emscripten7

tình trạng lỗi của một số loại

wasm32-emscripten8

Treo lên

wasm32-emscripten9

Luồng kết nối đóng ngang hàng ổ cắm hoặc tắt ghi một nửa kết nối

select()00

Yêu cầu không hợp lệ. mô tả không mở

Đăng ký bộ mô tả tệp đã được đăng ký không phải là lỗi và có tác dụng tương tự như đăng ký bộ mô tả chính xác một lần

thăm dò ý kiến. sửa đổi(fd , mặt nạ sự kiện)

Sửa đổi một fd đã đăng ký. Điều này có tác dụng tương tự như select()01. Cố gắng sửa đổi một bộ mô tả tệp chưa bao giờ được đăng ký sẽ gây ra một ngoại lệ với errno select()03 được đưa ra

thăm dò ý kiến. hủy đăng ký(fd)

Xóa bộ mô tả tệp đang được theo dõi bởi một đối tượng bỏ phiếu. Cũng giống như phương thức, fd có thể là số nguyên hoặc đối tượng với phương thức trả về số nguyên

Cố gắng xóa một bộ mô tả tệp chưa từng được đăng ký sẽ gây ra một ngoại lệ

thăm dò ý kiến. thăm dò ý kiến([hết thời gian])

Thăm dò tập hợp các bộ mô tả tệp đã đăng ký và trả về một danh sách trống có thể chứa kqueue()8 2 bộ cho các bộ mô tả có sự kiện hoặc lỗi cần báo cáo. fd là bộ mô tả tệp và sự kiện là một bitmask với các bit được đặt cho các sự kiện được báo cáo cho bộ mô tả đó — kqueue()0 cho đầu vào đang chờ, kqueue()2 để chỉ ra rằng bộ mô tả có thể được ghi vào, v.v. Một danh sách trống cho biết rằng cuộc gọi đã hết thời gian chờ và không có bộ mô tả tệp nào có bất kỳ sự kiện nào để báo cáo. Nếu thời gian chờ được đưa ra, nó chỉ định khoảng thời gian tính bằng mili giây mà hệ thống sẽ đợi các sự kiện trước khi quay lại. Nếu thời gian chờ bị bỏ qua, phủ định hoặc , cuộc gọi sẽ bị chặn cho đến khi có một sự kiện cho đối tượng thăm dò ý kiến ​​này

Đã thay đổi trong phiên bản 3. 5. Chức năng hiện được thử lại với thời gian chờ được tính toán lại khi bị gián đoạn bởi một tín hiệu, trừ khi bộ xử lý tín hiệu đưa ra một ngoại lệ (xem PEP 475 để biết lý do), thay vì đưa ra.

Đối tượng xếp hàng

kqueue. đóng()

Đóng bộ mô tả tệp điều khiển của đối tượng kqueue

kqueue. đã đóng

epoll()5 nếu đối tượng kqueue bị đóng

kqueue. fileno()

Trả về số mô tả tệp của điều khiển fd

kqueue. fromfd(fd)

Tạo một đối tượng kqueue từ một bộ mô tả tệp đã cho

kqueue. kiểm soát(danh sách thay đổi , max_events[, timeout]) eventlist

Giao diện cấp thấp đến kevent

  • danh sách thay đổi phải là một đối tượng có thể lặp lại của kevent hoặc selectors1

  • max_events phải là 0 hoặc một số nguyên dương

  • thời gian chờ tính bằng giây (có thể thả nổi);

Đã thay đổi trong phiên bản 3. 5. Chức năng hiện được thử lại với thời gian chờ được tính toán lại khi bị gián đoạn bởi một tín hiệu, trừ khi bộ xử lý tín hiệu đưa ra một ngoại lệ (xem PEP 475 để biết lý do), thay vì đưa ra.

đối tượng kevent

https. //www. freebsd. org/cgi/man. cgi?query=kqueue&sektion=2

kevent. nhận dạng

Giá trị được sử dụng để xác định sự kiện. Việc giải thích phụ thuộc vào bộ lọc nhưng nó thường là bộ mô tả tệp. Trong hàm tạo, id có thể là một int hoặc một đối tượng với một phương thức. kevent lưu trữ số nguyên trong nội bộ

*input() trong Python là gì?

Python 3 – hàm input() . Bất cứ điều gì bạn nhập làm đầu vào, hàm nhập sẽ chuyển đổi nó thành một chuỗi. Nếu bạn nhập một giá trị số nguyên thì hàm input() vẫn chuyển đổi nó thành một chuỗi. cú pháp. đầu vào (dấu nhắc)take input from the user. Whatever you enter as input, the input function converts it into a string. If you enter an integer value still input() function convert it into a string. Syntax: input(prompt)

Làm cách nào để cho phép người dùng chọn đầu vào từ danh sách hữu hạn trong Python?

Hãy xem cách chấp nhận danh sách Python làm đầu vào mà không sử dụng phương thức split(). .
Đầu tiên, tạo một danh sách trống
Tiếp theo, chấp nhận kích thước danh sách từ người dùng (tôi. e. , số phần tử trong một danh sách)
Chạy vòng lặp cho đến hết kích thước của danh sách bằng cách sử dụng hàm for loop và range()
sử dụng hàm input() để nhận số từ người dùng