01/10/2018, 11:17

Logic error in python

Em học lập trình cũng được một thời gian rồi nhưng vẫn chưa biết logic error là gì. Lên mạng tìm thử thì cũng lỗi logic là khó sửa chữa nhất. Chúng xảy ra khi chương trình chạy mà không bị rơi, nhưng tạo ra kết quả không chính xác. Em đọc code này nhưng không biết nó lỗi ở đâu:

product = 0
for i in range(10):
    product *= i

sum_squares = 0
for i in range(10):
    i_sq = i**2
sum_squares += i_sq

nums = 0
for num in range(10):
    num += num

Ai giải thích cho mình hiểu với!

Henry viết 13:34 ngày 01/10/2018

Hãy tưởng tượng bàn làm toán. Ra kết quả số tròn, đẹp nhưng trật lất. Đó là Logic Error. Lí do vì sao nó khó fix nhất đó là vì chả ai thông báo cho bạn rằng đó là sai mục đích của bạn. Thế nên, bạn làm toán thì làm gì có cái lỗi nào thông báo ra, nhưng điểm thì chưa chắc 10.
Còn đoạn code thì nó không sai, nhưng kết quả thì không giống như bạn mong đợi. Về vấn đề vì sao thì nó đơn giản mà. Mình biết bạn có thể hiểu được nó. Chia mỗi cụm ra xem là biết thôi.
Good Luck

Tao Không Ngu. viết 13:29 ngày 01/10/2018

Hi An Thúy

  1. Lỗi logic là lỗi mà chương trình trả về kết quả sai do code sai, thiết kế sai, thuật toán sai v.v.v…
  2. Thường cần debug hoặc log và unittest để sửa lỗi này.
  3. Có lẽ là
product = 0
for i in range(10):
product *= i

product luôn bằng 0. Bạn cần khởi tạo nó bằng 1.

rogp10 viết 13:28 ngày 01/10/2018

Thực ra bạn ko biết spec (ở đây là đề bài) hay ý đồ thì khó sửa lỗi kiểu này. Ngoài ra còn một dạng lỗi nữa là spec dở hơi hay … trớt quớt.

Bài liên quan
0