Hướng dẫn what are the runtime errors in python? - lỗi thời gian chạy trong python là gì?

Loại lỗi thứ hai là lỗi thời gian chạy. Một chương trình có lỗi thời gian chạy là một chương trình vượt qua kiểm tra cú pháp phiên dịch và bắt đầu thực thi. Tuy nhiên, trong quá trình thực hiện một trong các câu lệnh trong chương trình, xảy ra lỗi đã khiến trình thông dịch ngừng thực hiện chương trình và hiển thị thông báo lỗi. Lỗi thời gian chạy cũng được gọi là ngoại lệ vì chúng thường chỉ ra rằng một cái gì đó đặc biệt [và xấu] đã xảy ra.runtime error. A program with a runtime error is one that passed the interpreter’s syntax checks, and started to execute. However, during the execution of one of the statements in the program, an error occurred that caused the interpreter to stop executing the program and display an error message. Runtime errors are also called exceptions because they usually indicate that something exceptional [and bad] has happened.

Dưới đây là một số ví dụ về các lỗi thời gian chạy phổ biến mà bạn chắc chắn gặp phải:

  • Biến số và chức năng bị lỗi chính tả hoặc viết hoa không chính xác

  • Nỗ lực thực hiện các hoạt động [như hoạt động toán học] trên dữ liệu của loại sai [ví dụ: cố gắng trừ hai biến giữ các giá trị chuỗi]

  • Chia cho số không

  • Nỗ lực sử dụng chức năng chuyển đổi loại như int trên một giá trị có thể được chuyển đổi thành int

Chương trình sau đây chứa các lỗi thời gian chạy khác nhau. Bạn có thể phát hiện ra bất kỳ trong số họ? Sau khi định vị lỗi, chạy chương trình để xem thông báo lỗi.

Lưu ý những khác biệt quan trọng sau đây giữa các lỗi cú pháp và lỗi thời gian chạy có thể giúp bạn khi bạn cố gắng chẩn đoán và sửa chữa vấn đề:

  • Nếu thông báo lỗi đề cập đến SyntaxError, bạn sẽ biết rằng vấn đề phải làm với cú pháp: cấu trúc của mã, dấu câu, v.v.

  • Nếu chương trình chạy một phần và sau đó gặp sự cố, bạn sẽ biết vấn đề là lỗi thời gian chạy. Các chương trình có lỗi cú pháp không thực hiện ngay cả một dòng.

Hãy theo dõi để biết thêm chi tiết về các loại lỗi thời gian chạy khác nhau. Chúng tôi có toàn bộ phần của chương này dành riêng cho chủ đề đó.

Kiểm tra việc hiểu của bạn

    Điều nào sau đây là lỗi thời gian chạy?

  • Cố gắng chia cho 0.
  • Python không thể biết một cách đáng tin cậy nếu bạn đang cố chia cho 0 cho đến khi nó thực hiện chương trình của mình [ví dụ: bạn có thể yêu cầu người dùng cho một giá trị và sau đó chia cho giá trị đó mà bạn không thể biết người dùng sẽ nhập giá trị nào trước khi bạn chạy chương trình].
  • Quên một đại tràng ở cuối một tuyên bố khi cần thiết.
  • Đây là một vấn đề với cấu trúc chính thức của chương trình. Python biết nơi yêu cầu của các đại phân và có thể phát hiện khi thiếu đơn giản bằng cách nhìn vào mã mà không cần chạy nó.
  • Quên chia cho 100 khi in số lượng phần trăm.
  • Điều này sẽ tạo ra câu trả lời sai, nhưng Python sẽ không coi đó là một lỗi. Lập trình viên là người hiểu rằng câu trả lời được tạo ra là sai.

    Ai hoặc những gì thường tìm thấy lỗi thời gian chạy?

  • Các lập trình viên.
  • Các lập trình viên hiếm khi tìm thấy tất cả các lỗi thời gian chạy, có một chương trình máy tính sẽ làm điều đó cho chúng tôi.
  • Thông dịch viên.
  • Nếu một hướng dẫn là bất hợp pháp để thực hiện tại thời điểm đó trong quá trình thực hiện, trình thông dịch sẽ dừng lại với một thông báo mô tả ngoại lệ.
  • Máy tính.
  • Vâng, loại của. Nhưng đó là một điều đặc biệt trong máy tính làm điều đó. Máy tính độc lập mà không có phần bổ sung này không thể làm được.
  • Giáo viên / người hướng dẫn.
  • Giáo viên và người hướng dẫn của bạn có thể tìm thấy hầu hết các lỗi thời gian chạy của bạn, nhưng chỉ vì họ có kinh nghiệm xem mã và có thể viết mã. Với kinh nghiệm lỗi thời gian chạy dễ tìm hơn. Nhưng chúng tôi cũng có một cách tự động để tìm các loại lỗi này.

Bạn đã thử các hoạt động trên trang này of activities on this page

Khi bạn làm ngày càng nhiều lập trình, bạn sẽ tự nhiên gặp phải rất nhiều lỗi [hoặc lỗi]. Nguyên nhân, hiểu và sửa lỗi là một phần quan trọng của lập trình. Python sẽ cố gắng hết sức để chạy bất cứ thứ gì bạn bảo nó chạy, nhưng nếu không thể hiểu những gì bạn đang hỏi, thì nó sẽ không chạy chương trình. Tất cả đều giống nhau, Python sẽ cố gắng cho bạn biết một chút thông tin về những gì đã sai, để giúp bạn cố gắng sửa chữa nó.

Dưới đây là hai lỗi Python.

Trong ví dụ đầu tiên này, chúng ta quên sử dụng dấu ngoặc đơn được yêu cầu bởi print[...]. Python không hiểu những gì bạn đang cố gắng làm.

Dưới đây là một ví dụ thứ hai về một lỗi trong Python.

Trong ví dụ thứ hai, chúng ta quên xác định biến greeting. Python biết những gì bạn muốn nó làm, nhưng vì không có greeting đã được xác định, một lỗi xảy ra.

Một lỗi cú pháp xảy ra khi Python không thể hiểu những gì bạn đang nói. Một lỗi thời gian chạy xảy ra khi Python hiểu những gì bạn đang nói, nhưng gặp rắc rối khi làm theo hướng dẫn của bạn.syntax error happens when Python can't understand what you are saying. A run-time error happens when Python understands what you are saying, but runs into trouble when following your instructions.

Trong tiếng Anh, lỗi cú pháp sẽ giống như câusyntax error would be like the sentence

Xin vui lòng mèo chó.

Ngữ pháp của câu này không có ý nghĩa. Từ quan điểm của ngữ pháp tiếng Anh, nó bị thiếu một động từ [hành động]. Bạn không thể hiểu những gì bạn đang được yêu cầu làm. Cú pháp có nghĩa là giống như ngữ pháp.

Trong tiếng Anh, một lỗi thời gian chạy sẽ giống như câurun-time error would be like the sentence

Hãy ăn piano.

Câu có ý nghĩa từ góc độ ngữ pháp - có một động từ và danh từ ở đúng nơi - vì vậy bạn biết những gì bạn đang được yêu cầu làm. Nhưng, bạn sẽ gặp vấn đề một khi bạn bắt đầu cố gắng ăn piano [ngoại trừ có thể nếu bạn là mối]. Điều này được gọi là lỗi thời gian chạy vì nó xảy ra sau khi chương trình bắt đầu chạy.

Chúng tôi cũng sẽ nói về các lỗi logic ở cuối, điều đó có nghĩa là chương trình của bạn chạy mà không gặp sự cố, nhưng vẫn tạo ra kết quả sai. Một ví dụ sẽ làlogic errors at the end, which means that your program runs without crashing, but still produces the wrong result. An example would be

Vui lòng đóng cửa sau để các lỗi không đến.

Đây sẽ là một lỗi logic nếu cửa trước cũng mở: mặc dù lệnh có ý nghĩa và bạn có thể đóng cửa sau cửa.

Lỗi cú pháp chung trong Python

Dưới đây là một vài ví dụ bổ sung về lỗi cú pháp có thể xảy ra trong Python. Một điều rất chung chung có thể xảy ra là Python sẽ gặp phải một biểu tượng đặc biệt ở một nơi mà nó không mong đợi.

Python nói SyntaxError: invalid syntax và chỉ với ^ đến điểm nhấn dấu. Vấn đề là ! không có ý nghĩa trong Python. Lỗi cú pháp sẽ biến mất nếu chúng tôi đặt print["Hello, World!"] thay vào đó, bởi vì sau đó Python sẽ hiểu rằng ! là một phần của văn bản với SyntaxError0.

Đây là một lỗi cú pháp khác tinh tế hơn.

Vấn đề là SyntaxError1 là một từ đặc biệt trong Python. Nếu bạn đã viết SyntaxError2 thay vì lớp học thì nó sẽ ổn. Nhấn vào đây để xem danh sách tất cả các "từ khóa" đặc biệt trong Python.

Nếu bạn đang sử dụng báo giá xung quanh văn bản và bạn quên cái thứ hai hoặc bạn đang sử dụng dấu ngoặc đơn và quên cái thứ hai, bạn sẽ nhận được lỗi cú pháp:

Trong lỗi này, EOL là viết tắt cho cuối dòng: Python dự kiến ​​một SyntaxError3 khác nhưng dòng kết thúc trước khi nó được tìm thấy.EOL is short for End Of Line: Python expected another SyntaxError3 but the line ended before it was found.

Tương tự, EOF viết tắt cho cuối tệp: Python tiếp tục tìm kiếm một SyntaxError4 nhưng tệp chương trình đã kết thúc trước khi nó được tìm thấy.EOF is short for End Of File: Python kept looking for a SyntaxError4 but the program file ended before it was found.

Đôi khi hai lỗi cú pháp rất giống nhau có thể cung cấp hai thông báo lỗi rất khác nhau. Nhưng, mọi thông báo lỗi thực sự đang cố gắng nói với bạn điều gì đó hữu ích.

Lỗi thời gian chạy

Dưới đây là một vài lỗi thời gian chạy phổ biến. Python có thể hiểu những gì chương trình nói, nhưng chạy vào các vấn đề khi thực sự thực hiện các hướng dẫn.

  • sử dụng một biến hoặc chức năng không xác định. Điều này cũng có thể xảy ra nếu bạn sử dụng các chữ cái viết hoa không nhất quán trong một tên biến:
  • Chia cho 0, không có ý nghĩa trong toán học. [Tại sao? Vì 0 lần bất kỳ số nào là 0, không có giải pháp cho 1 = x * 0, vì vậy 1/0 không được xác định.]
  • Sử dụng các toán tử về loại dữ liệu sai

Bạn sẽ tìm thấy nhiều cách tạo ra lỗi khi bạn tìm hiểu thêm về Python.

Sự khác biệt kỹ thuật giữa cú pháp và lỗi thời gian chạy là gì? Dưới đây là một ví dụ so sánh lỗi thời gian chạy với lỗi cú pháp. Nhìn vào đầu ra của mỗi chương trình. Chương trình có lỗi thời gian chạy đã tạo ra một số đầu ra, nhưng chương trình có lỗi cú pháp thì không. Điều này là do Python chạy theo hai bước:
  1. Python kiểm tra xem chương trình của bạn có cú pháp chính xác hay không, để xác định cấu trúc và các bộ phận của nó.
  2. Nếu không gặp lỗi cú pháp trong bước 1, thì chương trình sẽ được thực thi.

Vì vậy, một chương trình có lỗi cú pháp sẽ không thực thi các bước nào cả, nhưng một chương trình có lỗi thời gian chạy sẽ thực hiện các bước xảy ra trước khi xảy ra lỗi.

Lỗi logic

Chương trình của bạn có thể chạy mà không gặp sự cố [không có cú pháp hoặc lỗi thời gian chạy], nhưng vẫn làm sai. Ví dụ: có lẽ bạn muốn một chương trình tính trung bình của hai số: trung bình của x và y được định nghĩa là

Tại sao chương trình này không hoạt động?

Trung bình phải là

Nhưng chương trình in SyntaxError5 thay thế! Lỗi lần này có liên quan đến "thứ tự hoạt động" trong số học. Khi bạn viết SyntaxError6, điều này có ý nghĩa toán học giống như. Để khắc phục sự cố, dòng thứ ba của chương trình của chúng tôi nên được viết là SyntaxError7, điều này nói rõ với Python rằng chúng tôi thực sự muốn giá trị, nơi chúng tôi thêm đầu tiên và chia sau.. To fix the problem, the third line of our program should be written as SyntaxError7, which makes clear to Python that we really want the value , where we add first and divide afterwards.

Bạn có thể có lỗi logic vì bạn đã thiết kế một chương trình không chính xác hoặc vì bạn không viết mã theo thiết kế một cách chính xác [như ví dụ SyntaxError8]. Lỗi logic có thể khó phát hiện, đặc biệt là trong một chương trình dài hơn, nhưng khi bạn tốt hơn trong việc viết mã, bạn cũng sẽ tốt hơn trong việc tránh các lỗi logic. Bài 6D sẽ đưa ra một số lời khuyên về việc tránh các lỗi logic.

Bài tập

Bây giờ bài học đã hoàn tất, chúng tôi có ba bài tập về gỡ lỗi [sửa lỗi trong các chương trình]. Bạn có thể cố gắng phát hiện các lỗi trước khi chạy các chương trình hoặc bạn có thể chạy chúng trước và sử dụng phản hồi của Python để xác định những gì cần sửa chữa.

Mỗi chương trình dưới đây đi kèm với một số mã đã được viết cho bạn. Bạn chỉ cần thay đổi một vài ký tự [chữ cái/ký hiệu/số] để sửa từng chương trình. Học sinh sẽ từ chối bất kỳ giải pháp nào thay đổi quá nhiều ký tự từ phiên bản gốc. Định dạng tập thể dục bất thường này có nghĩa là tương tự như gỡ lỗi trong thế giới thực, nơi mọi người thường vô tình bao gồm một lỗi đánh máy mà bạn có thể tìm thấy và sửa lỗi chính tả thay vì làm lại toàn bộ giải pháp? Chọn Đặt lại mã theo mặc định nếu bạn cần mang lại phiên bản gốc.
This unusual exercise format is meant to be similar to real-world debugging, where people often accidentally include a typo—can you find and fix the typos rather than redoing the whole solution?
Select Reset code to default if you need to bring back the original version.

Một khi bạn đã đè bẹp tất cả các lỗi, hãy chuyển sang bài học tiếp theo!

3 loại lỗi trong Python là gì?

Chủ yếu có ba loại lỗi có thể phân biệt trong Python: lỗi cú pháp, ngoại lệ và lỗi logic.syntax errors, exceptions and logical errors.

Ví dụ về lỗi thời gian chạy là gì?

Dưới đây là một số ví dụ về các lỗi thời gian chạy phổ biến, bạn chắc chắn sẽ gặp phải: tên biến và tên chức năng bị lỗi chính tả hoặc không chính xác.Nỗ lực thực hiện các hoạt động [như hoạt động toán học] trên dữ liệu của loại sai [ví dụ: cố gắng trừ hai biến giữ các giá trị chuỗi]Misspelled or incorrectly capitalized variable and function names. Attempts to perform operations [such as math operations] on data of the wrong type [ex. attempting to subtract two variables that hold string values]

Lỗi thời gian chạy là gì?

Lỗi thời gian chạy là một vấn đề phần mềm hoặc phần cứng ngăn chặn Internet Explorer hoạt động chính xác.Có thể gây ra lỗi thời gian chạy khi một trang web sử dụng mã HTML không tương thích với chức năng trình duyệt web.Phiên bản sản phẩm gốc: Internet Explorer.a software or hardware problem that prevents Internet Explorer from working correctly. Runtime errors can be caused when a website uses HTML code that's incompatible with the web browser functionality. Original product version: Internet Explorer.

Các lỗi chính trong Python là gì?

Trong Python có ba loại lỗi;Lỗi cú pháp, lỗi logic và ngoại lệ.syntax errors, logic errors and exceptions.

Bài Viết Liên Quan

Chủ Đề