Trong hàm range nếu không đặt khoảng cách giữa hai số thì Python sẽ hiểu mặc định nó bằng
Show
Hướng dẫn sử dụng hàm Range[] trong Python. Bạn sẽ học được cách tạo dãy số liên tiếp trong python bằng hàm Range[] trong bài học này. Cú pháp hàm range[] trong PythonHàm range[] trong Python có hai dạng cú pháp: range[stop]range[start, stop[, step]]Các tham số của hàm range[]Hàm range[] có 3 tham số:
Giá trị trả về từ range[]1. Với kiểu cú pháp dạng range[stop]:
2. Với kiểu cú pháp dạng range[start, stop[, step]]:
Ví dụ 1: range[] hoạt động như thế nào?print[list[range[0]]] # sử dụng range[stop] print[list[range[10]]] # sử dụng range[start, stop] print[list[range[1, 10]]] Khi bạn chạy chương trình, output trả về sẽ là: [] [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 giữa tham số truyền vào bằng cách sử dụng range[]start = 2 stop = 14 step = 2 print[list[range[start, stop, step]]]Khi bạn chạy chương trình, output trả về sẽ là: [2, 4, 6, 8, 10, 12] Ví dụ 3: range[] hoạt động với step là số âmstart = 2 stop = -14 step = -2 print[list[range[start, stop, step]]] print[list[range[start, 14, step]]]Giá trị trả về: [2, 0, -2, -4, -6, -8, -10, -12] []Xem thêm: Các hàm Python tích hợp sẵn for bien_lap in chuoi_lap: Khối lệnh của forTrong cú pháp trên, chuoi_lap là chuỗi cần lặp, bien_lap là biến nhận giá trị của từng mục bên trong chuoi_lap trên mỗi lần lặp. Vòng lặp sẽ tiếp tục cho đến khi nó lặp tới mục cuối cùng trong chuỗi. Khối lệnh của for được thụt lề để phân biệt với phần còn lại của code. Ví dụ 1: #Lặp chữ cái trong quantrimang for chu in 'quantrimang': print['Chữ cái hiện tại:', chu] #Lặp từ trong chuỗi chuoi = ['bố','mẹ','em'] for tu in chuoi: print['Anh yêu', tu]Ta có kết quả đầu ra như sau: Chữ cái hiện tại: q Chữ cái hiện tại: u Chữ cái hiện tại: a Chữ cái hiện tại: n Chữ cái hiện tại: t Chữ cái hiện tại: r Chữ cái hiện tại: i Chữ cái hiện tại: m Chữ cái hiện tại: a Chữ cái hiện tại: n Chữ cái hiện tại: g Anh yêu bố Anh yêu mẹ Anh yêu emVí dụ 2: # Tính tổng tất cả các số trong danh sách A # Danh sách A A = [1, 3, 5, 9, 11, 2, 6, 8, 10] # Biến để lưu trữ tổng các số là tong, gán giá trị ban đầu bằng 0 tong = 0 # Vòng lặp for, a là biến lặp for a in A: tong = tong+a # Đầu ra: Tổng các số là 55 print["Tổng các số là", tong]Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là: Tổng các số là 55Về cơ bản, hàm range được tích hợp sẵn trong Python, hàm này cho phép trả về một chuỗi số bắt đầu từ 0 và tăng dần lên 1 cho đến khi đạt được một số cụ thể. Nói cách khác, hàm này nhận một số nguyên và trả cho bạn một range object. Hàm này thường được sử dụng để lặp lại kiểu trình tự, phổ biến nhất là for và loops. Vòng lặp [hay Loop] là thuật ngữ để chỉ một hành động hoặc cụm hành động lặp đi lặp lại nhiều lần. Trong quá trình coding, có những khi chúng ta muốn chạy đi chạy lại một câu code nhiều lần. Đó là lúc bạn cần đến vòng lặp. Có 2 loại vòng lặp chính trong Python, đó là: vòng lặp for và vòng lặp while. Chúng ta cùng đi vào tìm hiểu kĩ hơn về từng loại vòng lặp này nhé! 2. Vòng lặp for trong PythonVòng lặp for trong Python được sử dụng để lặp một biến dữ liệu qua một dãy [List, Tuple hoặc String] theo thứ tự mà chúng xuất hiện. Nếu số lần lặp cố định thì bạn nên sử dụng vòng lặp for. Còn nếu số lần lặp không cố định thì vòng lặp while sẽ là sự lựa chọn tốt hơn. 2.1. Cú pháp của vòng lặp forfor variable in sequence: Khối lệnh của for Ở cú pháp trên, variable là các biến dùng để nhận giá trị của từng dữ liệu trên mỗi lần lặp. Sequence là chuỗi cần lặp. Vòng lặp tiếp tục cho đến khi chúng ta đến mục cuối cùng trong chuỗi. Một lưu ý nhỏ về phần trình bày là code bên trong câu lệnh “for” sẽ được căn thụt lề để phân tách code rõ ràng và chính xác. Ví dụ về vòng lặp for: # Program to find the sum of all numbers stored in a list # List of numbers numbers = [4, 5, 3, 8, 6, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum] Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là: The sum is 48 2.2. Hàm Range[]Hàm range[] có thể được sử dụng để tạo ra một dãy số. Ví dụ, range[10] sẽ tạo một dãy số từ 0 đến 9 [có 10 số]. Chúng ta sử dụng hàm range[giá trị bắt đầu, giá trị kết thúc, khoảng cách giữa hai giá trị] để tạo dãy số tùy chỉnh. Python sẽ mặc định khoảng cách giữa 2 giá trị là 1 nếu bạn không cung cấp. Hàm không lưu tất cả các giá trị trong bộ nhớ. Nó chỉ lưu giá trị bắt đầu, giá trị kết thúc và khoảng cách giữa hai số, từ đó tạo ra số tiếp theo trong dãy. Để buộc hàm range[] xuất ra tất cả các mục, chúng ta có thể sử dụng hàm list[]. Dưới đây là ví dụ minh hoạ: print[range[10]] print[list[range[10]]] print[list[range[2, 8]]] print[list[range[2, 20, 3]]] Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là: range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17] Chúng ta cũng có thể sử dụng hàm range [] trong vòng lặp for để lặp một chuỗi số. Nó có thể được kết hợp với hàm len[] để lặp bằng cách sử dụng indexing. Ví dụ: # Program to iterate through a list using indexing genre = ['pop', 'rock', 'jazz'] # iterate over the list using index for i in range[len[genre]]: print["I like", genre[i]] Ta được kết quả đầu ra như sau: I like pop I like rock I like jazz 2.3. Vòng lặp for với elseKhối lệnh else được thực hiện khi các mục đã được lặp hết. Dưới đây là ví dụ để miêu tả: A = [0, 1, 5] for i in A: print[i] else: print["No items left."] Khi chạy xong, kết quả ta được: 0 1 5 No items left. Như vậy, vòng lặp for sẽ thực hiện print các mục của danh sách A cho đến khi hết các mục. Khi vòng lặp kết thúc, nó sẽ chạy khối lệnh else và print Đã hết số. Ngoài ra, nếu muốn dừng vòng lặp for, bạn có thể sử dụng lệnh break. Lúc này, khối lệnh else sẽ bị bỏ qua. Như vậy, else trong for sẽ chỉ được chạy khi không có lệnh break nào được thực hiện. Ví dụ: # program to display student's marks from record student_name = 'Soyuj' marks = {'James': 90, 'Jules': 55, 'Arthur': 77} for student in marks: if student == student_name: print[marks[student]] break else: print['No entry with that name found.'] Output: No entry with that name found. Hàm range[] giúp chúng ta có thể tạo ra một list một cách nhanh chóng. range[] có cú pháp như sau: range[[start], stop, [step]]Trong đó:
Ví dụ: list_1 = range[5] print[list_1] # [0, 1, 2, 3, 4] list_1 = range[2, 5] # [2, 3, 4] print[list_1] list_3 = range[1, 10, 3] # [1, 4, 7] print[list_3]Hàm xrange[] tương tự như range[] với một điểm khác biệt đó là Python Compiler sẽ giải phóng dung lượng bộ nhớ mà máy tính chiếm giữ khi sử dụng hàm xrange[] ngược lại range[] thì không như vậy.
rangeHàm tíchhợp sẵn của Pythonrất hữu ích khi bạn cần thực hiện một hành động trong một số lần cụ thể.Là một Pythonista có kinh nghiệm, bạn rất có thể đã sử dụng nó trước đây.Nhưng nó làm được gì? Đến cuối hướng dẫn này, bạn sẽ:
Chúng ta hãy bắt đầu nào! Video liên quanCác cấu trúc lặp trong Python bao gồm hai loại: lặp với số bước xác định trước (for) và lặp với số bước không xác định (while). Nhìn chung hai cấu trúc lặp trong Python tương đối gần gũi với các cấu trúc lặp trong C hay C#. Cấu trúc lặp whileHãy xem ví dụ sau: word = '' while(word.lower() != 'close'): word = input('Enter a word: ') print(f'You have typed "{word}"')Trong ví dụ này chúng ta liên tục yêu cầu người dùng nhập vào một từ. Nếu người dùng nhập từ ‘close’ thì sẽ kết thúc vòng lặp (và kết thúc chương trình). Nếu người dùng nhập từ khác thì sẽ yêu cầu nhập lại. Chúng ta không biết khi nào người dùng sẽ nhập ‘close’, và cũng có thể là không bao giờ. Vì vậy, vòng lặp while được gọi là vòng lặp với số bước không xác định trước. Biến word đóng vai trò là biến điều khiển cho biểu thức điều kiện. Hãy xem một ví dụ khác: # tính tổng các số từ 1 đến 99 sum = 0 i = 1 while i < 100: sum += i i += 1 print(sum)Trong ví dụ này chúng ta tính tổng các số từ 1 đến 99. Để thực hiện việc này chúng ta sử dụng một biến i với vai trò biến đếm. Biến i ban đầu nhận giá trị 1. Qua mỗi vòng lặp i sẽ tăng thêm 1 đơn vị, và biến sum sẽ cộng thêm giá trị bằng i. Quá trình này sẽ lặp đi lặp lại chừng nào i vẫn nhỏ hơn 100. Đến khi i đạt giá trị 100 thì vòng lặp kết thúc. Cấu trúc while của Python là một lệnh phức hợp với một mệnh đề. Trong đó, header là while Chừng nào biểu thức logic còn nhận giá trị True thì sẽ thực hiện danh sách lệnh ở phần suite. Để tránh tạo thành vòng lặp vô tận, bên trong danh sách lệnh của vòng lặp while phải có lệnh có tác dụng làm thay đổi giá trị của biểu thức logic. Trong ví dụ thứ nhất, chúng ta liên tục yêu cầu người dùng nhập vào giá trị mới cho biến char. Điều này đảm bảo khả năng thoát khỏi vòng lặp. Trong ví dụ thứ hai, chúng ta làm biến đổi giá trị của i qua mỗi vòng lặp (tăng thêm 1 đơn vị). Điều này đảm bảo đến một lúc nào đó i sẽ có giá trị lớn hơn 100 và kết thúc vòng lặp. Cấu trúc lặp forHãy xem các ví dụ sau # in ra các số trong phạm vi từ 1 đến 100 for n in range(100): print(n + 1, end = '\t') # in ra các số trong phạm vi từ 100 đến 199 for n in range(100, 200): print(n, end = '\t') # in ra các số lẻ trong phạm vi từ 1 đến 99 for n in range(1, 100, 2): print(n, end = '\t')Cấu trúc for cho phép lặp lại việc thực hiện khối code theo một số lần xác định sẵn từ đầu. Cấu trúc for cũng là một lệnh phức hợp với một clause (khác với cấu trúc rẽ nhánh if có nhiều clause) trong đó header có dạng for Số lần lặp và cách thức lặp được tạo ra bởi hàm range(). Hàm range() trả về một biến chứa một dãy các giá trị nằm trong một khoảng xác định theo quy luật. Hàm này có 3 dạng:
Trong hàm range, start, stop và step có thể nhận cả giá trị âm và dương:
Với danh sách giá trị mà hàm range() tạo ra như trên, cấu trúc for sẽ lần lượt lấy từng giá trị gán cho biến chạy (biến n trong các ví dụ trên) và thực hiện khối lệnh. Như vậy, số lần lặp đã xác định sẵn từ lúc gọi hàm range(). Sử dụng vòng lặp for với các kiểu danh sách khácỞ trên chúng ta sử dụng for với các giá trị lấy từ danh sách tạo ra bởi hàm range(). Trong Python, nhiều loại dữ liệu tập hợp có thể sử dụng cùng vòng for. Ví dụ: for c in 'Hello world': print(c, end = '\t')Trong ví dụ trên danh sách giá trị lại là xâu ký tự ‘Hello world’. Biến chạy sẽ lần lượt nhận từng ký tự từ xâu, bắt đầu từ ký tự đầu tiên ‘H’ đến ký tự cuối cùng ‘d’. Trong ví dụ trên chúng ta chỉ đơn giản là in ký tự tương ứng ra console. Hãy xem một ví dụ khác: companies = ['Apple', 'Google', 'Microsoft', 'Huawei', 'Yandex', 'Facebook'] for c in companies: print(c)Trong ví dụ trên, companies là một biến kiểu danh sách (list). Kiểu dữ liệu này chúng ta chưa học nhưng bạn có thể hình dung nó tương tự như kiểu mảng của C. Biến kiểu list cũng có thể trở thành danh sách dữ liệu cho vòng lặp for. Khi này biến chạy c sẽ lần lượt nhận các giá trị trong danh sách theo thứ tự. Một ví dụ khác: # tính tổng các số dương từ một tuple total = 0 for num in (-22.0, 3.5, 8.1, -10, 0.5): if num > 0: total = total + numTrong ví dụ này bạn tính tổng các số dương từ một tuple. Tuple cũng là một kiểu dữ liệu tập hợp mà chúng ta sẽ học chi tiết sau. Không phải kiểu dữ liệu tập hợp nào cũng có thể làm danh sách lặp cho vòng for. Những kiểu dữ liệu sử dụng được cho vòng for được gọi là các kiểu iterable. Điều khiển vòng lặp, break và continueKhi làm việc với vòng lặp có thể xuất hiện hai tình huống: (1) Bạn muốn kết thúc vòng lặp sớm hơn dự định hoặc theo điều kiện. Lấy ví dụ, bạn cầm một danh sách khách hàng và muốn tìm tên một khách trong đó. Bạn xem lần lượt từng tên từ đầu danh sách. Nếu gặp tên khách hàng cần tìm, bạn sẽ dừng lại chứ không tiếp tục xem đến hết danh sách nữa. Ở đây bạn phá vỡ hoàn toàn vòng lặp. (2) Bạn muốn bỏ qua một chu kỳ trong vòng lặp để bắt đầu chu kỳ tiếp theo. Lấy ví dụ, bạn dự định chơi 10 ván bài. Ở ván thứ 3 bài xấu quá, bạn quyết định bỏ cuộc để chờ chơi ván tiếp theo. Ở đây bạn không dừng hoàn toàn vòng lặp mà chỉ bỏ không làm những việc nhẽ ra phải làm trong chu kỳ đó và khởi động một chu kỳ mới. Hai tình huống này được Python giải quyết bằng hai lệnh tương ứng: break (phá vỡ vòng lặp, kết thúc sớm) và continue (bỏ qua chu kỳ hiện tại, bắt đầu một chu kỳ lặp mới). Cả hai loại vòng lặp (for, while) đều có thể sử dụng break và continue. Ví dụ với break: # breaking out of a loop early for item in [1, 2, 3, 4, 5]: if item == 3: print(item, " ...break!") break print(item, " ...next iteration")Ví dụ này cho ra kết quả như sau: 1 ...next iteration 2 ...next iteration 3 ...break!# demonstrating a `continue` statement in a loop x = 1 while x < 4: print("x = ", x, ">> enter loop-body <<") if x == 2: print("x = ", x, " continue...back to the top of the loop!") x += 1 continue x += 1 print("--reached end of loop-body--")Ví dụ này cho ra kết quả như sau: x = 1 >> enter loop-body << --reached end of loop-body-- x = 2 >> enter loop-body << x = 2 continue...back to the top of the loop! x = 3 >> enter loop-body << --reached end of loop-body--Kết luậnTrong bài học này chúng ta đã xem xét cách sử dụng vòng lặp trong Python, bao gồm vòng lặp for và vòng lặp while. Chúng ta cũng học về cách điều khiển vòng lặp với break và continue. Có thể nhận xét rằng vòng lặp trong Python không có nhiều khác biệt với vòng lặp ở các ngôn ngữ khác. Đặc biệt, từ khóa break và continue cơ bản là giống hệt như trong C. Vòng lặp for của Python rất gần gũi với vòng lặp for của C và foreach của C#. + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn. |