Kết quả nào là output của đoạn code dưới đây?
def f(value): while True:
value = (yield value)
a = f(10)
print(next(a))
print(next(a))
print(a.send(20))
def f(value): while True:
value = (yield value)
a = f(10)
print(next(a))
print(next(a))
print(a.send(20))
Trả lời:
Đáp án đúng: C
Đoạn code định nghĩa một generator `f` nhận một giá trị ban đầu `value`. Generator này liên tục trả về giá trị hiện tại của `value` và sau đó cập nhật `value` bằng giá trị được gửi đến thông qua `send()`.
1. `a = f(10)`: Khởi tạo generator `f` với giá trị ban đầu là 10.
2. `print(next(a))`: Lần gọi `next(a)` đầu tiên sẽ in ra giá trị ban đầu của `value`, tức là 10. Generator tạm dừng ở dòng `value = (yield value)`.
3. `print(next(a))`: Lần gọi `next(a)` thứ hai tiếp tục generator. Vì không có giá trị nào được gửi đến thông qua `send()`, `value` được gán giá trị `None` (giá trị mặc định khi không gửi gì). Sau đó, `yield value` trả về `None` và in ra màn hình.
4. `print(a.send(20))`: Lệnh `a.send(20)` gửi giá trị 20 vào generator. `value` được gán bằng 20. Sau đó, `yield value` trả về 20 và in ra màn hình.
Vậy, output của đoạn code là: 10, None, 20.
Tổng hợp 200 câu hỏi trắc nghiệm lập trình Python có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
