Dãy Python là gì?
Phạm vi Python () là một hàm tích hợp sẵn có trong Python từ Python (3.x) và nó cung cấp một chuỗi số dựa trên chỉ số bắt đầu và dừng đã cho. Trong trường hợp chỉ số bắt đầu không được đưa ra, chỉ số được coi là 0 và nó sẽ tăng giá trị lên 1 cho đến khi chỉ số dừng.
Ví dụ, phạm vi (5) sẽ xuất cho bạn các giá trị 0,1,2,3,4. Phạm vi Python () là một lệnh rất hữu ích và chủ yếu được sử dụng khi bạn phải lặp lại bằng vòng lặp for.
Trong hướng dẫn này, bạn sẽ học:
- Dãy Python là gì?
- Cú pháp
- Phạm vi Python () Hàm và lịch sử
- Sử dụng phạm vi ()
- Sử dụng bắt đầu và dừng trong phạm vi ()
- Sử dụng bắt đầu, dừng và bước
- Tăng các giá trị trong phạm vi bằng cách sử dụng một bước tích cực.
- Phạm vi đảo ngược: Giảm giá trị bằng cách sử dụng bước phủ định.
- Sử dụng số thực trong phạm vi Python ()
- Sử dụng vòng lặp for với phạm vi Python ()
- Sử dụng phạm vi Python () làm danh sách
- Sử dụng các ký tự trong phạm vi python ()
- Cách truy cập các phần tử phạm vi
- Ví dụ: Nhận các số chẵn bằng cách sử dụng range ()
- Hợp nhất đầu ra hai dải ()
- Sử dụng phạm vi () Với NumPy
Cú pháp
range(start, stop, step)
Thông số
- start: (tùy chọn) Chỉ số bắt đầu là một số nguyên và nếu không được cung cấp, giá trị mặc định là 0.
- dừng: Chỉ số dừng quyết định giá trị mà tại đó hàm phạm vi phải dừng. Đây là đầu vào bắt buộc cho hàm phạm vi. Giá trị cuối cùng sẽ luôn nhỏ hơn 1 giá trị dừng.
- step: (tùy chọn). Giá trị bước là số mà số tiếp theo trong phạm vi phải được tăng lên, theo mặc định, nó là 1.
Giá trị trả lại:
Giá trị trả về là một dãy số từ chỉ số bắt đầu đến chỉ số dừng đã cho.
Phạm vi Python () Hàm và lịch sử
Python range () đã được giới thiệu từ phiên bản python 3, trước đó xrange () là hàm.
Cả phạm vi và xrange () đều được sử dụng để tạo ra một chuỗi số.
Sau đây là sự khác biệt giữa range và xrange ():
phạm vi() | xrange () |
Phạm vi () cho dãy số và trả về một danh sách các số. | Hàm xrange () cho một đối tượng máy phát điện 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. | xrange () trả về một đối tượng máy phát điện. |
Phương thức range () sử dụng nhiều bộ nhớ hơn vì danh sách trả về phải được lưu trữ so với xrange (). | Khi xrange () trả về một đối tượng trình tạo, nó không cung cấp các giá trị ngay lập tức và phải được sử dụng bên trong vòng lặp for để nhận các giá trị. |
Việc sử dụng bộ nhớ nhiều hơn do đó việc thực thi mã chậm hơn khi làm việc trên một tập hợp dữ liệu lớn. | Việc thực thi mã nhanh hơn bằng cách sử dụng xrange (). |
Sử dụng phạm vi ()
Ví dụ này cho thấy cách in các giá trị từ 0-9 bằng cách sử dụng range ().
Giá trị được sử dụng trong phạm vi là 10, vì vậy đầu ra là 0 1 2 3 4 5 6 7 8 9
Vì bắt đầu không được đưa ra nên bắt đầu được coi là 0 và giá trị cuối cùng được cho đến 9. Giá trị cuối cùng luôn nhỏ hơn 1 giá trị đã cho tức là dừng-1.
for i in range(10):print(i, end =" ")
Đầu ra:
0 1 2 3 4 5 6 7 8 9
Sử dụng bắt đầu và dừng trong phạm vi ()
Trong mã, giá trị bắt đầu là 3 và giá trị dừng là 10. Ở đây chỉ số bắt đầu là 3, vì vậy dãy số sẽ bắt đầu từ 3 cho đến giá trị dừng. Giá trị cuối cùng trong dãy sẽ nhỏ hơn 1 giá trị dừng 10-1 = 9.
for i in range(3, 10):print(i, end =" ")
Đầu ra:
3 4 5 6 7 8 9
Sử dụng bắt đầu, dừng và bước
Giá trị bắt đầu là 3, vì vậy dãy số sẽ bắt đầu ở 3. Giá trị dừng là 10, vì vậy dãy số sẽ dừng lại ở (10-1) tức là 9. Bước là 2, vì vậy mỗi giá trị trong dãy sẽ được tăng lên 2. Nếu giá trị bước không được cung cấp, giá trị cho bước mặc định là 1.
for i in range(3, 10, 2):print(i, end =" ")
Đầu ra:
3 5 7 9
Cho đến nay, chúng ta đã thấy cách hàm range () cung cấp giá trị tăng dần cho giá trị dừng đã cho. Bây giờ chúng ta hãy thử một ví dụ để nhận giá trị giảm dần trong phạm vi đã cho.
Tăng các giá trị trong phạm vi bằng cách sử dụng một bước tích cực.
Bước tham số trong range () có thể được sử dụng để tăng / giảm các giá trị. Theo mặc định, nó là một giá trị dương 1. Vì vậy, nó sẽ luôn cung cấp các giá trị tăng dần.
Giá trị bước phải là số dương trong trường hợp bạn muốn các giá trị tăng dần lên.
for i in range(1, 30, 5):print(i, end =" ")
Đầu ra:
1 6 11 16 21 26
Phạm vi đảo ngược: Giảm giá trị bằng cách sử dụng bước phủ định.
Bước tham số có giá trị âm trong range () có thể được sử dụng để nhận các giá trị giảm dần. Trong ví dụ bên dưới, giá trị bước là số âm, vì vậy đầu ra sẽ giảm so với giá trị phạm vi đã cho.
for i in range(15, 5, -1):print(i, end =" ")
Đầu ra:
15 14 13 12 11 10 9 8 7 6
Giá trị bắt đầu là 15, giá trị dừng là 5 và giá trị bước là số âm tức là -1. Với các đầu vào ở trên, hàm range () sẽ giảm giá trị từ 15 trở đi cho đến khi nó đạt đến giá trị dừng, nhưng ở đây sự khác biệt là giá trị cuối cùng sẽ là dừng + 1.
Sử dụng số thực trong phạm vi Python ()
Bây giờ chúng ta hãy làm việc trên phạm vi () bằng cách sử dụng số dấu phẩy động.
Thí dụ:
for i in range(10.5):print(i, end =" ")
Trong ví dụ trên, chúng tôi đã sử dụng giá trị dừng là 10,5.
Đầu ra là:
Traceback (most recent call last):File "python_range.py", line 1, infor i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer
Python đưa ra lỗi vì hàm range () không hỗ trợ số dấu phẩy động cho bắt đầu, dừng và bước.
Sử dụng vòng lặp for với phạm vi Python ()
Trong ví dụ này, chúng ta sẽ sử dụng một mảng số và, hãy xem cách sử dụng lặp lại mảng bên trong vòng lặp for bằng cách sử dụng range ()
Thí dụ:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Đầu ra:
MysqlMongodb PostgreSQL Firebase
Trong ví dụ trên, chúng tôi đã sử dụng len (arr_list) làm giá trị dừng. Vòng lặp for sẽ lặp lại cho đến khi giá trị dừng tức là độ dài của mảng và đó sẽ là 4, vì chúng ta có bốn mục trong arr_list. Giá trị bắt đầu sẽ là 0 và bước sẽ là 1. Vì vậy, các giá trị sẽ bắt đầu từ 0 và sẽ dừng lại ở 3 tức là độ dài của mảng -1 nghĩa là 4 -1 = 3.
Sử dụng phạm vi Python () làm danh sách
Trong ví dụ này, bạn sẽ thấy cách sử dụng đầu ra từ dải ô dưới dạng danh sách.
Thí dụ:
print(list(range(10)))
Đầu ra:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Bạn có thể thấy đầu ra là một định dạng danh sách. Không cần thiết phải lặp lại phạm vi () và sử dụng phương thức list (), chúng ta có thể chuyển đổi trực tiếp đầu ra từ phạm vi sang định dạng danh sách.
Sử dụng các ký tự trong phạm vi python ()
Cho đến nay, chúng tôi đã sử dụng số nguyên trong phạm vi python (). Chúng tôi cũng đã thấy rằng số dấu phẩy động không được hỗ trợ trong phạm vi python. Hãy để chúng tôi thử và xem kết quả là điều gì sẽ xảy ra khi chúng tôi sử dụng các ký tự.
Thí dụ:
for c in range ('z'):print(c, end =" ")
Đầu ra:
Traceback (most recent call last):File "python_range.py", line 1, infor c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer
Nó ném ra một lỗi nói rằng một chuỗi không thể được hiểu là một số nguyên.
Để có được danh sách các bảng chữ cái, bạn có thể tùy chỉnh mã và nhận được kết quả đầu ra mong muốn được hiển thị bên dưới:
Thí dụ:
def get_alphabets(startletter, stopletter, step):for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):yield chr(c)print(list(get_alphabets("a", "h", 1)))
Đầu ra:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Cách truy cập các phần tử phạm vi
Bạn có thể sử dụng vòng lặp for để nhận các giá trị từ phạm vi hoặc sử dụng chỉ mục để truy cập các phần tử từ phạm vi ().
Sử dụng vòng lặp for
Thí dụ:
for i in range(6):print(i)
Đầu ra:
012345
Sử dụng chỉ mục
Chỉ mục được sử dụng với phạm vi để nhận giá trị có sẵn tại vị trí đó. Nếu giá trị phạm vi là 5, để lấy giá trị bắt đầu, bạn có thể sử dụng phạm vi (5) [0] và phạm vi giá trị tiếp theo (5) [1], v.v.
Thí dụ:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Đầu ra:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Sử dụng danh sách ()
Phương thức này sẽ in tất cả các phần tử từ phạm vi (). Sử dụng list () nó sẽ trả về các phần tử từ range () ở định dạng danh sách.
Thí dụ:
print(list(range(10)))
Đầu ra:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Nó cung cấp đầu ra danh sách cho phạm vi đã cho.
Ví dụ: Nhận các số chẵn bằng cách sử dụng range ()
Sử dụng range () sẽ nhận được danh sách các số chẵn trong phạm vi được đưa ra làm đầu vào. Các tham số cho phạm vi () là, bắt đầu là 2, dừng là 20 và bước là 2, vì vậy các giá trị sẽ được tăng lên 2 và sẽ cho các số chẵn cho đến khi dừng-2.
Thí dụ:
for i in range(2, 20, 2):print(i, end =" ")
Đầu ra:
2 4 6 8 10 12 14 16 18
Hợp nhất đầu ra hai dải ()
Trong ví dụ này sẽ nối 2 hàm range () với sự trợ giúp của hàm itertools module chain ().
Thí dụ:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Đầu ra:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Sử dụng phạm vi () Với NumPy
Mô-đun NumPy có hàm arange () hoạt động và cho đầu ra tương tự như range (). Sắp xếp () nhận các tham số giống như range ().
Cú pháp:
arange(start, stop, step)
Để làm việc với NumPy, hãy làm theo các bước dưới đây.
Bước 1 : Nhập mô-đun NumPy
import numpy
Trong khi thực thi, nó báo lỗi không tìm thấy mô-đun numpy, bạn cần cài đặt mô-đun như được hiển thị trong bước 2.
Bước 2 : Cài đặt NumPy
pip install numpy
Bước 3 : Ví dụ làm việc của arange () bằng NumPy
import numpy as npfor i in np.arange(10):print(i, end =" ")
Đầu ra:
0 1 2 3 4 5 6 7 8 9
Số dấu phẩy động bằng cách sử dụng NumPy arange ()
Không thể lấy chuỗi dấu phẩy động bằng cách sử dụng range (), nhưng có thể sử dụng NumPy arange ().
Thí dụ:
Phạm vi mà chúng tôi muốn là từ 0,5 đến 1,5. Giá trị sẽ tăng thêm 0,2.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Đầu ra:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Kết quả mà chúng tôi nhận được hơi kỳ lạ, một số số thực được hiển thị với 16 chữ số thập phân. Điều này xảy ra do sự phức tạp của việc lưu trữ số thực thập phân sang định dạng nhị phân. Bạn cũng có thể làm tròn các giá trị nếu được yêu cầu và giới hạn chúng ở những vị trí thập phân mà bạn cần.
Tóm lược:
- Phạm vi Python () là một hàm tích hợp sẵn có trong Python từ Python (3.x) và nó cung cấp một chuỗi số dựa trên chỉ số bắt đầu và dừng đã cho. Trong trường hợp chỉ số bắt đầu không được đưa ra, chỉ số được coi là 0 và nó sẽ tăng giá trị cho đến chỉ số dừng.
- Python range () đã được giới thiệu từ phiên bản python 3, trước đó xrange () là hàm.
- Phạm vi () cho dãy số và trả về một danh sách các số. Hàm xrange () cho một đối tượng máy phát điện cần được lặp trong vòng lặp for để nhận các giá trị.
- Bước tham số trong range () có thể được sử dụng để tăng / giảm các giá trị. Theo mặc định, nó là một giá trị dương 1. Vì vậy, nó sẽ luôn cung cấp các giá trị tăng dần.
- Python đưa ra lỗi cho các số dấu phẩy động vì hàm range () chỉ hỗ trợ các giá trị nguyên.
- Các giá trị từ range () có thể được truy cập bằng vòng lặp for, sử dụng chỉ mục và danh sách ()
- Mô-đun NumPy có hàm arange () hoạt động và cho đầu ra tương tự như range (). Arange () nhận các tham số giống như range ().
- Có thể lấy chuỗi dấu phẩy động NumPy arange () không được hỗ trợ bằng cách sử dụng range ().