Hàm range()
là một công cụ vô cùng quan trọng và được sử dụng rộng rãi trong Python, đặc biệt khi làm việc với vòng lặp for
và đôi khi cả vòng lặp while
. Việc hiểu rõ và sử dụng thành thạo range()
sẽ mở ra nhiều khả năng trong lập trình Python, từ kiểm soát luồng chương trình đến xử lý dữ liệu.
Hàm range()
trong Python là gì?
Hàm range()
trả về một chuỗi các số nguyên và là một đối tượng bất biến (immutable), nghĩa là giá trị của nó không thể thay đổi sau khi tạo. Hàm range()
có thể nhận một, hai hoặc ba đối số, tương ứng với điểm dừng, điểm bắt đầu và bước nhảy.
Trong Python 3, range()
trả về một đối tượng range, trong khi ở Python 2, hàm tương tự là xrange()
trả về một đối tượng iterator và tiết kiệm bộ nhớ hơn.
Một trong những ưu điểm của range()
là nó chỉ lưu trữ giá trị bắt đầu, dừng và bước, do đó tiết kiệm bộ nhớ hơn so với việc tạo một danh sách đầy đủ các số.
Mục đích sử dụng hàm range()
trong Python
Hàm range()
cho phép bạn tạo một chuỗi các số trong một phạm vi xác định. Tùy thuộc vào số lượng đối số bạn cung cấp, bạn có thể kiểm soát điểm bắt đầu, điểm kết thúc và khoảng cách giữa các số trong chuỗi. Hàm range()
có thể được khởi tạo theo ba cách:
range(stop)
: Lấy một đối số.range(start, stop)
: Lấy hai đối số.range(start, stop, step)
: Lấy ba đối số.
Cú pháp hàm range()
trong Python
Hàm range()
có hai dạng cú pháp chính:
range(stop)
range(start, stop[, step])
Các tham số của hàm range()
Hàm range()
nhận ba tham số:
start
: Số nguyên chỉ định điểm bắt đầu của chuỗi. Giá trị mặc định là 0.stop
: Số nguyên chỉ định điểm kết thúc của chuỗi (không bao gồm).step
: Số nguyên xác định khoảng cách giữa các số trong chuỗi. Giá trị mặc định là 1.
Giá trị trả về từ range()
-
Với cú pháp
range(stop)
:- Trả về một chuỗi bắt đầu từ 0 đến
stop
– 1. - Trả về một chuỗi rỗng nếu
stop
có giá trị là 0 hoặc nhỏ hơn 0.
- Trả về một chuỗi bắt đầu từ 0 đến
-
Với cú pháp
range(start, stop[, step])
:- Nếu không có tham số
step
,step
mặc định là 1: trả về một chuỗi bắt đầu từstart
và kết thúc ởstop
– 1. - Nếu
step
bằng 0, một ngoại lệValueError
sẽ đượcRaise. - Nếu
step
khác 0, kiểm tra xem các tham số có thỏa mãn điều kiện không.- Nếu có, trả về chuỗi theo công thức, bắt đầu từ
start
, các số cách nhau bằngstep
, số cuối của chuỗi sẽ nhỏ hơnstop
. - Nếu không, trả về một chuỗi rỗng.
- Nếu có, trả về chuỗi theo công thức, bắt đầu từ
- Nếu không có tham số
Ví dụ 1: Cách range()
hoạt động với các tham số khác nhau
print(list(range(0)))
print(list(range(10)))
print(list(range(1, 10)))
Kết quả:
[]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Ví dụ 2: Tạo danh sách số chẵn sử dụng range()
start = 2
stop = 14
step = 2
print(list(range(start, stop, step)))
Kết quả:
[2, 4, 6, 8, 10, 12]
Ví dụ 3: range()
với bước nhảy âm
start = 2
stop = -14
step = -2
print(list(range(start, stop, step)))
print(list(range(start, 14, step)))
Kết quả:
[2, 0, -2, -4, -6, -8, -10, -12]
[]
Sử dụng range()
trong vòng lặp
Hàm range()
thường được sử dụng để lặp qua một chuỗi số trong vòng lặp for
.
Ví dụ:
for i in range(5):
print(i)
Kết quả:
0
1
2
3
4
Truy cập phần tử bằng index với range()
Bạn có thể sử dụng index để truy cập các giá trị cụ thể trong đối tượng range()
.
Truy cập phần tử bằng index trong Python
Ảnh minh họa cách sử dụng index để truy cập giá trị đầu tiên của một range trong Python, ví dụ range(2, 10, 2)[0] sẽ trả về 2.
Ví dụ, với range(2, 10, 2)
, bạn có thể truy cập giá trị đầu tiên như sau: range(2, 10, 2)[0]
sẽ trả về 2. Các giá trị khác có thể được truy cập tương tự.
Những điều cần lưu ý khi sử dụng range()
- Hàm
range()
chỉ hoạt động với số nguyên. - Tất cả các đối số (
start
,stop
,step
) phải là số nguyên. - Giá trị
step
không được bằng 0. Nếustep
bằng 0, Python sẽ phát sinh ngoại lệValueError
. range()
là một kiểu dữ liệu trong Python.- Bạn có thể truy cập các phần tử trong một
range()
theo chỉ mục, tương tự như cách bạn làm với một danh sách.
Nắm vững cách sử dụng hàm range()
là một bước quan trọng trong việc học lập trình Python. Hi vọng bài viết này đã giúp bạn hiểu rõ hơn về công dụng và cách sử dụng hàm range()
một cách hiệu quả.