CodeGym /Khóa học Java /Python SELF VI /Một chút về vòng lặp và if

Một chút về vòng lặp và if

Python SELF VI
Mức độ , Bài học
Có sẵn

11.1 Toán tử điều kiện

Trong Python có cái gọi là toán tử điều kiện, về cơ bản nó là một phiên bản sửa đổi của toán tử if else.

Giả sử bạn có mã:


if a < b:
   min = a
else:
   min = b

Để mã đơn giản như vậy không chiếm nhiều không gian, người ta đã nghĩ ra một cách viết ngắn gọn. Nó sẽ trông như sau:


min = a if a < b else b

Dạng tổng quát của toán tử điều kiện có thể được mô tả như sau:


biến = giá trị1 if điều kiện else giá trị2

Nếu điều kiện là đúng, thì biến được gán giá trị1, nếu sai — giá trị2.

Lưu ý rằng không có dấu hai chấm sau điều kiện ở đây.

11.2 Toán tử else trong vòng lặp

Trong Python, toán tử else thường được liên kết với các toán tử điều kiện if. Tuy nhiên, việc sử dụng nó không bị hạn chế chỉ ở đó, và else cũng có thể được áp dụng trong các vòng lặp forwhile.

Khía cạnh không quá rõ ràng này của else trong ngữ cảnh vòng lặp có thể gây nhầm lẫn cho người mới học, nhưng nó mở ra những khả năng thú vị để kiểm soát dòng thực thi của chương trình.

Cách hoạt động của else trong vòng lặp

Trong các vòng lặp, else được thực thi sau khi vòng lặp hoàn thành, nhưng chỉ khi vòng lặp kết thúc một cách bình thường (tức là không bị ngắt bởi toán tử break). Đặc điểm này làm cho else trở nên hữu ích cho các tình huống cần kiểm tra xem vòng lặp có bị ngắt giữa chừng hay không.

Ví dụ sử dụng trong vòng lặp for:


for i in range(3):
    password = input('Nhập mật khẩu: ')
    if password == 'bí mật':
        print('Mật khẩu chính xác.')
        break
else:
    print('Không có lần thử nào hoặc tất cả các mật khẩu đã nhập đều không đúng.')               

Ở đây else được thực thi nếu người dùng nhập sai mật khẩu ba lần. Nếu người dùng nhập đúng mật khẩu, vòng lặp bị dừng bởi break, và khối else không được thực thi.

Ví dụ sử dụng trong vòng lặp while:


n = 5
while n > 0:
    print(n)
    n -= 1
else:
    print('Vòng lặp kết thúc bình thường.')               

Trong trường hợp này, else được thực thi sau khi vòng lặp kết thúc tự nhiên, vì điều kiện trở nên sai.

Ý nghĩa thực tiễn

Sử dụng else trong vòng lặp có thể đặc biệt hữu ích trong các thuật toán tìm kiếm, nơi cần xác định xem tìm kiếm có thành công hay không. Ví dụ, khi tìm kiếm một phần tử trong danh sách không tồn tại, có thể sử dụng else để hiển thị thông báo thất bại sau khi vòng lặp kết thúc.

Sử dụng else trong vòng lặp một cách rõ ràng và nhất quán để không gây nhầm lẫn cho những người đọc mã của bạn. Nhớ rằng else trong vòng lặp không phải lúc nào cũng dễ hiểu, nên cần thêm nhận xét hoặc chọn các cách khác để thực hiện logic, nếu điều đó làm cho mã dễ hiểu hơn.

11.3 Vòng lặp lồng nhau

Trong Python, bạn có thể viết logic rất phức tạp mà rất ngắn gọn. Trong một số trường hợp, bạn sẽ cần các if lồng nhau, và trong các trường hợp khác — vòng lặp lồng nhau. Đây là những gì chúng ta sẽ nói về:

Vòng lặp lồng nhau có nghĩa là có một vòng lặp bên trong một vòng lặp khác. Điều này cho phép, ví dụ, xử lý các mảng nhiều chiều, danh sách của danh sách hoặc các cấu trúc dữ liệu lồng nhau khác.

Vòng lặp lồng nhau gồm vòng lặp bên ngoài và một hoặc nhiều vòng lặp bên trong. Mỗi khi vòng lặp bên ngoài thực hiện một lần lặp, vòng lặp bên trong được thực hiện hoàn toàn:


for i in range(3):  # Vòng lặp bên ngoài
    for j in range(3):  # Vòng lặp bên trong
        print(f"({i}, {j})")               

Từ quan điểm của vòng lặp bên ngoài, vòng lặp bên trong và nội dung của nó — chỉ là một khối lệnh, được thực thi cho mỗi lần lặp của vòng lặp bên ngoài. Vòng lặp bên ngoài không quan tâm bên trong có gì, có bao nhiêu vòng lặp và v.v. Nó chỉ thực thi khối lệnh bên trong mỗi lần cho một biến từ danh sách của nó.

Hãy in ra màn hình bảng nhân — vòng lặp lồng nhau hoàn toàn phù hợp cho nhiệm vụ này. Tạo bảng nhân bằng cách sử dụng vòng lặp lồng nhau, nơi một vòng lặp chịu trách nhiệm về thừa số, và một vòng lặp khác — cho số nhân:


n = 5
for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(f"{i} * {j} = {i * j}", end='\t')
    print()  # Chuyển sang dòng mới cho thừa số tiếp theo               

Ví dụ này sẽ in bảng:


1 * 1 = 1	1 * 2 = 2	1 * 3 = 3	1 * 4 = 4	1 * 5 = 5	
2 * 1 = 2	2 * 2 = 4	2 * 3 = 6	2 * 4 = 8	2 * 5 = 10	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	3 * 4 = 12	3 * 5 = 15	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	4 * 5 = 20	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25

Để hiểu rõ hơn về vòng lặp lồng nhau bạn chỉ cần thực hành nhiều hơn — đó là cách nhanh nhất để nắm bắt hầu như mọi thứ không rõ ràng trong lập trình

1
Опрос
Vòng lặp và rẽ nhánh,  4 уровень,  5 лекция
недоступен
Vòng lặp và rẽ nhánh
Vòng lặp và rẽ nhánh
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION