Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ข้อผิดพลาด NZEC ใน Python?


NZEC เป็นรหัสทางออกที่ไม่เป็นศูนย์

รหัสออกคือรหัส (หมายเลข) ที่ส่งคืนโดยการเรียกใช้โปรแกรมไปยังระบบปฏิบัติการเมื่อมีการยุติสำเร็จ (รหัสออก 0) หรือการยกเลิกล้มเหลวเนื่องจากข้อผิดพลาด (รหัสทางออกที่ไม่ใช่ศูนย์)

เนื่องจากภาษาโปรแกรม python หรือ Java รองรับการจัดการข้อยกเว้น เราจึงสามารถใช้การจัดการข้อยกเว้นโดยใช้บล็อก try-catch เพื่อตรวจจับข้อผิดพลาดนี้

ข้อผิดพลาด NZEC เป็นข้อผิดพลาดรันไทม์และเกิดขึ้นส่วนใหญ่เมื่อมีการเข้าถึงดัชนีอาร์เรย์เชิงลบหรือโปรแกรมที่เราเขียนใช้พื้นที่หน่วยความจำมากกว่าหน่วยความจำที่จัดสรรเพื่อให้โปรแกรมของเราทำงาน

ในคลาส python Exception เป็นซูเปอร์คลาสของข้อผิดพลาดและข้อยกเว้นทั้งหมด

เราสามารถใช้ตัวอย่างโค้ดด้านล่างได้

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

ตัวอย่างที่ 1

ผิดทาง -

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

วิธีที่ถูกต้อง -

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

เพื่อคั่นอินพุตด้วยช่องว่าง:

สาเหตุที่เป็นไปได้ของการได้รับข้อผิดพลาด NZEC:

  • Infinite Recursion – หรือถ้าหน่วยความจำสแต็กของคุณหมด

  • ตรวจสอบให้แน่ใจว่าอินพุตและเอาต์พุตของคุณทั้งคู่เหมือนกันทุกประการกับกรณีทดสอบ ขอแนะนำให้ทดสอบโปรแกรมของคุณโดยใช้รหัสคอมพิวเตอร์ที่ตรงกับเอาต์พุตของคุณกับเอาต์พุตที่ระบุทุกประการ

  • สาเหตุทั่วไปอีกประการที่ทำให้เกิดข้อผิดพลาดนี้คือเมื่อคุณทำผิดพลาดในการเขียนโปรแกรมขั้นพื้นฐาน โดยหารด้วย 0

  • ตรวจสอบค่าของตัวแปรของคุณ พวกมันอาจเสี่ยงต่อการไหลของจำนวนเต็ม

  • พยายามคำนวณแฟคทอเรียลที่สูงกว่า 20 โดยตรง หากคุณคือ ให้หาวิธีอื่นในการดำเนินการนั้น

โดยทั่วไปแพลตฟอร์มการเขียนโปรแกรมที่แข่งขันกันอย่าง codechef จะไม่ให้รหัสข้อผิดพลาด ดังนั้นคุณต้องแก้ไขจุดบกพร่องของรหัสด้วยตนเอง ตรวจสอบเคสขอบ (เคสมุม) ตรวจสอบว่าคุณไม่ได้ทำผิดพลาดตามที่กล่าวข้างต้น

ตัวอย่างที่ 2

วิธีที่ไม่ดี:

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

วิธีที่ถูกต้อง:

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

หรือ

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