Trong chương hiện tại, chúng ta sẽ xem xét các vòng lặp lồng nhau và cách sử dụng các vòng lặp Show
Vấn đề. Hình chữ nhật 10 x 10 SaoIn trên bảng điều khiển một hình chữ nhật được tạo từ các dấu hoa thị 10 x 10 Đầu vàoĐầu ra(Không)____97_______********** ********** ********** ********** ********** ********** ********** ********** ********** Gợi ý và hướng dẫnVí dụ hoạt động như thế nào? . Giá trị mặc định của biến là 4. Với mỗi lần lặp của vòng lặp, biến tăng thêm 1 trong khi nó nhỏ hơn 10. Bằng cách này, mã trong phần thân của vòng lặp được thực thi 10 lần - bao gồm từ 0 đến 9. Trong phần thân của vòng lặp, chúng tôi in một dòng mới trên bàn điều khiển 5, dòng này tạo ra một chuỗi gồm 10 dấu hoa thịThử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. Hình chữ nhật có N x N SaoViết chương trình nhận vào số dương n và in ra bàn điều khiển một hình chữ nhật được tạo từ N x N dấu hoa thị InputOutputInputOutputInputOutput2 6 63 8 8 84for 1for 1for 1for 1Gợi ý và hướng dẫnNhiệm vụ tương tự như trước Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Một vòng lặp lồng nhau là một cấu trúc trong đó phần thân của một vòng lặp (vòng ngoài) nằm bên trong một vòng lặp khác (vòng trong). Trong mỗi lần lặp của vòng lặp bên ngoài, toàn bộ vòng lặp bên trong được thực hiện. Điều này xảy ra theo cách sau
Dưới đây là một ví dụ minh họa các vòng lặp lồng nhau. Mục đích là để in một hình chữ nhật có dấu hoa thị N x N, trong đó đối với mỗi hàng, một vòng lặp lặp lại từ 1 đến N và đối với mỗi cột, một vòng lặp lồng nhau được thực hiện từ 1 đến N Trong Python, khi giá trị ban đầu chuẩn của biến trong vòng lặp ( 4) không phù hợp với chúng ta, chúng ta có thể thay đổi nó bằng cú pháp trên. TÔI. e. khi chúng tôi muốn vòng lặp bắt đầu từ 1 và xoay vòng bao gồm cả for 6, chúng tôi viết. for 7. Giá trị đầu tiên trong ngoặc đơn cho biết phần đầu của vòng lặp và giá trị thứ hai - phần cuối của vòng lặp, nhưng không bao gồm, i. e. vòng lặp kết thúc trước khi đạt đượcHãy xem ví dụ trên. Sau khi khởi tạo vòng lặp đầu tiên (bên ngoài), phần thân của nó, chứa vòng lặp thứ hai (lồng nhau), bắt đầu chạy. Nó in một dòng Vấn đề. Quảng trường Ngôi saoIn trên bàn điều khiển một hình vuông có N x N dấu hoa thị InputOutputInputOutputInputOutput2********** 0********** 03______97_______2********** 2********** 24____97_______5********** 5********** 5********** 5Gợi ý và hướng dẫnVấn đề tương tự như vấn đề cuối cùng. Điểm khác biệt ở đây là chúng ta cần tìm cách thêm khoảng trắng sau dấu sao để không có bất kỳ khoảng trắng thừa nào ở đầu và cuối Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. Tam giác đô laViết chương trình nhận số nguyên n và in ra hình tam giác làm bằng đô la kích thước n InputOutputInputOutputInputOutput3********** 9********** 0********** 14____97_______9********** 0********** 1********** 55____97_______9********** 0********** 1********** 5********** 0Gợi ý và hướng dẫnBài toán tương tự như bài vẽ hình chữ nhật và hình vuông. Một lần nữa, chúng ta sẽ sử dụng các vòng lặp lồng nhau, nhưng có một nhược điểm ở đây. Sự khác biệt là số lượng cột mà chúng tôi cần in phụ thuộc vào hàng mà chúng tôi đang ở trên đó và không phụ thuộc vào số đầu vào Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. khung vuôngViết chương trình nhận vào số nguyên dương n và vẽ lên console khung hình vuông có kích thước N x N Đầu vàoĐầu raĐầu vàoĐầu ra3____97_______2********** 3********** 24____97_______5********** 6********** 6********** 5InputOutputInputOutput5********** 9********** 0********** 0********** 0********** 96_______97_______4********** 5********** 5********** 5********** 5********** 4Gợi ý và hướng dẫnChúng ta có thể giải quyết vấn đề theo cách sau
Đây là một ví dụ triển khai ý tưởng trên với các vòng lặp lồng nhau Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. Hình thoi saoViết chương trình nhận vào số nguyên dương n và in ra hình thoi làm bằng các dấu hoa thị có kích thước N InputOutputInputOutput1********** 02********** 1********** 2********** 1Đầu vàoĐầu raĐầu vàoĐầu ra3____97_______4 ********** 5********** 6********** 5********** 44____97_______9********** 0********** 1********** 2********** 1********** 0********** 9Gợi ý và hướng dẫnĐể giải quyết vấn đề này, chúng ta cần chia hình thoi thành hai phần một cách tinh thần - phần trên, bao gồm cả hàng ở giữa và phần dưới. Để in từng phần, chúng tôi sẽ sử dụng hai vòng lặp riêng biệt, vì chúng tôi để người đọc quyết định sự phụ thuộc giữa
Phần thứ hai (dưới) sẽ được in tương tự, một lần nữa chúng tôi để người đọc làm Trong Python, bước chuẩn của vòng lặpfor là dương và bằng 1. Nếu chúng ta muốn thay đổi nó, chúng ta phải sử dụng tham số thứ ba trong các đối số của vòng lặp. 02. Tham số thứ ba, trong trường hợp này, cho biết biến sẽ tăng từ 0 đến 99, với bước 2Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. cây giáng sinhViết chương trình nhận vào số n (1 ≤ n ≤ 100) và in ra cây thông Noel có chiều cao là N+1 Đầu vàoĐầu raĐầu vàoĐầu ra1_______0_______03 042____0_______05 06 07InputOutputInputOutput3 08 09 10 114 12 13 14 15 16Gợi ý và hướng dẫnTừ các ví dụ, chúng ta thấy rằng cây Giáng sinh có thể được chia thành ba phần hợp lý. Phần đầu tiên là dấu hoa thị và khoảng trắng trước và sau chúng, phần giữa là Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vẽ các hình phức tạp hơnHãy xem cách vẽ các hình bằng cách sử dụng các vòng lặp lồng nhau với logic phức tạp hơn mà chúng ta cần suy nghĩ nhiều hơn trước khi viết mã Vấn đề. Kính râmViết chương trình nhận số nguyên n (3 ≤ n ≤ 100) và in ra chiếc kính râm có kích thước 5*N x N như trong ví dụ InputOutputInputOutput3_______0_______18 19 184____0_______21 22 23 21Đầu vàoĐầu ra5____0_______25 26 27 26 25Gợi ý và hướng dẫnTừ các ví dụ, chúng ta có thể thấy rằng kính râm có thể được chia thành ba phần – trên, giữa và dưới. Dưới đây là một phần của mã mà vấn đề có thể được giải quyết. Khi vẽ các hàng trên và dưới, chúng ta cần in 30 dấu sao, for 6 khoảng trắng và 30 dấu saoKhi vẽ phần ở giữa, chúng ta cần kiểm tra xem hàng có phải là 33 hay không vì trong các ví dụ, chúng ta có thể thấy rằng ở hàng này, chúng ta cần in các dấu gạch chéo dọc thay vì khoảng trắngThử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. Căn nhàViết chương trình nhận vào số n (2 ≤ n ≤ 100) và in ra ngôi nhà kích thước N x N như ví dụ InputOutputInputOutputInputOutput2 6 353______0_______36 8 384____0_______39for 1 41 41InputOutputInputOutput5 43 44 45 46 468 48 49 50 51 52 52 52 52Gợi ý và hướng dẫnTừ phần mô tả vấn đề, chúng tôi hiểu rằng ngôi nhà có kích thước là
mái nhà
cơ sở
Chúng tôi đọc số đầu vào 63 không phải là vấn đề, bởi vì người ta nói rằng chúng ta sẽ được cung cấp các số nguyên hợp lệ. Nếu bạn đang tạo các chương trình phức tạp hơn, bạn nên kiểm tra dữ liệu. Điều gì sẽ xảy ra nếu thay vì nhập số, người dùng nhập ký tự "A"?Để vẽ mái nhà, chúng tôi viết ra bao nhiêu dấu hoa thị mà chúng tôi bắt đầu bằng một biến có tên là 64
Tính chiều dài của mái nhà. Nó bằng một nửa của 67Ghi chú. Để sử dụng 68, làm tròn thành số nguyên lớn hơn, bất kể phần phân số, cần nhập thư viện 69. Điều này được thực hiện bằng lệnh 70. Bạn nên viết 70 (cũng như tất cả các mục nhập khác) ở đầu tệpĐiều quan trọng cần lưu ý là khi Trong Python, khi 2 kiểu số nguyên chia hết và có dư thì kết quả trả về sẽ là một số có dư. Nếu chúng ta muốn thực hiện phép chia số nguyên thuần túy không có phần dư, thì cần sử dụng toán tử 73Ví dụ Nếu chúng ta muốn làm tròn đến số nguyên lớn nhất tiếp theo, chúng ta cần sử dụng phương pháp 74. 75Sau khi tính được chiều dài của mái nhà, chúng ta tạo một vòng lặp từ 0 đến 67. Trên mỗi lần lặp, chúng ta sẽ
Sau khi chúng tôi hoàn thành phần mái, đã đến lúc làm phần đế. Nó dễ dàng hơn để in
Nếu chúng tôi đã viết mọi thứ chính xác, vấn đề của chúng tôi sẽ được giải quyết Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Vấn đề. Kim cươngViết chương trình nhận số nguyên n (1 ≤ n ≤ 100) và in ra viên kim cương size N như ví dụ sau InputOutputInputOutputInputOutput1********** 02______0_______63____0_______36 91 36InputOutputInputOutputInputOutput4 39 94 395 43 97 98 97 436______96_______01 for 02for 03for 02for 01InputOutputInputOutputInputOutput7 for 06for 07for 08for 09for 08for 07for 068______0_______48 for 14for 15for 16for 15for 14 489____96_______20 for 21for 22for 23for 24for 23for 22for 21for 20Gợi ý và hướng dẫnNhững gì chúng tôi biết từ mô tả của vấn đề là viên kim cương có kích thước
Phần trên
Phần dưới
Phần trên và phần dưới của viên kim cương
Chúng tôi đọc giá trị của 63Chúng tôi bắt đầu vẽ phần trên của viên kim cương. Điều đầu tiên chúng ta cần làm là tính số lượng các dấu gạch ngang bên ngoài Sau khi tính được Tại mỗi lần lặp của vòng lặp, các bước sau phải được thực hiện
Chúng tôi đã sẵn sàng với phần trên In phần dưới rất giống với phần trên. Sự khác biệt là thay vì giảm Việc lặp lại mã được coi là thông lệ không tốt vì mã trở nên rất khó bảo trì. Hãy tưởng tượng rằng chúng ta có một đoạn mã (e. g. logic để vẽ một hàng từ viên kim cương) ở một vài chỗ nữa và chúng tôi quyết định thay đổi nó. Để làm điều này, chúng ta sẽ phải đi qua tất cả các nơi và thay đổi nó ở mọi nơi. Bây giờ, hãy tưởng tượng rằng bạn cần sử dụng lại một đoạn mã không phải 1, 2 hay 3 lần mà là hàng chục lần. Một cách để khắc phục vấn đề này là sử dụng hàm. Bạn có thể tìm kiếm thêm thông tin về chúng trên Internet hoặc xem Chương “10” (Chức năng) Nếu chúng tôi đã viết tất cả một cách chính xác, thì vấn đề đã được giải quyết Thử nghiệm trong Hệ thống Thẩm phánKiểm tra giải pháp của bạn ở đây. Chúng ta đã học được gì từ chương này?Chúng tôi đã tìm hiểu về một trong những cách để tạo chuỗi
Chúng tôi đã học cách vẽ các hình bằng cách sử dụng các vòng lặp
phòng thí nghiệm. Vẽ hình trong môi trường webBây giờ chúng ta đã quen với các vòng lặp lồng nhau và cách sử dụng chúng để vẽ các hình trên bảng điều khiển, chúng ta có thể tìm hiểu một thứ thậm chí còn thú vị hơn. chúng ta có thể thấy cách vòng lặp có thể được sử dụng để vẽ trong môi trường Web. Chúng tôi sẽ tạo một ứng dụng web trực quan hóa xếp hạng số (một số từ 0 đến 100) với các ngôi sao. Loại trực quan hóa này phổ biến trong các trang web thương mại điện tử, đánh giá sản phẩm, xếp hạng sự kiện, xếp hạng ứng dụng và các trang khác Đừng lo lắng nếu bạn không hiểu tất cả mã, nó được viết chính xác như thế nào và dự án hoạt động như thế nào. Đó là điều bình thường, bây giờ chúng tôi đang học viết mã và chúng tôi còn lâu mới đạt được các công nghệ phát triển web. Nếu bạn gặp khó khăn trong việc viết dự án của mình bằng cách làm theo các bước, hãy yêu cầu trợ giúp trong Cộng đồng Reddit của SoftUni. https. //www. reddit. com/r/softuni/ Vấn đề. Xếp hạng – Trực quan hóa trong môi trường WebPhát triển một ứng dụng web để đánh giá trực quan (số từ 0 đến 100). Vẽ từ 1 đến 10 sao (với một nửa). Các ngôi sao được tạo ra với chu kỳ Gợi ý và hướng dẫnChúng tôi bắt đầu bằng cách tạo một dự án mới trong PyCharm từ [Tệp] -> [Dự án mới] (hoặc từ cửa sổ bắt đầu) Chúng tôi đặt tên có ý nghĩa cho dự án, ví dụ: "Xếp hạng". Chúng tôi chọn loại trình thông dịch Python hiện tại. Hãy để điều này là mặc định Chúng tôi sẽ lại sử dụng thư viện Flask, được sử dụng để tạo các ứng dụng web. Trước khi có thể bắt đầu viết mã, chúng ta cần cài đặt Flask. Hãy nhớ lại làm thế nào để làm điều này. Chúng tôi chuyển đến cài đặt của PyCharm [Tệp] -> [Cài đặt] -> [Dự án. Xếp hạng] -> [Thông dịch viên dự án]. Ở đó, chúng tôi nhấn nút Tìm Flask trong cửa sổ xuất hiện và nhấp vào nút [Cài đặt gói] Chúng tôi hiện đang thêm cấu trúc của dự án (các tệp phân công cho dự án này có thể được tải xuống từ đây). Sao chép chúng từ Windows Explorer và dán chúng vào thư mục Dự án xếp hạng bằng Sao chép/Dán Để mọi thứ hoạt động, chúng ta cần thêm mã. Đầu tiên, chúng tôi đi đến chỉ mục tập tin. html (từ thư mục mẫu) và tìm phần CẦN LÀM. Ở vị trí của họ, chúng tôi nhập mã sau đây. Đoạn mã trên tạo một biểu mẫu web với một trườngfor 49 để nhập một số trong khoảng [0… 100] và một nút [Tốc độ] để gửi dữ liệu từ biểu mẫu đến máy chủ. Sau đó, vẽ với ba vòng lặp for riêng biệt số lượng ngôi sao tương ứng - đầy, trống một nửa và trốngHành động sẽ xử lý dữ liệu được gọi là Mã từ hàm Chúng tôi bắt đầu dự án bằng [Ctrl+Shift+F10] (hoặc bằng [Nút phải] -> [Chạy 'ứng dụng']) và đợi nó tải Chúng tôi đến địa chỉ được chỉ định và tận hưởng dự án đã hoàn thành Nếu bạn gặp vấn đề với dự án mẫu ở trên, bạn có thể đặt câu hỏi trong Cộng đồng Reddit của SoftUni. https. //www. reddit. com/r/softuni/ Ví dụ về vòng lặp lồng nhau trong Python là gì?Trong ngôn ngữ lập trình Python có hai loại vòng lặp là vòng lặp for và vòng lặp while. Sử dụng các vòng lặp này, chúng ta có thể tạo các vòng lặp lồng nhau trong Python. Các vòng lặp lồng nhau có nghĩa là các vòng lặp bên trong một vòng lặp . Ví dụ, vòng lặp while bên trong vòng lặp for, vòng lặp for bên trong vòng lặp for, v.v.
một vòng lặp lồng nhau là gì đưa ra một ví dụ?Một vòng lặp lồng nhau là một vòng lặp (bên trong) xuất hiện trong thân vòng lặp của một vòng lặp (bên ngoài) khác . Vòng lặp bên trong hoặc bên ngoài có thể là bất kỳ loại nào. trong khi, làm trong khi, hoặc cho. Ví dụ, vòng lặp bên trong có thể là vòng lặp while trong khi vòng lặp bên ngoài có thể là vòng lặp for.
Vòng lặp lồng nhau trong Python trên sơ đồ là gì?Tương tự như Vòng lặp trong Python, các vòng lặp lồng nhau thực thi một khối câu lệnh cho đến khi điều kiện trả về là Sai . Các vòng lặp này được sử dụng khi chúng ta cần thực thi một khối câu lệnh với nhiều điều kiện. Chúng ta có thể sử dụng các vòng lặp này để duyệt qua mảng nhiều chiều, giá trị ma trận, dữ liệu dạng bảng. |