Python range() Hàm: Float, List, For loop Ví dụ
⚡ Tóm tắt thông minh
Python Hàm range() là một hàm tích hợp tạo ra một dãy số nguyên bất biến từ giá trị bắt đầu đến giá trị kết thúc (nhưng không bao gồm giá trị kết thúc), sử dụng tham số step tùy chọn để kiểm soát bước tăng.

Là gì Python Phạm vi?
Python range() là một hàm tích hợp có sẵn với Python từ Python (3.x), và nó đưa ra một chuỗi số dựa trên chỉ số bắt đầu và dừng được đưa ra. 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 chỉ số dừng.
Ví dụ, range(5) sẽ xuất ra các giá trị 0, 1, 2, 3, 4. Python `range()` là một lệnh rất hữu ích và chủ yếu được sử dụng khi bạn cần lặp lại bằng cách sử dụng một phạm vi. vòng lặp for.
cú pháp
Cú pháp của hàm range() được hiển thị bên dưới:
range(start, stop, step)
Thông số Kỹ thuật
- bắt đầu: (tùy chọn) Chỉ số bắt đầu là một số nguyên và nếu không được cung cấp thì giá trị mặc định là 0.
- dừng lại: Chỉ số dừng quyết định giá trị mà tại đó hàm phạm vi phải dừng lại. Đây là một tham số bắt buộc đối với hàm phạm vi. Giá trị cuối cùng sẽ luôn nhỏ hơn giá trị dừng 1 đơn vị.
- bươc: (Tùy chọn) Giá trị bước nhảy là số mà số tiếp theo trong phạm vi phải tăng lên; theo mặc định, giá trị này 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.
Python range() Chức năng và lịch sử
Python range() đã được giới thiệu từ Python phiên bản 3; trước đó, hàm là xrange().
Cả range() và xrange() đều được sử dụng để tạo ra một dãy số.
Sau đây là những điểm khác biệt giữa range() và xrange():
| phạm vi() | xrange () |
|---|---|
| Range() đư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 máy phát cần được lặp trong vòng lặp for để lấy các giá trị. |
| Range() trả về một danh sách. | xrange() trả về một đối tượng tạo. |
| 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(). | Vì xrange() trả về một đối tượng generator, nên nó không cung cấp giá trị ngay lập tức và phải được sử dụng bên trong một vòng lặp for để lấy các giá trị. |
| Việc sử dụng bộ nhớ nhiều hơn dẫn đến tốc độ thực thi mã chậm hơn khi xử lý một tập dữ liệu lớn. | Việc thực thi mã nhanh hơn khi 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ì giá trị bắt đầu không được cung cấp, nên giá trị bắt đầu được coi là 0 và giá trị cuối cùng được cung cấp cho đến 9. Giá trị cuối cùng luôn nhỏ hơn giá trị được cung cấp 1, tức là dừng lại - 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 đoạn mã, giá trị bắt đầu là 3 và giá trị kết thúc 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ị kết thúc. Giá trị cuối cùng trong dãy sẽ nhỏ hơn giá trị kết thúc 1 đơn vị, tức là 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 từ 3. Giá trị kết thúc là 10, vì vậy dãy số sẽ dừng ở (10-1), tức là 9. Bước nhảy là 2, vì vậy mỗi giá trị trong dãy sẽ tăng thêm 2. Nếu không cung cấp giá trị bước nhảy, giá trị mặc định cho bước nhảy 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 hàm range() trả về giá trị tăng dần cho giá trị dừng đã cho. Bây giờ, hãy thử một ví dụ để lấy giá trị giảm dần trong phạm vi đã cho.
Tăng dần các giá trị trong phạm vi bằng một bước tăng dương.
Tham số step trong hàm range() có thể được sử dụng để tăng hoặc giảm giá trị. Theo mặc định, nó là một giá trị dương, là 1. Vì vậy, nó sẽ luôn trả về các giá trị được tăng dần.
Giá trị bước phải dương nếu bạn muốn nhận các giá trị tăng dần làm đầu ra.
for i in range(1, 30, 5): print(i, end =" ")
Đầu ra:
1 6 11 16 21 26
Reverse Phạm vi: Giảm dần các giá trị bằng bước âm.
Tham số step với giá trị âm trong hàm range() có thể được sử dụng để lấy các giá trị giảm dần. Trong ví dụ bên dưới, giá trị step là âm, do đó đầu ra sẽ giảm đi từ 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 nhảy là một số âm, tức là -1. Với các giá trị đầu vào trên, hàm range() sẽ giảm giá trị từ 15 trở đi cho đến khi đạt đến giá trị dừng, nhưng điểm khác biệt ở đây là giá trị cuối cùng sẽ là dừng + 1.
Sử dụng số động trong Python phạm vi()
Bây giờ chúng ta hãy làm việc với phạm vi() bằng cách sử dụng các số có dấu phẩy động.
Ví dụ:
for i in range(10.5): print(i, end =" ")
Trong ví dụ trên, chúng ta đã sử dụng giá trị dừng là 10.5.
Đầu ra là:
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python Báo lỗi vì hàm range() không hỗ trợ số thực cho các tham số start, stop và step.
Sử dụng vòng lặp for với Python phạm vi()
Trong ví dụ này, chúng ta sẽ sử dụng một mảng các số và xem cách lặp qua mảng đó bên trong vòng lặp for bằng cách sử dụng hàm range().
Ví 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 ta đã sử dụng len(arr_list) làm giá trị dừng. Vòng lặp for sẽ lặp đến khi gặp giá trị dừng, tức là độ dài của mảng, sẽ là 4, vì chúng ta có bốn phần tử trong arr_list. Giá trị bắt đầu sẽ là 0 và bước nhảy sẽ là 1, vì vậy các giá trị sẽ bắt đầu từ 0 và dừng lại ở 3, tức là độ dài của mảng - 1, có nghĩa là 4 - 1 = 3.
Sử dụng Python range() dưới dạng danh sách
Trong ví dụ này sẽ xem cách sử dụng đầu ra từ phạm vi làm danh sách.
Ví 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 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ừ định dạng 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 ta đã sử dụng số nguyên trong phạm vi python(). Chúng tôi cũng thấy rằng các số có dấu phẩy động không được hỗ trợ trong phạm vi python. Chúng ta hãy thử xem kết quả sẽ xảy ra như thế nào khi chúng ta sử dụng các ký tự.
Ví dụ:
for c in range ('z'):
print(c, end =" ")
Đầu ra:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Nó đưa ra lỗi cho biết một chuỗi không thể được hiểu là 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 kết quả mong muốn như hiển thị bên dưới:
Ví 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 để lấy 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
Ví dụ:
for i in range(6):
print(i)
Đầu ra:
0 1 2 3 4 5
Sử dụng chỉ mục
Chỉ mục được sử dụng với phạm vi để lấy 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 range(5)[0] và giá trị tiếp theo range(5)[1], v.v.
Ví 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:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
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.
Ví 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 nhất định.
Ví dụ: Lấy số chẵn sử dụng range()
Sử dụng hàm range() sẽ lấy danh sách các số chẵn trong phạm vi được cung cấp làm đầu vào. Các tham số cho hàm range() là: start là 2, stop là 20 và step là 2, do đó các giá trị sẽ được tăng dần lên 2 và sẽ cho ra các số chẵn cho đến stop-2.
Ví 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 các đầu ra hai phạm vi ()
Trong ví dụ này, chúng ta sẽ nối hai hàm range() lại với nhau bằng cách sử dụng hàm chain() của mô-đun itertools.
Ví dụ:
from itertools import chain print("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 one 0 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ó một hàm `arange()` hoạt động và cho ra kết quả tương tự như `range()`. Hàm `arange()` nhận vào 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 trường hợp khi thực thi, xuất hiện lỗi báo không tìm thấy mô-đun numpy, bạn cần cài đặt mô-đun như hướng dẫn ở bước 2.
Bước 2Cài đặt NumPy
pip install numpy
Bước 3: Ví dụ hoạt động của arange() sử dụng NumPy
import numpy as np for 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 sử dụng NumPy arange()
Không thể lấy được chuỗi số thực bằng cách sử dụng hàm range(), nhưng có thể thực hiện được bằng cách sử dụng hàm arange() của NumPy.
Ví dụ:
Khoảng giá trị chúng ta muốn là từ 0.5 đến 1.5. Giá trị sẽ được tăng thêm 0.2.
import numpy as np for 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ả 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ữ các số thực thập phân ở định dạng nhị phân. Bạn cũng có thể làm tròn các giá trị nếu cần và giới hạn chúng ở số chữ số thập phân cần thiết.
