สารบัญ[ซ่อน][แสดง]
การบรรยายนี้จะมีความสำคัญหากคุณต้องรับมือกับโปรแกรมขนาดใหญ่
คุณจะได้เรียนรู้วิธีจัดการกับข้อผิดพลาดผ่านบล็อกข้อยกเว้นและการใช้ความคิดเห็นใน Python
ข้อยกเว้น
เราจะเรียนรู้วิธีจัดการกับข้อผิดพลาดในโปรแกรม Python เริ่มต้นด้วยการเขียนโปรแกรมเล็กๆ เพื่อรับอายุของผู้ใช้จากเทอร์มินัล
age = int(input('Age'))
print(age)
เริ่มกันเลย
ตอนนี้ให้ดูที่รหัสทางออกของโปรแกรมนี้ รหัสออก 0 หมายความว่าโปรแกรมของเรายุติการทำงานได้สำเร็จและไม่มีข้อผิดพลาด แต่ถ้าเราเรียกใช้โปรแกรมนี้อีกครั้งและแทนที่จะป้อนค่าตัวเลข เราป้อนสตริง?
เราได้รับข้อผิดพลาดด้านค่าจากข้อความของเขา "invalid literal for int() with base 10" โดยทั่วไปสิ่งที่ข้อความนี้บอกเราคือสตริงนี้ "qwe" ไม่มีหมายเลขหลักที่ถูกต้องซึ่งสามารถแปลงเป็นจำนวนเต็มได้ ตอนนี้ให้ดูที่รหัสทางออกของโปรแกรมนี้ รหัสทางออก 1 หมายถึงรหัสออกของเราขัดข้อง ดังนั้น 0 หมายถึงสำเร็จเสมอ และอะไรก็ตามที่ไม่ใช่ 0 หมายถึงการขัดข้อง ในการเขียนโปรแกรม เราเรียกข้อผิดพลาดประเภทนี้ว่าเป็นข้อยกเว้น
ในฐานะโปรแกรมเมอร์หลามที่ดี คุณควรคาดหวังกับสถานการณ์นี้ คุณไม่ต้องการให้ทั้งโปรแกรมของคุณหยุดทำงานเพียงเพราะผู้ใช้ป้อนค่าที่ไม่ถูกต้อง ดังนั้นแทนที่จะปล่อยให้โปรแกรมหยุดทำงาน คุณควรจัดการกับสถานการณ์และพิมพ์ข้อความแสดงข้อผิดพลาดที่เหมาะสม นั่นคือสิ่งที่ผมจะแสดงให้คุณเห็นในการบรรยายนี้
ใน Python เรามีโครงสร้างที่เรียกว่า try except
ใช้เพื่อจัดการกับสถานการณ์ที่ผิดพลาด
try:
age = int(input('Age'))
print(age)
โค้ดสองบรรทัดนี้เป็นส่วนหนึ่งของ try:
บล็อก. เราจะเพิ่ม except
บล็อกหลังจากนั้นด้วยประเภทของข้อผิดพลาดที่เราคาดหวัง
except ValueError:
print('Invalid Value')
ตอนนี้จะส่งคืนสตริง "Invalid Value" ในกรณีที่มีข้อผิดพลาดด้านค่า
ตรวจสอบข้อผิดพลาดประเภทอื่นโดยแก้ไขโปรแกรมก่อนหน้า
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
ทีนี้ ถ้าเรารันโปรแกรมนี้และป้อนอายุ '0' จะเป็นค่าตัวเลข ดังนั้น ในทางเทคนิค เราไม่ควรได้รับข้อยกเว้นใดๆ
เริ่มกันเลย
ลองดูสิ. โปรแกรมของเราขัดข้องและเราทำ "ข้อผิดพลาดในการแบ่งศูนย์" เนื่องจากเราไม่สามารถหารตัวเลขด้วย 0 ได้ ให้ดูที่รหัสทางออกอีกครั้ง เราไม่สามารถตรวจจับข้อผิดพลาดประเภทนี้หรือข้อยกเว้นประเภทนี้ได้ยกเว้นการบล็อก
สิ่งนี้ยกเว้นบล็อกจะจับข้อยกเว้นของข้อผิดพลาดของค่าประเภทเท่านั้น และเราจะต้องมีบล็อกใหม่ยกเว้นเพื่อจัดการกับ Zero Division Error มาปรับเปลี่ยนโปรแกรมกันตามนั้น
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
ปัญหาได้รับการแก้ไข!
- ข้อผิดพลาดทางไวยากรณ์
- ประเภทข้อผิดพลาด
- ข้อผิดพลาดชื่อ
- ดัชนีข้อผิดพลาด
- ค่าข้อผิดพลาด
- ข้อผิดพลาดแบบ Zerodivision
- ข้อผิดพลาดแอตทริบิวต์
- ข้อผิดพลาดรันไทม์
- คีย์ผิดพลาด
- หน่วยความจำผิดพลาด
- ยืนยันข้อผิดพลาด
- เยื้องข้อผิดพลาด
- เอฟเฟอเรอร์
- จุดลอยตัวผิดพลาด
- ข้อผิดพลาดล้น
- ลอจิกผิดพลาด
- ระบบผิดพลาด
- ไม่ได้ดำเนินการผิดพลาด
- ออสเรอร์
- ข้อผิดพลาด
- ข้อผิดพลาดในการอ้างอิง
- ข้อผิดพลาด Unicode
- เลขคณิตผิดพลาด
- Unicodedecodeerror
- ข้อผิดพลาด Unicodeencode
- Unicode แปลข้อผิดพลาด
- ข้อผิดพลาดรันไทม์
ในฐานะโปรแกรมเมอร์ คุณควรตระหนักถึงข้อยกเว้นทั้งหมดในโปรแกรมของคุณและคุณควรจัดการตามนั้น
ความคิดเห็น
ตอนนี้เราจะพูดถึงความคิดเห็นใน python เราใช้ความคิดเห็นเพื่อเพิ่มบันทึกหรือความคิดเห็นในโปรแกรมของเราเพื่อปรับปรุงความสามารถในการอ่านและถ่ายทอดข้อความบางส่วนไปยังผู้ที่อ่านโค้ดของเรา
สามารถเขียนความคิดเห็นในโปรแกรมโดยใช้เครื่องหมาย # ทุกสิ่งที่คุณเขียนหลังจาก # จะถูกละเว้นโดยคอมไพเลอร์ Python และจะไม่ถูกดำเนินการ คุณสามารถเพิ่มความคิดเห็นในแต่ละบรรทัดและหลังโค้ดได้
ด้วยความคิดเห็นเหล่านี้ เราสามารถอธิบายบางสิ่งเกี่ยวกับโค้ดของเรา เราสามารถใช้เป็นเครื่องเตือนใจในการแก้ไขสิ่งต่างๆ หรือใช้เพื่อสื่อสารกับนักพัฒนาคนอื่นๆ ที่อ่านโค้ดของเรา หรือเพื่ออธิบายว่าทำไมเราจึงเขียนโค้ดนี้ใน วิธีบางอย่าง นี่เป็นกรณีการใช้งานที่ดีสำหรับการใช้ความคิดเห็น เรายังสามารถแสดงความคิดเห็นได้หลายบรรทัด แต่ละบรรทัดควรเริ่มต้นด้วยเครื่องหมาย # ใหม่ ในตอนนี้ สิ่งหนึ่งที่คุณต้องหลีกเลี่ยงเมื่อใช้ความคิดเห็นคือการอธิบายว่าโค้ดทำหน้าที่อะไร
นี่คือตัวอย่างความคิดเห็นที่ไม่ดี:
นี่เป็นความคิดเห็นที่ไม่ดีเพราะมันบอกฉันอย่างชัดเจน มันบอกฉันว่าบรรทัดต่อไปกำลังจะพิมพ์ "พระอาทิตย์ตกดินทางทิศตะวันตก" ปัญหาของความคิดเห็นนี้คือความคิดเห็นนี้นอกจากจะใช้คำฟุ่มเฟือยและซ้ำซากจำเจแล้ว หากคุณมาที่นี่และเปลี่ยนจากตะวันตกเป็นตะวันออก ความคิดเห็นนี้ยังล้าสมัย ดังนั้น ทุกครั้งที่เราอัปเดตโค้ดของเรา เราจะต้องกลับมาแก้ไขความคิดเห็นที่เกี่ยวข้อง
ในระยะสั้น ใช้ความคิดเห็นของคุณเพื่อตอบคำถามว่าเพราะอะไรและเพราะอะไร แทนที่จะเป็นอะไร
นี่คือตัวอย่างความคิดเห็นที่ดี:
ในความคิดเห็นแรก ฉันกำลังเตือนตัวเองว่าฉันต้องอัปเดตมูลค่ารายได้นี้ก่อนที่จะจบโปรแกรม และค่าที่สองกำลังบอกนักพัฒนาคนอื่นๆ ว่าอ่านโค้ดของฉันว่าข้อผิดพลาดทั้งหมดไม่ได้รับการจัดการในโปรแกรมนี้
สรุปแล้ว คุณควรหลีกเลี่ยงความคิดเห็นที่ซ้ำซาก และความคิดเห็นของคุณควรเพิ่มคุณค่าให้กับโค้ดของคุณ
สรุป!
ข้อยกเว้นและความคิดเห็นเป็นสองแง่มุมของการเขียนโปรแกรมที่มักถูกมองข้ามและมักประเมินความสำคัญของสิ่งเหล่านี้ต่ำเกินไป
การแครชโปรแกรมของคุณเกือบจะแย่พอๆ กับการไม่แสดงความคิดเห็นในโค้ดของคุณเมื่อจำเป็น การบรรยายครั้งต่อไปจะเน้นที่ชั้นเรียนและตัวสร้าง
เขียนความเห็น