Computer >> Máy Tính >  >> Lập trình >> Python

Lỗi NZEC trong Python?

NZEC là mã thoát khác 0.

Mã thoát là các mã (số) trả về bằng chương trình đang chạy cho hệ điều hành khi kết thúc thành công (Mã thoát 0) hoặc kết thúc không thành công do lỗi (Mã thoát không phải là 0).

Vì ngôn ngữ lập trình python hoặc Java hỗ trợ xử lý ngoại lệ, chúng tôi có thể sử dụng xử lý ngoại lệ bằng cách sử dụng khối try-catch để bắt lỗi này.

Lỗi NZEC là một lỗi thời gian chạy và chủ yếu xảy ra khi chỉ mục mảng âm được tích lũy hoặc chương trình mà chúng tôi đã viết đang sử dụng nhiều không gian bộ nhớ hơn bộ nhớ được cấp phát để chạy chương trình của chúng tôi.

Trong python, lớp Exception là lớp siêu của tất cả các lỗi và ngoại lệ.

Chúng ta có thể sử dụng mẫu mã dưới đây

try:
   #Code that may throw an error
except Exception, e:
   pass

Ví dụ 1

Sai cách -

x,y = map(int, input())

đúng cách -

x,y = map(int, input().split())

để phân tách đầu vào bằng khoảng trắng:

Lý do có thể gặp phải lỗi NZEC:

  • Đệ quy vô hạn - hoặc nếu bạn hết bộ nhớ ngăn xếp.

  • Đảm bảo đầu vào và đầu ra của bạn đều giống hệt như các trường hợp thử nghiệm. Bạn nên kiểm tra chương trình của mình bằng mã máy tính khớp chính xác với đầu ra của bạn với đầu ra được chỉ định.

  • Một lý do phổ biến khác của lỗi này là khi bạn mắc lỗi lập trình cơ bản lik chia cho 0.

  • Kiểm tra các giá trị của các biến của bạn, chúng có thể dễ bị ảnh hưởng bởi luồng số nguyên.

  • Nếu bạn đang cố gắng trực tiếp tính giai thừa trên 20 - hãy tìm một cách khác để thực hiện điều đó.

Nói chung, nền tảng lập trình cạnh tranh như codechef không cung cấp mã lỗi, vì vậy bản thân bạn phải gỡ lỗi mã của mình. Kiểm tra các trường hợp cạnh (trường hợp góc), đảm bảo rằng bạn không mắc phải bất kỳ lỗi nào được đề cập ở trên.

Ví dụ 2

Cách tồi tệ:

for i in range(0,n):
   x=int(input())
   arr.append(x)

Cách đúng:

arr = [int(k) for k in input().split()]

HOẶC

arr = list(map(int, input().split()))