m,n=10,4
def f(a):
n=n+m+a
return n
f(5)
Quảng cáo
2 câu trả lời 264
Đoạn chương trình của bạn có lỗi. Lỗi ở đây là lỗi UnboundLocalError: local variable 'n' referenced before assignment. Điều này xảy ra bởi vì bạn đang cố gắng sử dụng biến n trong hàm f(a) trước khi nó được khai báo trong hàm đó.
Trong Python, một biến được khai báo bên ngoài hàm (như n trong trường hợp này) không thể được tham chiếu bên trong hàm trừ khi nó được truyền vào như một đối số hoặc được khai báo là toàn cục bằng từ khóa global.
Dưới đây là phiên bản sửa lỗi của chương trình:
m,n=10,4
def f(a):
global n
n=n+m+a
return n
print(f(5))
Khi chạy đoạn mã trên, giá trị được in ra sẽ là 19 (tức là 4 + 10 + 5). Quy trình chạy của chương trình như sau:
Khởi tạo m = 10 và n = 4.
Khi gọi hàm f(5), biến n được cập nhật thành n = n + m + a = 4 + 10 + 5 = 19.
Giá trị n sau cùng được trả về và in ra.
Đoạn chương trình của bạn có lỗi. Lỗi ở đây là lỗi UnboundLocalError: local variable 'n' referenced before assignment. Điều này xảy ra bởi vì bạn đang cố gắng sử dụng biến n trong hàm f(a) trước khi nó được khai báo trong hàm đó.
Trong Python, một biến được khai báo bên ngoài hàm (như n trong trường hợp này) không thể được tham chiếu bên trong hàm trừ khi nó được truyền vào như một đối số hoặc được khai báo là toàn cục bằng từ khóa global.
Dưới đây là phiên bản sửa lỗi của chương trình:
m,n=10,4
def f(a):
global n
n=n+m+a
return n
print(f(5))
Khi chạy đoạn mã trên, giá trị được in ra sẽ là 19 (tức là 4 + 10 + 5). Quy trình chạy của chương trình như sau:
Khởi tạo m = 10 và n = 4.
Khi gọi hàm f(5), biến n được cập nhật thành n = n + m + a = 4 + 10 + 5 = 19.
Giá trị n sau cùng được trả về và in ra.
Quảng cáo
Câu hỏi hot cùng chủ đề
-
29342