Ví dụ về lỗi logic trong Python là gì?

Khi bạn lập trình ngày càng nhiều, tự nhiên bạn sẽ 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ì mà bạn bảo nó chạy, nhưng nếu nó không hiểu bạn đang hỏi gì thì nó sẽ không chạy chương trình. Tương tự như vậy, Python sẽ cố gắng cho bạn biết một chút thông tin về những gì đã xảy ra, để giúp bạn cố gắng khắc phục nó

Đây là hai lỗi Python

Ví dụ. Lỗi cú pháp

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

Đây là ví dụ thứ hai về lỗi trong Python

Ví dụ. Lỗi thời gian chạy

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

Lỗi cú pháp xảy ra khi Python không thể hiểu bạn đang nói gì. 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 sự cố khi làm theo hướng dẫn của bạn

Trong tiếng Anh, một lỗi cú pháp sẽ giống như câu

Xin mèo chó khỉ

Ngữ pháp của câu này không có nghĩa. Từ góc độ ngữ pháp tiếng Anh, nó 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 giống như ngữ pháp

Trong tiếng Anh, lỗi thời gian chạy sẽ giống như câu

Hãy ăn piano

Câu có nghĩa từ góc độ ngữ pháp — có một động từ và danh từ ở đúng chỗ — vì vậy bạn biết bạn đang được yêu cầu làm gì. Tuy nhiên, bạn sẽ gặp phải vấn đề khi bắt đầu ăn đàn piano [có thể ngoại trừ nếu bạn là một con mối]. Đâ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 ta cũng sẽ nói về lỗi logic ở phần cuối, có nghĩa là chương trình của bạn chạy không bị lỗi nhưng vẫn cho ra kết quả sai. Một ví dụ sẽ là

Vui lòng đóng cửa sau để bọ không vào

Đây sẽ là một lỗi logic nếu cửa trước cũng đang mở. mặc dù lệnh có ý nghĩa và bạn có thể đóng cửa sau, nhưng điều này không thực sự hoàn thành mục tiêu ngăn chặn bọ vì chúng vẫn sẽ vào cửa trước

Các lỗi cú pháp phổ biến 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ẽ bắt gặp một biểu tượng đặc biệt ở một nơi mà nó không ngờ tới.

Ví dụ. Lỗi cú pháp

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

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

Ví dụ. Lỗi cú pháp

Vấn đề là class là một từ đặc biệt trong Python. nếu bạn đã viết greeting0 thay vì lớp thì sẽ ổn thôi. 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 dấu ngoặc kép xung quanh văn bản và bạn quên dấu ngoặc kép thứ hai hoặc bạn đang sử dụng dấu ngoặc đơn và quên dấu ngoặc kép thứ hai, bạn sẽ gặp lỗi cú pháp

Ví dụ. Lỗi cú pháp

Quên trích dẫn thứ hai

Trong lỗi này, EOL là viết tắt của End Of Line. Python mong đợi một greeting1 khác nhưng dòng này đã kết thúc trước khi nó được tìm thấy

Ví dụ. Lỗi cú pháp

Quên dấu ngoặc đơn thứ hai

Tương tự, EOF là viết tắt của End Of File. Python tiếp tục tìm kiếm một greeting2 nhưng tệp chương trình đã kết thúc trước khi nó được tìm thấy

Đôi khi hai lỗi cú pháp rất giống nhau có thể đưa ra hai thông báo lỗi rất khác nhau. Tuy nhiên, mọi thông báo lỗi thực sự đang cố cho bạn biết đ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 gặp sự cố khi thực sự thực hiện các hướng dẫn

  • sử dụng một biến hoặc hàm không xác định. Điều này cũng có thể xảy ra nếu bạn sử dụng chữ in hoa không nhất quán trong tên biến

    Ví dụ

    Một biến không xác định

  • chia cho số không, không có ý nghĩa gì trong toán học. [Tại sao? Vì 0 nhân với bất kỳ số nào cũng bằng 0, nên không có nghiệm nào cho 1 = X * 0, vì vậy 1/0 không xác định. ]

    Ví dụ

    chia cho số không

  • sử dụng toán tử trên loại dữ liệu sai

    Ví dụ

    Thêm văn bản và một số

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

Sự khác biệt kỹ thuật giữa lỗi cú pháp và lỗi thời gian chạy là gì? . Nhìn vào đầu ra của mỗi chương trình

Ví dụ. Lỗi thời gian chạy

Ví dụ. Lỗi cú pháp

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ó đúng cú pháp hay không để xác định cấu trúc và các phần của nó
  2. Nếu bước 1 không gặp lỗi cú pháp thì chương trình được thực hiện

Vì vậy, một chương trình có lỗi cú pháp sẽ không thực hiện bước nào cả, nhưng 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ó lỗi cú pháp hoặc 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ộng 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?

Ví dụ

Điều này không tính toán trung bình một cách chính xác

trung bình nên được

nhưng thay vào đó, chương trình in ra bản greeting3. Lỗi lần này liên quan đến "thứ tự các phép toán" trong số học. Khi bạn viết greeting4, điều này có nghĩa toán học giống như . Để khắc phục sự cố, dòng thứ ba trong chương trình của chúng ta nên được viết là greeting5, điều này cho Python thấy rõ rằng chúng ta thực sự muốn giá trị , trong đó chúng ta cộng trước và chia sau.

Bạn có thể mắc lỗi logic do thiết kế chương trình không chính xác hoặc do bạn không viết mã theo đúng thiết kế [như ví dụ về greeting6]. Các 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 viết mã tốt hơn, bạn cũng sẽ giỏi hơn trong việc tránh các lỗi logic. Bài 6D sẽ đưa ra một số mẹo tránh lỗi logic

bài tập

Bây giờ bài học đã hoàn thành, chúng ta có ba bài tập về gỡ lỗi [sửa lỗi trong chương trình]. Bạn có thể thử phát hiện lỗi trước khi chạy 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

một ví dụ về một lỗi logic là gì?

Lỗi logic trong chương trình là lỗi do các hướng dẫn đưa ra trong chương trình không hoàn thành mục tiêu đã định. "Cho tôi một tách cà phê. " là một lỗi logic khi người đó định yêu cầu một tách trà . Trong các chương trình máy tính, lỗi này có thể xảy ra ở nhiều dạng khác nhau.

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

Có ba loại lỗi chính có thể phân biệt được trong Python. lỗi cú pháp, ngoại lệ và lỗi logic .

Điều gì sẽ được coi là một lỗi logic?

Trong lập trình máy tính, lỗi logic là lỗi trong chương trình khiến chương trình hoạt động không chính xác, nhưng không chấm dứt bất thường [hoặc sự cố]. Một lỗi logic tạo ra đầu ra ngoài ý muốn hoặc không mong muốn hoặc hành vi khác, mặc dù nó có thể không được nhận ra ngay lập tức như vậy

Có những loại lỗi logic nào?

Các loại lỗi logic .
sai trình tự
có biểu thức Boolean sai
sử dụng sai kiểu dữ liệu
bị mất tích hoàn toàn

Chủ Đề