28.7. Đoạn chương trình sau có lỗi không?m, n = 10, 4def f(a): k = n + m...

Câu hỏi:

28.7. Đoạn chương trình sau có lỗi không?

m, n = 10, 4

def f(a):

       k = n + m + a

       return k

f(5)

Câu trả lời:
Người trả lời: GV. Đỗ Thị Long
Để giải câu hỏi trên, ta cần nhận biết lỗi trong đoạn chương trình đã cho. Sau đó, ta sẽ phân tích lý do tại sao đoạn chương trình đó có lỗi.

Đoạn chương trình đã cho:
```python
m, n = 10, 4
def f(a):
k = n + m + a
return k
f(5)
```

Phân tích:
- Biến `m` và `n` được khai báo bên ngoài hàm `f()`, nghĩa là chúng là biến toàn cục và có thể được truy cập bên trong hàm `f()`.
- Trong hàm `f()`, chương trình cố gắng thực hiện phép tính `k = n + m + a`. Tuy nhiên, biến `m` và `n` được truy cập bên trong hàm `f()` không qua tham số của hàm đó.
- Khi gọi hàm `f(5)`, chương trình sẽ báo lỗi vì không thể truy cập giá trị của biến `m` và `n` mà không thông qua tham số của hàm.

Câu trả lời cho câu hỏi là: Không, đoạn chương trình trên có lỗi. Các biến `m` và `n` được khai báo bên ngoài hàm f() nên không thể truy cập giá trị của chúng bên trong hàm mà không thông qua tham số của hàm. Để sửa lỗi này, ta có thể gửi giá trị của `m` và `n` vào hàm thông qua tham số.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.05204 sec| 2201.148 kb