Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไข: Indentation Error Python

Python เป็นภาษาโปรแกรมมิ่งที่กำลัง nổi lên ซึ่งเผยแพร่ครั้งแรกในปี 1991 ภาษานี้รู้จักในไลบรารีที่ครอบคลุมและใหญ่โต และรองรับพาราดายม์การเขียนโปรแกรมหลายอย่าง เช่น functional, imperative, procedural และ object-oriented

แก้ไข: Indentation Error Python

'Indentation Error: Expected an indented block' เกิดขึ้นกับผู้ใช้ทุกประเภท ไม่ว่าจะเป็นมือใหม่หรือผู้มีประสบการณ์ เนื่องจาก Python จัดระเบียบโค้ดทั้งหมดด้วย whitespace ที่ถูกต้อง หากคุณมีการย่อหน้าที่ไม่ถูกต้อง โค้ดจะไม่คอมไพล์และคุณจะได้รับข้อความข้อผิดพลาด

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

สาเหตุของ Indentation Error ใน Python

เหมือนที่กล่าวไว้ก่อนหน้านี้ ข้อผิดพลาดนี้เกิดขึ้นหลักเพราะมีข้อผิดพลาดเรื่อง space หรือ tab ในโค้ดของคุณ เนื่องจาก Python ใช้ภาษา procedural คุณอาจประสบข้อผิดพลาดนี้หากคุณไม่ได้วาง tabs/spaces อย่างถูกต้อง โปรแกรมอาจรันได้อย่างถูกต้อง แต่หาก interpreter พบข้อผิดพลาดนี้ ข้อความข้อผิดพลาดจะปรากฏขึ้นกลางทาง สาเหตุบางอย่างของข้อผิดพลาดคือ:

  • คุณใช้ ทั้ง spaces และ tabs ในโค้ดของคุณ หากทั้งสองใช้สลับกัน interpreter จะไม่สามารถกำหนดได้ว่าจะใช้รายการใด
  • คุณวาง indent บางส่วน ผิด หากไม่ปฏิบัติตามแนวปฏิบัติการย่อหน้า คุณจะมีข้อผิดพลาดนี้โดยไม่เว้นแม้แต่น่าเบื่อ
  • คุณลืมย่อหน้า compound statements เช่น 'if', 'for', 'while' เป็นต้น
  • คุณลืมย่อหน้า user-defined functions หรือ classes

วิธีแก้ไข 1: ตรวจสอบ white spaces/tabs ที่ผิด

ไม่มีการแก้ไขทันทีสำหรับปัญหานี้ เนื่องจากโค้ดเป็นของคุณ คุณต้องผ่านทุกบรรทัดและดูว่าคุณทำผิดที่ไหน มีบล็อกหลายบล็อกในโค้ดเกี่ยวกับโครงสร้าง หากมีคำสั่ง 'If' จำเป็นต้องมีการย่อหน้าให้กับโค้ดที่ตามมา

แก้ไข: Indentation Error Python

ดูแผนภาพด้านบน ดูว่าการย่อหน้าสำหรับบล็อกเฉพาะยังคงเหมือนเดิมตลอดโค้ด แม้ว่าจะมีบล็อกใหม่ถูกนำเข้ามาในกลาง โปรดตรวจสอบให้แน่ใจว่าการย่อหน้าของคุณสอดคล้องกัน หากคุณใช้ spaces ให้ใช้ spaces เสมอ และหากคุณใช้ tabs ให้ใช้ tabs เสมอ การผสมสองอย่างจะก่อให้เกิดปัญหา

แก้ไข: Indentation Error Python

การย่อหน้าที่ถูกต้องแสดงในตัวอย่างด้านบน ดู 'for' loop สำหรับการเริ่มต้น ทุกอย่าง ภายใน 'for' loop ต้องถูกย่อหน้า ภายใน 'for' loop เรามีคำสั่ง 'if' ภายในคำสั่ง 'if' ทุกอย่างต้องถูกย่อหน้า เพิ่มเติม

คุณสามารถตรวจสอบได้ง่ายว่าข้อผิดพลาดการย่อหน้าเกิดขึ้นที่ไหนโดยการตรวจสอบ error log และดูบรรทัดที่ข้อผิดพลาดเริ่มต้น

วิธีแก้ไข 2: เปิดใช้งานสัญลักษณ์ tab/space ใน editor

หากคุณมีเวลายากในการย่อหน้าโค้ดของคุณด้วย 'การเดา' เหมือนโปรแกรมเมอร์ทุกคน คุณสามารถเปิดใช้งานสัญลักษณ์ของ tab/space ใน IDE หรือโปรแกรมแก้ไขโค้ดของคุณ ตัวเลือกนี้จะเปิดใช้งาน 'จุด' เล็กๆ ในโค้ดของคุณ ที่แต่ละจุดแทน space หรือ tab คุณสามารถใช้สิ่งนี้เพื่อย่อหน้าโค้ดอย่างถูกต้องมากขึ้น และให้แน่ใจว่าไม่มี indent เพิ่มเติมหรือขาดหายไป

ในตัวอย่างนี้ เราจะใช้ Notepad++ และดูว่าคุณสามารถเปิดใช้งานสัญลักษณ์ได้อย่างไร หากคุณใช้ซอฟต์แวร์อื่นสำหรับการแก้ไขโค้ด คุณสามารถเปิดใช้งานการตั้งค่าที่เฉพาะเจาะจงกับมัน

  1. กด View > Show Symbol > Show Whitespace and TABแก้ไข: Indentation Error Python
  1. ตอนนี้ตัวเลือกเปิดใช้งานแล้ว คุณยังสามารถเปิดใช้งาน Indent Guide ได้ เพื่อให้สิ่งต่างๆ ง่ายขึ้นสำหรับคุณ
แก้ไข: Indentation Error Python

ดูตัวอย่างด้านบน ดูการย่อหน้าที่นำไปใช้หลังจากแต่ละ class แต่ละ space แทนด้วยจุดเดียว หลังจากทำการเปลี่ยนแปลงการย่อหน้าที่ผิดบนโค้ดของคุณ ให้รันมันอีกครั้งและดูว่านี้แก้ไขปัญหาหรือไม่