HomeLập trìnhPythonHàm range() trong...

Hàm range() trong Python – Được giải thích bằng các ví dụ về mã


Trong Python, có thể sử dụng range() chức năng để có được một chuỗi các chỉ mục để lặp qua một lần lặp. Bạn sẽ thường xuyên sử dụng range() kết hợp với một for vòng.

Trong hướng dẫn này, bạn sẽ tìm hiểu về các cách khác nhau mà bạn có thể sử dụng range() chức năng – với các chỉ số bắt đầu và dừng rõ ràng, kích thước bước tùy chỉnh và kích thước bước phủ định.

Bắt đầu nào.

Hiểu về Python range() Chức năng

Trước khi xem xét các cách khác nhau để sử dụng range() chức năng, bạn phải hiểu nó hoạt động như thế nào.

Các range() hàm trả về một đối tượng phạm vi.
Đối tượng phạm vi này lần lượt trả về các mục liên tiếp trong chuỗi khi bạn lặp lại nó.

Như đã nêu ở trên, hàm phạm vi không trở lại một danh sách các chỉ số. Thay vào đó, nó trả về một đối tượng phạm vi trả về các chỉ số khi bạn cần chúng. Điều này làm cho nó hiệu quả bộ nhớ là tốt.

Bạn có thể dùng range() hàm với cú pháp tổng quát sau:

range(start,stop,step)

Khi bạn sử dụng cú pháp này kết hợp với một vòng lặp, bạn có thể nhận được một chuỗi các chỉ số từ start lên đến nhưng không bao gồm stop trong các bước của step.

  • Bạn phải chỉ định cần thiết tranh luận stop, có thể là bất kỳ số nguyên dương nào. Thay vào đó, nếu bạn chỉ định một số dấu phẩy động, bạn sẽ gặp phải một TypeError như hình:
my_range = range(2.5)
hinh-24
  • Nếu bạn không chỉ định start chỉ số, các mặc định bắt đầu chỉ số của Được sử dụng.
  • Nếu bạn không chỉ định step giá trị, các mặc định kích thước bước của 1 Được sử dụng.

Trong các phần tiếp theo, bạn sẽ tìm hiểu về các cách khác nhau để sử dụng range() chức năng.

Cách sử dụng Python range() Chức năng lặp qua bất kỳ Iterable nào

Như đã đề cập trong phần trước, bạn chỉ cần một số nguyên dương để sử dụng range() chức năng. Cú pháp được hiển thị dưới đây:

range(stop)

Bạn có thể sử dụng dòng mã trên để lấy một chuỗi từ xuyên qua stop-1 : , 1, 2, 3,…, stop-1.

▶ Xem xét ví dụ sau khi bạn gọi range() với 5 là đối số. Và bạn lặp qua đối tượng phạm vi được trả về bằng cách sử dụng for vòng lặp để nhận các chỉ số 0,1,2,3,4 như mong đợi.

for index in range(5):
  print(index)
  
#Output
0
1
2
3
4

Nếu bạn còn nhớ, tất cả các lần lặp trong Python đều theo sau không lập chỉ mục. Đây là lý do tại sao nó thuận tiện để sử dụng range() để lặp qua các lần lặp.

Đọc thêm  Hướng dẫn về danh sách trống trong Python – Cách tạo danh sách trống trong Python

Một lần lặp có độ dài len, 1, 2…, len-1 như các chỉ số hợp lệ. Vì vậy, để duyệt qua bất kỳ lần lặp nào, tất cả những gì bạn cần làm là đặt stop giá trị bằng len. Trình tự bạn sẽ nhận được – , 1, 2…, len-1 – là chuỗi các chỉ số hợp lệ.

▶ Lấy một ví dụ hữu ích hơn. Bạn có một danh sách my_list. Bạn có thể truy cập tất cả các mục trong danh sách bằng cách biết các chỉ số của chúng và bạn có thể lấy các chỉ số đó bằng cách sử dụng range() như hình dưới đây:

my_list = ["Python","C","C++","JavaScript","Julia","Rust","Go"]
for index in range(len(my_list)):
  print(f"At index {index}, we have {my_list[index]}")

Hãy nhớ rằng, bạn có thể sử dụng hàm có sẵn của Python len để có được độ dài của bất kỳ lần lặp nào. Trong đoạn mã trên, bạn sử dụng cả chỉ mục hợp lệ và danh sách các mục tại các chỉ mục hợp lệ đó. Đây là đầu ra:

hinh-25

Nhận thấy như thế nào my_list dài 7 mục và các chỉ số thu được là từ 0 đến 6, như mong đợi.

Đôi khi, bạn có thể cần sử dụng số nguyên âm để thay thế. Trong trường hợp này, nếu bạn chỉ sử dụng stop đối số, bạn sẽ không nhận được đầu ra mong muốn, mặc dù mã không đưa ra lỗi.

Điều này là do mặc định start giá trị được giả định là và bạn không thể đếm ngược từ đến -5.

for index in range(-5):
  print (index)
  
  
#Output
#NOTHING HERE

Cách sử dụng Python range() Chức năng với các chỉ số bắt đầu và kết thúc rõ ràng

Bạn có thể không phải lúc nào cũng muốn bắt đầu từ con số không. Bạn có thể bắt đầu tại bất kỳ chỉ mục tùy ý nào bằng cách đặt start giá trị cho chỉ mục mà bạn muốn bắt đầu từ đó. Cú pháp như sau:

range(start,stop)

Trong trường hợp này, bạn sẽ có thể nhận được trình tự: start, start + 1, start + 2và cứ thế cho đến stop-1.

▶ Trong ví dụ bên dưới, bạn đang bắt đầu từ 10, hãy đếm đến hết nhưng không bao gồm 15 trong các bước của 1.

for index in range(10,15):
  print(index)

#Output
10
11
12
13
14

Trong phần trước, bạn đã thấy cách chỉ sử dụng stop đối số sẽ không hoạt động khi bạn cần số nguyên âm. Tuy nhiên, khi bạn chỉ định startstop chỉ số một cách rõ ràng, bạn cũng có thể làm việc với các số nguyên âm.

Đọc thêm  Danh sách đảo ngược Python – Cách đảo ngược một phạm vi hoặc mảng

▶ Trong ví dụ này, bạn đang cố gắng đếm từ -5 theo các bước của 1. Luôn nhớ rằng việc đếm dừng lại ở giá trị nhỏ hơn một giá trị stop mục lục.

for index in range(-5,0):
  print(index)
  
#Output
-5
-4
-3
-2
-1

Cách sử dụng Python range() Chức năng với một Kích thước bước tùy chỉnh

Thay vì duyệt tuần tự một iterable, đôi khi bạn có thể muốn duyệt qua nó, truy cập mọi k-phần tử thứ. Đây là khi tùy chọn step lập luận có ích. Cú pháp chung được hiển thị dưới đây:

range(start,stop,step)

Khi bạn sử dụng cú pháp này và lặp qua đối tượng phạm vi, bạn có thể đi từ start đến stop-1 với những bước tiến lớn step.

  • Bạn sẽ nhận được trình tự: start, start + step, start + 2*stepvà cứ thế cho đến start + k*step như vậy mà start + k*step < stopstart + (k+1)*step > stop.

▶ Trong ví dụ dưới đây, bạn muốn đi từ 0 đến 20 trong các bước 2. Lưu ý chỉ số cuối cùng được in ra là 19. Điều này là do, nếu bạn thực hiện thêm một bước nữa, bạn sẽ ở 21, tức là lớn hơn hơn 20.

Hãy luôn nhớ rằng, giá trị cuối cùng bạn nhận được có thể gần bằng stop càng tốt, nhưng không bao giờ có thể được stop.

for index in range(1,20,2):
  print(index)

#Output
1
3
5
7
9
11
13
15
17
19

Cách sử dụng Python range() Chức năng với kích thước bước âm

Cho đến nay, bạn đã học cách sử dụng range() chức năng với startstop các chỉ số và kích thước bước cụ thể, đồng thời đếm ngược từ start đến stop.

Nếu bạn cần đếm ngược từ một số nguyên, bạn có thể chỉ định giá trị âm cho step. Cú pháp chung là:

range(start,stop,<negative_step>)
  • Bây giờ đối tượng phạm vi có thể được sử dụng để trả về một chuỗi đếm ngược từ start trong các bước của negative_steplên đến nhưng không bao gồm stop.
  • Chuỗi trả về là start, start - negative_step, start - 2*negative_stepvà cứ thế cho đến start - k*negative_step như vậy mà start - k*negative_step > stopstart - (k+1)*negative_step < stop.
  • Không có giá trị mặc định cho bước phủ định – bạn phải đặt negative_step = -1 để đếm ngược bao gồm mỗi số.
Đọc thêm  Cách theo dõi API Python bằng Pyctuator và SpringBootAdmin

▶ Trong ví dụ này, bạn muốn đếm ngược từ 20 theo bước -2. Vì vậy, chuỗi là 20, 18, 16, giảm dần xuống còn 2. Nếu bạn đi thấp hơn 2 bước nữa, bạn sẽ chạm 0, mà bạn không thể chạm được vì nó nhỏ hơn giá trị dừng là 1.

for index in range(20,1,-2):
  print(index)
  
#Output
20
18
16
14
12
10
8
6
4
2

Thật dễ dàng để thấy rằng start > stop để có thể đếm ngược.

for index in range(10,20,-1):
  print(index)
  
 #Ouput
 #Nothing is printed - the sequence is empty.

▶ Trong ví dụ trên, bạn thử đếm ngược từ 10 đến 20 thì không được. Và bạn không nhận được bất kỳ đầu ra nào như mong đợi.

Cách sử dụng Python range()reversed() Các hàm để đảo ngược một chuỗi

Nếu bạn cần truy cập các phần tử của một iterable theo thứ tự ngược lại, bạn có thể sử dụng range() chức năng kết hợp với reversed() chức năng.

Python tích hợp sẵn reversed() hàm trả về một trình vòng lặp đảo ngược trên các giá trị của một chuỗi đã cho.

▶ Hãy lấy ví dụ đầu tiên của chúng tôi, nơi chúng tôi đã sử dụng range(5). Trong ví dụ dưới đây, chúng tôi gọi reversed() trên đối tượng phạm vi. Và chúng ta thấy rằng chúng ta đã đếm ngược từ 4 đến 0.

for index in reversed(range(5)):
  print (index)
  
#Output
4
3
2
1
0

Như bạn có thể thấy, điều này tương đương với việc sử dụng range(4,-1,-1). Nếu bạn thích, bạn có thể sử dụng reversed() chức năng thay vì negative_step lập luận đã thảo luận trong phần trước.

Phần kết luận

Trong hướng dẫn này, bạn đã học được những cách khác nhau mà bạn có thể sử dụng range() chức năng. Bạn có thể thử một vài ví dụ để có được một trình tự khác nhau mỗi lần. Thực hành này sẽ giúp bạn sử dụng range() hiệu quả khi lặp qua các lần lặp.

Chúc mừng mã hóa! Cho đến hướng dẫn tiếp theo.🙂



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status