Làm cách nào để kiểm tra xem một giá trị có nằm trong phạm vi python không?
Hướng dẫn này giải thích chức năng Phạm vi Python là gì và cách sử dụng nó trong các chương trình của bạn. Đồng thời tìm hiểu sự khác biệt giữa phạm vi() và xrange() Show
Một phạm vi là một khoảng thời gian gần giữa hai điểm. Chúng tôi sử dụng phạm vi ở mọi nơi tôi. e. từ ngày 1 đến ngày 31, từ tháng 8 đến tháng 12, hoặc từ ngày 10 đến 15. Phạm vi giúp chúng tôi đính kèm một nhóm số, chữ cái, v.v. mà chúng tôi có thể sử dụng sau này cho các nhu cầu khác nhau Trong Python, có một hàm sẵn có tên là range() trả về một đối tượng tạo ra một chuỗi số (số nguyên) mà sau này sẽ được sử dụng trong chương trình của chúng ta => Kiểm tra TẤT CẢ các hướng dẫn về Python tại đây Bạn sẽ học được gì
Hàm phạm vi Python()Hàm range() trả về một đối tượng trình tạo có thể tạo ra một chuỗi các số nguyên Trong phần này, chúng ta sẽ thảo luận về hàm range() trong Python và cú pháp của nó. Trước khi chúng tôi đi sâu vào phần này, điều quan trọng cần lưu ý là Python 2. x có 2 loại hàm phạm vi i. e. xrange() và range(). Cả hai đều được gọi và sử dụng theo cùng một cách nhưng với đầu ra khác nhau Phạm vi () đã bị loại bỏ và xrange () đã được triển khai lại trong Python 3. x và phạm vi được đặt tên(). Chúng ta sẽ đi vào xrange() sau và bây giờ chúng ta sẽ tập trung vào range() Phạm vi Python() Cú phápNhư đã đề cập trước đây, một phạm vi là một chuỗi các số nguyên giữa 2 điểm cuối Để biết cú pháp của phạm vi, chúng ta có thể xem chuỗi tài liệu của nó từ thiết bị đầu cuối bằng lệnh bên dưới >>> range.__doc__ 'range(stop) -> range object\nrange(start, stop[, step]) -> range object\n\nReturn an object that produces a sequence of integers from start (inclusive)\nto stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.\nstart defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.\nThese are exactly the valid indexes for a list of 4 elements.\nWhen step is given, it specifies the increment (or decrement).' Chú ý dòng đầu tiên range(stop) -> range object\nrange(start, stop[, step]) -> range Các cách khác nhau để xây dựng phạm viCú pháp trên cho thấy hàm range() có thể nhận tối đa 3 tham số Điều này cung cấp cú pháp Python range() với khoảng 3 cách triển khai khác nhau như hình bên dưới NB. Chúng ta nên lưu ý các giá trị mặc định sau cho các tham số khác nhau
#1) phạm vi (dừng)Như đã thấy ở trên, hàm phạm vi nhận một tham số dừng (độc quyền) là một số nguyên cho biết phạm vi sẽ kết thúc ở đâu. Vì vậy, nếu bạn sử dụng phạm vi (7), nó sẽ hiển thị tất cả các số nguyên từ 0 đến 6 Tóm lại, bất cứ khi nào phạm vi () được cung cấp một đối số, đối số đó đại diện cho tham số dừng và tham số bắt đầu và bước sẽ áp dụng các giá trị mặc định của chúng Chế độ xem phạm vi (7) đầu raVí dụ 1. In dãy số nguyên từ 0 đến 6. >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6] #2) phạm vi (bắt đầu, dừng)Ở đây, hàm range() được gọi với hai tham số (bắt đầu và dừng). Các tham số này có thể là bất kỳ số nguyên nào trong đó bắt đầu lớn hơn dừng (bắt đầu > dừng). Tham số đầu tiên (bắt đầu) là điểm bắt đầu của phạm vi và tham số khác (dừng) là điểm kết thúc độc quyền của phạm vi NB. Tham số dừng là độc quyền. Ví dụ: range(5,10) sẽ cho kết quả là một chuỗi từ 5 đến 9, không bao gồm 10. Chế độ xem phạm vi (5,10) đầu raVí dụ 2. Tìm phạm vi giữa hai số, trong đó start=5 và stop=10 >>> list(range(5,10)) [5, 6, 7, 8, 9] #3) phạm vi (bắt đầu, dừng, bước)Ở đây, khi range() nhận 3 đối số, các đối số sẽ biểu diễn các tham số bắt đầu, dừng và bước từ trái sang phải Khi dãy số được tạo, số đầu tiên sẽ là đối số bắt đầu và số cuối cùng của dãy số sẽ là một số trước đối số dừng, được biểu thị dưới dạng điểm dừng – 1 Đối số bước cho biết có bao nhiêu "bước" sẽ phân tách từng số trong chuỗi. Nó có thể là các bước tăng dần hoặc giảm dần Chúng ta nên nhớ rằng theo mặc định, tham số bước mặc định là 1. Vì vậy, nếu có bất kỳ cơ hội nào chúng tôi muốn nó là 1, thì chúng tôi có thể quyết định cung cấp nó một cách rõ ràng hoặc bỏ qua nó NB. Đối số bước không được là 0 hoặc số có dấu phẩy động Xem xét ví dụ bên dưới trong đó start=5, stop=15 và step=3 Chế độ xem phạm vi (5,15. 3) đầu raVí dụ 3. Tìm dãy số từ 5 đến 14, có số gia là 3 >>> list(range(5,15,3)) [5, 8, 11, 14] Sử dụng các bước phủ định với phạm vi() Tham số bước của hàm phạm vi () có thể là một số nguyên âm phạm vi (30, 5, -5). Như trong hình bên dưới, khi sử dụng bước âm, tham số bắt đầu phải cao hơn tham số dừng. Nếu không, chuỗi kết quả sẽ trống Bộ đếm sẽ đếm từ đầu trong khi sử dụng bước để chuyển sang giá trị tiếp theo Hàm phạm vi () có bước âmVí dụ 4. Hãy xem cách một bước phủ định hoạt động khi điểm bắt đầu lớn hơn hoặc nhỏ hơn điểm dừng. >>> list(range(30,5,-5)) # start > stop [30, 25, 20, 15, 10] >>> list(range(5,30,-5)) # start < stop [] Cách sử dụng phạm vi Python()Phạm vi có vị trí của nó trong Python và nó thường được sử dụng trong nhiều chương trình. Trong phần này, chúng ta sẽ khai thác một số cách mà nó có thể được sử dụng Sử dụng phạm vi Python() trong Vòng lặpVòng lặp for là một trong những lĩnh vực phổ biến nhất mà phạm vi () được sử dụng. Câu lệnh vòng lặp for là câu lệnh lặp qua một tập hợp các phần tử. Để tìm hiểu thêm về vòng lặp Python và vòng lặp for, hãy đọc qua hướng dẫn Vòng lặp trong Python Ví dụ 5. Sử dụng vòng lặp for và range(), in ra một dãy số từ 0 đến 9. def rangeOfn(n): for i in range(n): print(i) if __name__ == '__main__': n = 10 rangeOfn(n) đầu ra Ví dụ 5 đưa ra ở trên sử dụng cú pháp phạm vi (dừng). Điều này trả về một đối tượng trình tạo được đưa vào vòng lặp for, vòng lặp này lặp qua đối tượng, trích xuất các mục và in chúng Ví dụ 6. Sử dụng vòng lặp for và range(), in ra dãy số từ 5 đến 9. Ví dụ này sử dụng cú pháp phạm vi (bắt đầu, dừng), trong đó điểm bắt đầu sẽ xác định nơi vòng lặp sẽ bắt đầu (Bao gồm) và điểm dừng nơi vòng lặp sẽ kết thúc (dừng-1) def rangeFromStartToStop(start, stop): for i in range(start, stop): print(i) if __name__ == '__main__': start = 5 # define our start value stop = 10 # define our stop value rangeFromStartToStop(start, stop) đầu ra Ví dụ 7. Sử dụng vòng lặp for và range(), in ra một dãy số từ 5 đến 9 và tăng dần 2. Ví dụ này sử dụng cú pháp phạm vi (bắt đầu, dừng, bước) trong câu lệnh for. Câu lệnh for sẽ bắt đầu đếm tại tham số bắt đầu và sẽ nhảy tới giá trị tiếp theo theo số nguyên bước và sẽ kết thúc tại điểm dừng-1 ________số 8đầu ra Đối với ví dụ cuối cùng của chúng ta trong phần này, chúng ta sẽ xem xét cách các iterable thường được lặp lại. Hãy xem xét ví dụ dưới đây Ví dụ 8. Lặp lại danh sách [3,2,4,5,7,8] và in tất cả các mục của nó. def listItems(myList): # use len() to get the length of the list # the length of the list represents the 'stop' argument for i in range(len(myList)): print(myList[i]) if __name__ == '__main__': myList = [3,2,4,5,7,8] # define our list listItems(myList) đầu ra Sử dụng phạm vi () với Cấu trúc dữ liệuNhư chúng tôi đã đề cập trước đó trong hướng dẫn này, hàm range() trả về một đối tượng (thuộc loại phạm vi) tạo ra một chuỗi các số nguyên từ đầu (bao gồm) đến dừng (không bao gồm) theo từng bước Do đó, việc tự chạy hàm range() sẽ trả về một đối tượng phạm vi có thể lặp lại. Đối tượng này có thể dễ dàng được chuyển đổi thành các cấu trúc dữ liệu khác nhau như Danh sách, Tuple và Set như hình bên dưới Ví dụ 9. Xây dựng danh sách có dãy số nguyên từ 4 đến 60 (bao gồm cả số nguyên) và số gia là 4. range(stop) -> range object\nrange(start, stop[, step]) -> range0 Từ ví dụ 9 ở trên, tất cả những gì chúng ta phải làm là gọi hàm phạm vi trong hàm tạo list() Ví dụ 10. Tạo một bộ với một dãy các số nguyên từ 4 đến 60 (bao gồm cả) và số gia là 4. range(stop) -> range object\nrange(start, stop[, step]) -> range1 Ví dụ 11. Lập tập hợp có dãy số nguyên từ 4 đến 60 (cả dãy) và số tăng là 4. range(stop) -> range object\nrange(start, stop[, step]) -> range2 NB. Chú ý chuỗi kết quả của các số nguyên không có thứ tự. Điều này là do một tập hợp là một tập hợp không có thứ tự Ví dụ 11 này ban đầu có vẻ vô dụng vì đối tượng phạm vi sẽ luôn trả về một chuỗi các số nguyên duy nhất. Vì vậy, chúng ta có thể tự hỏi, tại sao lại đặt trong một hàm tạo set(). Chà, hãy tưởng tượng rằng bạn cần có một tập hợp mặc định chứa một dãy số nguyên mà sau này bạn sẽ thêm một số mục vào đó Phạm vi Python()Như đã đề cập trước xrange() là Python 2. x hoạt động như hàm range() trong 3. phiên bản x Python. Điểm giống nhau duy nhất giữa hai hàm này là chúng tạo ra một dãy số và có thể sử dụng các tham số bắt đầu, dừng và bước Điều quan trọng cần biết là, trong Python 2. x, cả phạm vi() và xrange() đều được xác định, trong đó phạm vi() trả về một đối tượng danh sách trong khi xrange() trả về một đối tượng phạm vi. Tuy nhiên, chuyển sang Python 3. x, phạm vi đã bị giải thể và xrange được triển khai lại và đặt tên cho phạm vi Ví dụ 12. Giá trị trả về của phạm vi và xrange trong Python 2. x range(stop) -> range object\nrange(start, stop[, step]) -> range3 Sự khác biệt giữa phạm vi() và xrange()Trong phần này, chúng ta sẽ không xem xét nhiều về sự khác biệt giữa xrange() và range() trong Python 2. x. Tuy nhiên, chúng ta sẽ xem xét sự khác biệt giữa xrange() của Python 2. x và phạm vi () của Python 3. x Mặc dù xrange() đã được triển khai lại trong Python 3. x dưới dạng phạm vi (), nó đã thêm một số tính năng vào nó và điều đó làm cho nó khác với phiên bản tiền nhiệm Sự khác biệt giữa phạm vi () và xrange () có thể liên quan đến sự khác biệt về hoạt động, mức tiêu thụ bộ nhớ, loại trả về và hiệu suất. Nhưng trong phần này, chúng ta sẽ xem xét sự khác biệt về hoạt động và mức tiêu thụ bộ nhớ NB
trăn2 Thiết bị đầu cuối shell Python 3 bằng lệnh trăn3
#1) Sự khác biệt trong hoạt độngxrange và range hoạt động theo cùng một cách. Cả hai đều có cùng cú pháp và trả về các đối tượng có thể tạo ra các chuỗi số nguyên Ví dụ 13. Sự khác biệt về hoạt động giữa xrange và range Giải pháp 13. 1. Trăn 3. x range(stop) -> range object\nrange(start, stop[, step]) -> range4 Giải pháp 13. 2. Trăn 2. x range(stop) -> range object\nrange(start, stop[, step]) -> range5 Từ các giải pháp trên, chúng tôi thấy rằng các loại được đặt tên khác nhau. Ngoài ra, đối số dừng được tăng lên cho xrange. Cả hai đều có thể trả về một trình lặp từ iter() nhưng phương thức next() tích hợp sẵn của iter chỉ hoạt động cho xrange trong khi cả hai đều hỗ trợ hàm next() tích hợp Trong trường hợp này, cả hai hoạt động chính xác theo cùng một cách. Tuy nhiên, chúng tôi có một số thao tác danh sách có thể áp dụng cho phạm vi nhưng không áp dụng cho xrange. Nhớ lại rằng Python 2. x có cả xrange và range nhưng range ở đây thuộc loại list Vì vậy, trong khi chuyển sang Python 3. x, xrange đã được triển khai lại và một số thuộc tính phạm vi đã được thêm vào nó Ví dụ 14. Kiểm tra xem xrange và range có hỗ trợ lập chỉ mục và cắt không. Giải pháp 14. 1. Trăn 3. x range(stop) -> range object\nrange(start, stop[, step]) -> range6 Giải pháp 14. 2. Trăn 2. x range(stop) -> range object\nrange(start, stop[, step]) -> range7 Chúng tôi có thể kết luận rằng xrange không hỗ trợ cắt #2) Tiêu thụ bộ nhớCả xrange và range đều có bộ nhớ tĩnh cho các đối tượng của chúng. Tuy nhiên, xrange tiêu thụ ít bộ nhớ hơn phạm vi Ví dụ 15. Kiểm tra bộ nhớ được tiêu thụ bởi cả xrange cũng như phạm vi. Giải pháp 15. 1. Trăn 3. x range(stop) -> range object\nrange(start, stop[, step]) -> range8 Giải pháp 15. 2. Trăn 2. x range(stop) -> range object\nrange(start, stop[, step]) -> range9 Chúng tôi thấy rằng các đối tượng xrange chiếm kích thước bộ nhớ là 40, không giống như phạm vi chiếm 48 phạm vi () trong NumpyNumpy là một thư viện Python để tính toán số. Numpy cung cấp nhiều phương thức để tạo mảng trong đó hàm arange() là một phần Cài đặtTrước tiên, chúng tôi có thể kiểm tra xem Numpy đã được cài đặt trong hệ thống của chúng tôi hay chưa bằng cách chạy lệnh bên dưới >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]0 Nếu chúng tôi gặp ngoại lệ ModuleNotFoundError, thì chúng tôi phải cài đặt nó. Một cách là sử dụng pip như hình bên dưới; >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]1 cú pháp>>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]2 Từ cú pháp trên, chúng ta thấy sự tương đồng với Python range(). Nhưng ngoài tham số này, arange() của Python còn có dtype xác định kiểu của mảng trả về Ngoài ra, nó trả về một numpy. ndarray chứ không phải là một đối tượng trang trí như Python range() Ví dụ 16. Kiểm tra loại trả về của numpy. dãy () >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]3 Bốn tham số trong arange() là kiểu dữ liệu (dtype) xác định giá trị tích hợp số trong mảng trả về. Các dtype do numpy cung cấp khác nhau về bộ nhớ được sử dụng và có các giới hạn như trong bảng bên dưới Bảng về kiểu dữ liệu numpy (dtype) Loại ngày (dtype)Descriptionnp. số nguyên int88-bit Ví dụ 17. Sử dụng dtype của số nguyên 8 bit >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]4 Nếu dtype không được gán, thì dtype của mảng kết quả sẽ được xác định dựa trên các đối số bước, dừng và bước Nếu tất cả các đối số là số nguyên, thì dtype sẽ là int64. Tuy nhiên, nếu kiểu dữ liệu thay đổi thành dấu phẩy động trong bất kỳ đối số nào, thì dtype sẽ là float64 Sự khác biệt giữa numpy. arange() Và phạm vi()
Trước khi kết thúc phần này, điều quan trọng cần biết là numpy. arange không trả về một đối tượng trang trí như range(), nó có giới hạn về phạm vi trình tự mà nó có thể tạo ra Ví dụ 18. Hiển thị gọn gàng. giới hạn phạm vi NB. Vui lòng không thử điều này, nếu không nó có thể mất mãi mãi để chạy hoặc làm hỏng hệ thống của bạn >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]5 Các câu hỏi thường gặpQ #1) Cách biến một phạm vi () thành một danh sách trong Python3 Câu trả lời. Để thay đổi một phạm vi thành một danh sách trong Python 3. x, bạn sẽ chỉ cần gọi một danh sách đóng gói hàm phạm vi như bên dưới >>> list(range(7)) [0, 1, 2, 3, 4, 5, 6]6 Q #2) Phạm vi Python hoạt động như thế nào? Câu trả lời. Về cơ bản, phạm vi Python có ba tham số là i. e. bắt đầu, dừng và bước và tạo một chuỗi các số nguyên bắt đầu từ điểm bắt đầu, kết thúc ở điểm dừng-1 và tăng hoặc giảm theo bước Phạm vi Python() hoạt động khác nhau dựa trên phiên bản Python. Trong Python 2. x, phạm vi () trả về một danh sách trong Python 3. x, một đối tượng phạm vi được trả về Q #3) Giải thích Lỗi “xrange notdefined” khi chạy trong python3 Câu trả lời. Lỗi này xảy ra do xrange() không phải là hàm tích hợp trong Python 3. x. Thay vào đó, hàm xrange() được tích hợp sẵn trong Python 2. x nhưng đã được triển khai lại trong Python 3. x và phạm vi được đặt tên Phần kết luậnTrong hướng dẫn này, chúng ta đã xem phạm vi Python() và cú pháp của nó. Chúng tôi đã kiểm tra các cách khác nhau để chúng tôi có thể xây dựng một phạm vi dựa trên số lượng tham số được cung cấp. Chúng ta cũng đã xem xét cách Python range() được sử dụng trong một vòng lặp như vòng lặp for và các cấu trúc dữ liệu như danh sách, bộ dữ liệu và bộ Cuối dòng, chúng tôi đã xem xét sự khác biệt giữa xrange trong Python 2. x và phạm vi trong Python 3. x. Cuối cùng, chúng tôi đã xem qua cách triển khai phạm vi trong Numpy Làm cách nào để kiểm tra xem một số nguyên có nằm trong một dãy số trong Python không?Phạm vi Python() để kiểm tra số nguyên ở giữa hai số
. Nó có thể dễ dàng xác định xem số nguyên có nằm giữa hai số hay không. Ở đây, chúng tôi đã gọi hàm phạm vi () bao gồm phạm vi thấp hơn (X) nhưng loại bỏ giá trị cạnh, i. e. , Y.
Phạm vi () có phải là một danh sách không?Dải ô() đưa ra chuỗi số và trả về danh sách các số . Hàm xrange() cung cấp một đối tượng trình tạo cần được lặp trong vòng lặp for để nhận các giá trị. Phạm vi () trả về một danh sách. |