Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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 for để vẽ các hình khác nhau trên bảng điều khiển, chứa các ký hiệu và dấu hiệu, được sắp xếp theo hàng và cột trên bảng điều khiển. Chúng tôi sẽ sử dụng các vòng lặp đơn và lồng nhau (các vòng lặp nằm trong các vòng lặp khác), tính toán và kiểm tra, để in trên bảng điều khiển các số liệu đơn giản và không quá đơn giản theo các kích thước được chỉ định

Vấn đề. Hình chữ nhật 10 x 10 Sao

In 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ẫn

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Ví dụ hoạt động như thế nào? . Giá trị mặc định của biến là

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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án

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. Hình chữ nhật có N x N Sao

Viế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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
6
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
63
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
8
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
8
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
84for1
for1
for1
for1

Gợi ý và hướng dẫn

Nhiệm vụ tương tự như trước

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiể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

  • Khi các vòng lặp lồng nhau bắt đầu thực thi, vòng lặp bên ngoài bắt đầu trước. khởi tạo biến điều khiển của nó được thực hiện và sau khi kiểm tra kết thúc vòng lặp, mã trong phần thân của nó được thực thi
  • Sau đó, vòng lặp bên trong được thực hiện. Vị trí bắt đầu của biến điều khiển được khởi tạo, việc kiểm tra kết thúc vòng lặp được thực hiện và mã trong phần thân của nó được thực thi
  • Khi đạt đến giá trị đặt cho phần cuối của vòng lặp, chương trình sẽ quay lại một bước và tiếp tục thực hiện vòng lặp ngoài trước đó. Biến điều khiển của vòng lặp bên ngoài thay đổi theo một bước, kiểm tra được thực hiện để xem liệu điều kiện để kết thúc vòng lặp có được đáp ứng hay không và một lần thực hiện mới của vòng lặp lồng nhau (bên trong) được bắt đầu
  • Việc này được lặp lại cho đến khi biến của vòng lặp ngoài thỏa mãn điều kiện kết thúc vòng lặp

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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Trong Python, khi giá trị ban đầu chuẩn của biến trong vòng lặp (

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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ả for6, chúng tôi viết. for7. 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 được

Hã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 for6 dấu hoa thị. Sau khi vòng lặp bên trong hoàn thành việc thực thi của nó trong lần lặp đầu tiên của vòng lặp bên ngoài, thì vòng lặp bên ngoài sẽ tiếp tục, tôi. e. sẽ in một dòng trống trên bàn điều khiển. Sau đó, vòng lặp đầu tiên sẽ được cập nhật và toàn bộ vòng lặp thứ hai (lồng nhau) sẽ được thực hiện lại. Vòng lặp bên trong sẽ được thực hiện nhiều lần như phần thân của vòng lặp bên ngoài được thực hiện, trong trường hợp này là _______96_______6** lần

Vấn đề. Quảng trường Ngôi sao

In 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
**********5

Gợi ý và hướng dẫn

Vấ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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. Tam giác đô la

Viế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
**********0

Gợi ý và hướng dẫn

Bà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 for6. Từ dữ liệu đầu vào và đầu ra ví dụ, chúng tôi thấy rằng số lượng đô la phụ thuộc vào hàng chúng tôi đang ở tại thời điểm in, tôi. e. 1 đô la có nghĩa là hàng đầu tiên, 3 đô la có nghĩa là hàng thứ ba, v.v. Hãy xem chi tiết ví dụ sau. Ta thấy rằng biến của vòng lặp lồng nhau được kết nối với biến của vòng lặp bên ngoài. Bằng cách này, chương trình của chúng tôi in hình tam giác mong muốn

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. khung vuông

Viế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
**********4

Gợi ý và hướng dẫn

Chúng ta có thể giải quyết vấn đề theo cách sau

  • Chúng tôi đọc từ bảng điều khiển số for6
  • Chúng tôi in phần trên. đầu tiên là một dấu hiệu **********1, sau đó là n-2 lần **********2 và cuối cùng là một dấu hiệu **********1
  • Chúng tôi in phần giữa. chúng tôi in n-2 hàng, như lần đầu tiên chúng tôi in ký hiệu **********4, sau đó n-2 lần **********2 và cuối cùng lại là ký hiệu **********4. Chúng ta có thể làm điều này với các vòng lặp lồng nhau
  • Chúng tôi in phần dưới. đầu tiên là một dấu hiệu **********1, sau đó là n-2 lần **********2 và cuối cùng là một dấu hiệu **********1

Đây là một ví dụ triển khai ý tưởng trên với các vòng lặp lồng nhau

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. Hình thoi sao

Viế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
**********9

Gợ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 for6 và các biến của các vòng lặp. Đối với vòng lặp đầu tiên, chúng ta có thể sử dụng các nguyên tắc sau

  • Chúng tôi in **********7 khoảng trắng
  • Chúng tôi in **********0
  • Chúng tôi in **********9 lần **********0

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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python
Trong Python, bước chuẩn của vòng lặp for 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.
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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 2

Thử nghiệm trong Hệ thống Thẩm phán

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. cây giáng sinh

Viế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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
042____0_______05
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
06
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
07InputOutputInputOutput3
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
08
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
09
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
10
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
114
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
12
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
13
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
14
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
15
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
16

Gợi ý và hướng dẫn

Từ 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à **********4 và phần cuối cùng lại là dấu hoa thị, nhưng lần này chỉ có khoảng trắng trước chúng. Việc in có thể được thực hiện chỉ với một vòng lặp và phép nhân chuỗi hoạt động, mà chúng ta sẽ sử dụng một lần cho các dấu hoa thị và một lần cho các khoảng trắng

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiểm tra giải pháp của bạn ở đây.

Vẽ các hình phức tạp hơn

Hã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âm

Viế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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
19
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
184____0_______21
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
22
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
23
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
21
Đầu vàoĐầu ra5____0_______25
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
26
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
27
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
26
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
25

Gợi ý và hướng dẫn

Từ 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

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
30 dấu sao, for6 khoảng trắng và
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
30 dấu sao

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Khi vẽ phần ở giữa, chúng ta cần kiểm tra xem hàng có phải là

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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ắng

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Thử nghiệm trong Hệ thống Thẩm phán

Kiể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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
6
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
35
3______0_______36
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
8
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
384____0_______39
for1
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
41
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
41InputOutputInputOutput5
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
43
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
44
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
45
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
46
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
468
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
48
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
49
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
50
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
51
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
52
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
52
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
52
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
52

Gợi ý và hướng dẫn

Từ phần mô tả vấn đề, chúng tôi hiểu rằng ngôi nhà có kích thước là for6 x for6. Những gì chúng ta thấy từ đầu vào và đầu ra ví dụ là

  • Ngôi nhà được chia thành hai phần. mái nhà và cơ sở

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Khi for6 là số chẵn thì điểm của nhà cái là "xỉu"
  • Khi for6 là số lẻ, mái nhà có một đầu nhọn và lớn hơn một hàng so với đế
mái nhà
  • Nó bao gồm dấu hoa thị và dấu gạch ngang
  • Ở phần cao nhất, có một hoặc hai dấu hoa thị, tùy thuộc vào n chẵn hay lẻ, cũng như các dấu gạch ngang
  • Ở phần dưới cùng, có nhiều dấu hoa thị và ít hoặc không có dấu gạch ngang
  • Với mỗi hàng thấp hơn, dấu hoa thị tăng thêm 2 và dấu gạch ngang cũng giảm 2
cơ sở
  • Chiều cao là for6 hàng
  • Nó được tạo thành từ dấu hoa thị và dấu gạch chéo dọc
  • Mỗi hàng bao gồm 2 dấu gạch chéo dọc – một ở đầu và một ở cuối hàng, đồng thời có dấu hoa thị giữa các dấu gạch chéo dọc với độ dài chuỗi là
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    61

Chúng tôi đọc số đầu vào for6 từ bảng điều khiển và viết giá trị của nó vào một biến

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python
Điều rất quan trọng là kiểm tra xem dữ liệu đầu vào có chính xác không. Trong các tác vụ này, việc chuyển đổi trực tiếp dữ liệu từ bảng điều khiển thành loại
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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à

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
64

  • Nếu for6 là số lẻ sẽ có 1 sao
  • Nếu chẵn sẽ có 2

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Tính chiều dài của mái nhà. Nó bằng một nửa của for6. Viết kết quả vào biến

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
67

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Ghi chú. Để sử dụng

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
69. Điều này được thực hiện bằng lệnh
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
70. Bạn nên viết
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
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 for6 là số lẻ, thì chiều dài của mái nhà lớn hơn chiều dài của chân đế một hàng

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ử

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
73

Ví 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

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
74.
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
75

Sau 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

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
67. Trên mỗi lần lặp, chúng ta sẽ

  • Tính số gạch ngang cần vẽ. Số sẽ bằng
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    77. Chúng tôi lưu trữ nó trong biến
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    78

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Chúng tôi in trên bàn điều khiển. "dấu gạch ngang" (
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    78 lần) + "dấu hoa thị" (
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    64 lần) + "dấu gạch ngang" (
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    78 lần)

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Trước khi quá trình lặp kết thúc, chúng tôi cộng 2 vào
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    64 (số lượng dấu hoa thị)

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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

  • Chúng tôi bắt đầu với một vòng lặp từ 0 đến for6 (độc quyền)
  • Chúng tôi in trên bàn điều khiển. **********4 + **********0 (
    for row in range(5):
        print('*', end='')
    
        for col in range(4):
            print(' *', end='')
    
        print()
    
    61 lần) + **********4

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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án

Kiểm tra giải pháp của bạn ở đây.

Vấn đề. Kim cương

Viế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**********0
2______0_______63____0_______36
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
91
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
36InputOutputInputOutputInputOutput4
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
39
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
94
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
395
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
43
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
97
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
98
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
97
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
43
6______96_______01
for02
for03
for02
for01
InputOutputInputOutputInputOutput7for06
for07
for08
for09
for08
for07
for06
8______0_______48
for14
for15
for16
for15
for14
for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
48
9____96_______20
for21
for22
for23
for24
for23
for22
for21
for20

Gợi ý và hướng dẫn

Nhữ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 for6 x for6. Từ đầu vào và đầu ra ví dụ, chúng ta có thể kết luận rằng tất cả các hàng chứa chính xác __96_______6 ký hiệu và tất cả các hàng, ngoại trừ hàng trên cùng và dưới cùng, đều có 2 dấu hoa thị. Chúng ta có thể chia viên kim cương thành 2 phần

  • Phần trên. Nó bắt đầu từ đầu trên xuống giữa
  • Phần dưới. Nó bắt đầu từ hàng bên dưới hàng giữa và đi xuống hàng dưới (bao gồm)
Phần trên
  • Nếu n là số lẻ thì bắt đầu bằng 1 dấu hoa thị
  • Nếu n là số chẵn thì bắt đầu bằng 2 dấu hoa thị
  • Với mỗi hàng xuống, các dấu hoa thị sẽ cách xa nhau hơn
  • Khoảng cách giữa, trước và sau dấu hoa thị được lấp đầy bằng dấu gạch ngang
Phần dưới
  • Với mỗi hàng xuống, các dấu hoa thị lại gần nhau hơn. Điều này có nghĩa là khoảng cách (dấu gạch ngang) giữa chúng ngày càng nhỏ hơn và khoảng cách (dấu gạch ngang) ở bên trái và bên phải ngày càng lớn hơn
  • Phần dưới cùng có 1 hoặc 2 dấu hoa thị, tùy thuộc vào n là số chẵn hay số lẻ
Phần trên và phần dưới của viên kim cương
  • Trên mỗi hàng, ngoại trừ hàng ở giữa, các dấu hoa thị được bao quanh bởi các dấu gạch ngang bên trong và bên ngoài
  • Trên mỗi hàng, có khoảng cách giữa hai dấu hoa thị, ngoại trừ hàng đầu tiên và hàng cuối cùng (đôi khi dấu hoa thị là 1)

Chúng tôi đọc giá trị của for6 từ bảng điều khiển, chuyển đổi nó thành loại

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()
63

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Chú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 for34 (các dấu gạch ngang bên ngoài các dấu hoa thị). Nó bằng for35, làm tròn xuống

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Sau khi tính được for34, chúng ta bắt đầu vẽ phần trên của viên kim cương. Chúng ta có thể bắt đầu bằng cách chạy một vòng lặp từ for37 (i. e. làm tròn xuống)

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 in trên bảng điều khiển các dấu gạch ngang bên trái (với chiều dài for34) và dấu hoa thị đầu tiên ngay sau chúng

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Ta sẽ tính khoảng cách giữa hai dấu hoa thị. Chúng ta có thể làm điều này bằng cách trừ đi từ n số dấu gạch ngang bên ngoài và số 2 (số dấu hoa thị, i. e. đường viền của viên kim cương). Chúng ta cần lưu trữ kết quả của phép trừ trong một biến for39

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Nếu for39 thấp hơn 0, chúng tôi biết rằng trên hàng chỉ nên có 1 sao. Nếu nó lớn hơn hoặc bằng 0 thì chúng ta phải in các dấu gạch ngang có độ dài for39 và một dấu hoa thị sau chúng

  • Chúng tôi in trên bảng điều khiển các dấu gạch ngang bên ngoài bên phải với chiều dài for34

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

  • Ở cuối vòng lặp, chúng tôi giảm for34 xuống 1 (các dấu hoa thị đang di chuyển ra xa nhau)

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 for34 với 1 ở cuối vòng lặp, chúng tôi sẽ tăng nó lên 1 ở đầu vòng lặp. Ngoài ra, vòng lặp sẽ lặp từ 0 đến for45

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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án

Kiể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

print_me = '*' * 5

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 for lồng nhau

for row in range(5):
    print('*', end='')

    for col in range(4):
        print(' *', end='')

    print()

phòng thí nghiệm. Vẽ hình trong môi trường web

Bâ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 Web

Phá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ỳ for

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Gợi ý và hướng dẫn

Chú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)

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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 **********1

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Tìm Flask trong cửa sổ xuất hiện và nhấp vào nút [Cài đặt gói]

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Để 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.

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Đoạn mã trên tạo một biểu mẫu web

với một trường for49 để 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ống

Hành động sẽ xử lý dữ liệu được gọi là for50, có nghĩa là hàm for51 trong tệp for52

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Mã từ hàm for51 lấy số đã nhập for54 từ biểu mẫu và chuyển nó tới hàm for55. Hàm for55 tính toán và tính toán số ngôi sao đầy đủ, số ngôi sao trống và số nửa ngôi sao, sau đó tải lại trang, nhưng với những trang mới được gửi giá trị của các biến cho các ngôi sao. Chúng tôi thực hiện nó như sau

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

Chúng tôi đến địa chỉ được chỉ định và tận hưởng dự án đã hoàn thành

Viết chương trình sử dụng các vòng lặp lồng nhau để vẽ mẫu này Python

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.