คุณสามารถเยื้องโค้ดโดยใช้ช่องว่างหรือแท็บในโปรแกรม Python หากคุณพยายามใช้ทั้งสองอย่างรวมกันในกลุ่มโค้ดเดียวกัน คุณจะพบข้อผิดพลาด “TabError:การใช้แท็บและการเว้นวรรคในการเยื้องไม่สอดคล้องกัน”
ในคู่มือนี้ เราจะพูดถึงความหมายของข้อผิดพลาดนี้และสาเหตุที่ทำให้เกิดข้อผิดพลาด เราจะอธิบายตัวอย่างของข้อผิดพลาดนี้เพื่อให้คุณทราบวิธีแก้ปัญหาในโค้ดของคุณ
TabError:การใช้แท็บและการเว้นวรรคในการเยื้องไม่สอดคล้องกัน
ในขณะที่คู่มือสไตล์ Python บอกว่าการเว้นวรรคเป็นวิธีที่ต้องการในการเยื้องเมื่อเขียนโค้ดใน Python คุณสามารถใช้ช่องว่างหรือแท็บได้
การเยื้องมีความสำคัญใน Python เนื่องจากภาษาไม่ได้ขึ้นอยู่กับไวยากรณ์เช่นวงเล็บปีกกาเพื่อระบุว่าบล็อกของโค้ดเริ่มต้นและสิ้นสุดที่ใด เยื้องบอก Python ว่าโค้ดใดเป็นส่วนหนึ่งของบล็อคโค้ดใด
พิจารณาโปรแกรมต่อไปนี้:
numbers = [8, 7, 9, 8, 7] def calculate_average_age(): average = sum(numbers) / len(numbers) print(average)
หากไม่มีการเยื้อง เป็นไปไม่ได้ที่จะรู้ว่าโค้ดบรรทัดใดควรเป็นส่วนหนึ่งของฟังก์ชัน calc_average_age และโค้ดบรรทัดใดที่เป็นส่วนหนึ่งของโปรแกรมหลัก
คุณต้องยึดติดกับการใช้ช่องว่างหรือแท็บ อย่าผสมแท็บและช่องว่าง การทำเช่นนี้จะทำให้ล่าม Python สับสนและทำให้เกิดข้อผิดพลาด “TabError:การใช้แท็บและการเว้นวรรคในการเยื้องไม่สอดคล้องกัน”
ตัวอย่างสถานการณ์
เราต้องการสร้างโปรแกรมที่คำนวณมูลค่ารวมของการซื้อที่ร้านโดนัท ในการเริ่มต้น ให้กำหนดรายการซื้อ:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
purchases = [2.50, 4.90, 5.60, 2.40]
ต่อไป เราจะกำหนดฟังก์ชันที่คำนวณผลรวมของรายการ "การซื้อ":
def calculate_total_purchases(purchases): total = sum(purchases) return total
ฟังก์ชันของเรายอมรับพารามิเตอร์เดียว:รายการซื้อซึ่งมูลค่ารวมที่เราต้องการคำนวณ ฟังก์ชันส่งคืนค่ารวมของรายการที่เราระบุเป็นพารามิเตอร์
เราใช้วิธี sum() เพื่อคำนวณผลรวมของตัวเลขในรายการ "การซื้อ"
หากคุณคัดลอกข้อมูลโค้ดนี้ลงในโปรแกรมแก้ไขข้อความ คุณอาจสังเกตเห็นว่าบรรทัด "ผลตอบแทนรวม" ของโค้ดถูกเยื้องโดยใช้ช่องว่างในขณะที่โค้ด "รวม =ผลรวม (การซื้อ)" จะใช้แท็บสำหรับการเยื้อง นี่คือความแตกต่างที่สำคัญ
ถัดไป เรียกใช้ฟังก์ชันของเราและพิมพ์ค่าที่ส่งคืนไปยังคอนโซล:
total_purchases = calculate_total_purchases(purchases) print(total_purchases)
รหัสของเราเรียก calculate_total_purchases()
ฟังก์ชันคำนวณมูลค่ารวมของการซื้อทั้งหมดที่ทำที่ร้านโดนัท จากนั้นเราพิมพ์ค่านั้นไปที่คอนโซล เรียกใช้รหัสของเราและดูว่าเกิดอะไรขึ้น:
File "test1.py", line 5 return total ^ TabError: inconsistent use of tabs and spaces in indentation
รหัสของเราส่งคืนข้อผิดพลาด
การแก้ปัญหา
เราใช้ช่องว่างและแท็บเพื่อเยื้องโค้ดของเรา ในโปรแกรม Python คุณควรใช้วิธีใดวิธีหนึ่งในการเยื้องนี้
ในการแก้ไขโค้ดของเรา เราจะเปลี่ยนฟังก์ชันเพื่อให้เราใช้เว้นวรรคเท่านั้น:
def calculate_total_purchases(purchases): total = sum(purchases) return total
รหัสของเราใช้ช่องว่าง 4 ช่องสำหรับการเยื้อง มาเริ่มโปรแกรมของเราด้วยการเยื้องใหม่ของเรา:
15.4
โปรแกรมของเราคำนวณมูลค่ารวมของการซื้อโดนัทได้สำเร็จ
ในตัวแก้ไข IDLE คุณสามารถลบการเยื้องสำหรับบล็อกของโค้ดโดยทำตามคำแนะนำเหล่านี้:
- เลือกรหัสที่คุณต้องการลบการเยื้อง
- คลิก “เมนู” -> “รูปแบบ” -> “เลิกแท็บภูมิภาค”
- แทรกประเภทของการเยื้องที่คุณต้องการใช้
นี่เป็นวิธีที่สะดวกในการแก้ไขการจัดรูปแบบในเอกสาร สมมติว่าคุณกำลังใช้ตัวแก้ไข IDLE เครื่องมือแก้ไขอื่นๆ มากมาย เช่น Sublime Text มีวิธีการของตนเองในการเปลี่ยนการเยื้องในไฟล์
บทสรุป
ข้อผิดพลาด Python “TabError:การใช้แท็บและการเว้นวรรคในการเยื้องไม่สอดคล้องกัน” เกิดขึ้นเมื่อคุณพยายามเยื้องโค้ดโดยใช้ทั้งช่องว่างและแท็บ
คุณแก้ไขข้อผิดพลาดนี้โดยยึดช่องว่างหรือแท็บในโปรแกรมและแทนที่แท็บหรือช่องว่างใด ๆ ที่ไม่ได้ใช้วิธีการเยื้องที่คุณต้องการ ตอนนี้คุณมีความรู้ที่จำเป็นในการแก้ไขข้อผิดพลาดนี้เหมือนโปรแกรมเมอร์มืออาชีพแล้ว!