arrows-split-up-and-leftBài tập Break, Continue, Pass - Nâng cao

Các bài tập về Break, Continue, Pass - Nâng cao

  1. Viết hàm is_prime kiểm tra số nguyên tố sử dụng vòng lặp với else. Nếu tìm thấy ước số, dùng break.

def is_prime(n):
    # Code của bạn ở đây
    pass

# Test
print(is_prime(17))  # True
print(is_prime(15))  # False
circle-info

Gợi ý: Dùng for...else. Khối else chỉ chạy khi vòng lặp kết thúc bình thường (không có break)

  1. Viết hàm find_all_positions tìm tất cả vị trí của một giá trị trong list. Nếu không tìm thấy, trả về list rỗng.

def find_all_positions(my_list, value):
    # Code của bạn ở đây
    pass

# Test
numbers = [1, 2, 3, 2, 4, 2, 5]
print(find_all_positions(numbers, 2))  # [1, 3, 5]
  1. Viết hàm nested_loop_break với vòng lặp lồng nhau. Khi tìm thấy cặp số có tổng bằng target, dừng cả hai vòng lặp.

def nested_loop_break(numbers, target):
    # Code của bạn ở đây
    # Trả về tuple (i, j, num1, num2) hoặc None
    pass

# Test
numbers = [1, 2, 3, 4, 5]
result = nested_loop_break(numbers, 7)
print(result)  # (1, 3, 2, 5) - vì 2 + 5 = 7
  1. Viết hàm skip_consecutive_duplicates in các phần tử trong list nhưng bỏ qua các phần tử trùng lặp liên tiếp.

  1. Viết hàm validate_list kiểm tra xem tất cả phần tử trong list có thỏa điều kiện không. Nếu gặp phần tử không thỏa, dừng ngay và trả về False.

  1. Viết hàm process_batch xử lý list theo batch (nhóm). Bỏ qua batch rỗng, dừng khi gặp batch có giá trị None.

  1. Viết hàm find_longest_sequence tìm chuỗi con dài nhất chỉ chứa số dương. Dừng chuỗi khi gặp số không dương.

  1. Viết hàm safe_division thực hiện phép chia cho list các số. Bỏ qua trường hợp chia cho 0, dừng khi gặp chuỗi (không phải số).

  1. Viết hàm parse_commands xử lý list các lệnh. Dừng khi gặp "STOP", bỏ qua lệnh rỗng hoặc comment (bắt đầu bằng #).

  1. Viết hàm search_2d_all tìm tất cả vị trí của một giá trị trong ma trận 2D.

  1. Viết hàm interactive_calculator tạo máy tính đơn giản. Cho phép nhập phép tính liên tục, nhập "quit" để thoát, bỏ qua input không hợp lệ.

  1. Viết hàm process_until_condition xử lý list cho đến khi thỏa một điều kiện nào đó (hàm callback).

  1. Viết hàm filter_with_lookahead lọc list, bỏ qua phần tử nếu phần tử tiếp theo cũng giống nó.

  1. Viết hàm break_on_pattern tìm kiếm một pattern (chuỗi con) trong list. Dừng khi tìm thấy pattern.

  1. Viết hàm rate_limiter mô phỏng rate limiting. Xử lý tối đa n request, bỏ qua request không hợp lệ, dừng khi gặp "STOP".

  1. Viết hàm nested_search_optimized tìm kiếm trong danh sách lồng nhau, tối ưu bằng cách dừng sớm khi có thể.

  1. Viết hàm conditional_continue xử lý list với nhiều điều kiện continue khác nhau.

  1. Viết hàm state_machine mô phỏng state machine đơn giản. Chuyển state dựa trên input, dừng khi đạt state cuối.

  1. Viết hàm early_exit_optimization tính toán cho đến khi đạt độ chính xác mong muốn hoặc hết số lần lặp.

  1. Viết hàm transaction_processor xử lý list các giao dịch. Dừng khi tổng vượt quá limit, bỏ qua giao dịch không hợp lệ.

  1. Viết hàm parse_nested_json (mô phỏng) parse dữ liệu lồng nhau, dừng khi gặp lỗi, bỏ qua các trường optional.

  1. Viết hàm multi_level_break với 3 vòng lặp lồng nhau. Sử dụng flag để thoát tất cả các vòng lặp khi tìm thấy mục tiêu.

  1. Viết hàm lazy_evaluation xử lý list lớn, dừng ngay khi tìm đủ n phần tử thỏa điều kiện (tối ưu performance).

  1. Viết hàm circuit_breaker mô phỏng circuit breaker pattern. Sau n lần thất bại liên tiếp, "mở circuit" và dừng xử lý.

  1. Viết hàm pagination_processor xử lý dữ liệu theo trang. Bỏ qua trang rỗng, dừng khi không còn dữ liệu hoặc gặp lỗi.

Last updated