Hướng dẫn three types of errors in python - ba loại lỗi trong python


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

Lỗi cú pháp [Chỉnh sửa | Chỉnh sửa nguồn][edit | edit source]

Lỗi cú pháp là loại lỗi cơ bản nhất. Chúng phát sinh khi trình phân tích cú pháp Python không thể hiểu được một dòng mã. Lỗi cú pháp hầu như luôn luôn gây tử vong, tức là hầu như không bao giờ có cách nào để thực hiện thành công một đoạn mã có chứa lỗi cú pháp. Một số lỗi cú pháp có thể được bắt và xử lý, như Eval (""), nhưng những lỗi này là rất hiếm.

Trong Idle, nó sẽ làm nổi bật nơi có lỗi cú pháp. Hầu hết các lỗi cú pháp là lỗi chính tả, thụt không chính xác hoặc đối số không chính xác. Nếu bạn gặp lỗi này, hãy thử xem mã của bạn cho bất kỳ trong số này.

Lỗi logic [Chỉnh sửa | Chỉnh sửa nguồn][edit | edit source]

Đây là loại lỗi khó tìm nhất, bởi vì chúng sẽ đưa ra kết quả không thể đoán trước và có thể làm hỏng chương trình của bạn. & nbsp; Rất nhiều điều khác nhau có thể xảy ra nếu bạn có lỗi logic. Tuy nhiên, những điều này rất dễ sửa vì bạn có thể sử dụng trình gỡ lỗi, sẽ chạy qua chương trình và khắc phục mọi vấn đề.

Một ví dụ đơn giản về lỗi logic có thể được hiển thị bên dưới, vòng lặp trong khi sẽ biên dịch và chạy tuy nhiên, vòng lặp sẽ không bao giờ kết thúc và có thể làm hỏng Python:

#Counting Sheep
#Goal: Print number of sheep up until 101.
sheep_count=1
while sheep_count<100:
    print("%i Sheep"%sheep_count)

Lỗi logic chỉ là sai lầm trong quan điểm của mục tiêu lập trình mà người ta có thể có; Trong nhiều trường hợp, Python đang hoạt động như dự định, không phải như người dùng dự định. Các vòng lặp trên trong khi vòng lặp hoạt động chính xác khi Python dự định, nhưng việc thoát khỏi điều kiện mà người dùng cần bị thiếu.

Ngoại lệ [chỉnh sửa | Chỉnh sửa nguồn][edit | edit source]

Các ngoại lệ phát sinh khi trình phân tích cú pháp Python biết phải làm gì với một đoạn mã nhưng không thể thực hiện hành động. Một ví dụ sẽ là cố gắng truy cập internet với Python mà không cần kết nối Internet; Trình thông dịch Python biết phải làm gì với lệnh đó nhưng không thể thực hiện nó.

Xử lý các ngoại lệ [Chỉnh sửa | Chỉnh sửa nguồn][edit | edit source]

Không giống như lỗi cú pháp, ngoại lệ không phải lúc nào cũng gây tử vong. Các trường hợp ngoại lệ có thể được xử lý với việc sử dụng câu lệnh thử.

Xem xét mã sau để hiển thị HTML của trang web 'example.com'. Khi việc thực hiện chương trình đạt đến câu lệnh thử, nó sẽ cố gắng thực hiện mã được thụt vào sau, nếu vì lý do nào đó có lỗi (máy tính không được kết nối với internet hoặc một cái gì đó) lệnh 'ngoại trừ:'.

import urllib2
url = 'http://www.example.com'
try:
    req = urllib2.Request(url)
    response = urllib2.urlopen(req)
    the_page = response.read()
    print(the_page)
except:
    print("We have a problem.")

Một cách khác để xử lý một lỗi là ngoại trừ một lỗi cụ thể.

try:
    age = int(raw_input("Enter your age: "))
    print("You must be {0} years old.".format(age))
except ValueError:
    print("Your age must be numeric.")

Nếu người dùng nhập giá trị số là tuổi của mình, đầu ra sẽ trông như thế này:

Enter your age: 5
Your age must be 5 years old.

Tuy nhiên, nếu người dùng nhập giá trị không phải là tuổi của anh ấy/cô ấy, giá trị sẽ bị ném khi cố gắng thực thi phương thức int () trên chuỗi không phải là số và mã theo mệnh đề ngoại trừ được thực thi:

Enter your age: five
Your age must be numeric.

Bạn cũng có thể sử dụng một khối thử với vòng lặp thời gian để xác nhận đầu vào:

valid = False
while valid == False:
    try:
        age = int(raw_input("Enter your age: "))
        valid = True     # This statement will only execute if the above statement executes without error.
        print("You must be {0} years old.".format(age))
    except ValueError:
        print("Your age must be numeric.")

Chương trình sẽ nhắc bạn cho tuổi của bạn cho đến khi bạn bước vào một độ tuổi hợp lệ:

Enter your age: five
Your age must be numeric.
Enter your age: abc10
Your age must be numeric.
Enter your age: 15
You must be 15 years old.

Trong một số trường hợp khác, có thể cần phải có thêm thông tin về ngoại lệ và đối phó với nó một cách thích hợp. Trong các tình huống như vậy, ngoại trừ như cấu trúc có thể được sử dụng.

f=raw_input("enter the name of the file:")
l=raw_input("enter the name of the link:")
try:
    os.symlink(f,l)
except OSError as e:
    print("an error occurred linking %s to %s: %s\n error no %d"%(f,l,e.args[1],e.args[0]))

enter the name of the file:file1.txt
enter the name of the link:AlreadyExists.txt
an error occurred linking file1.txt to AlreadyExists.txt: File exists
 error no 17

enter the name of the file:file1.txt
enter the name of the link:/Cant/Write/Here/file1.txt
an error occurred linking file1.txt to /Cant/Write/Here/file1.txt: Permission denied
 error no 13

Các loại lỗi 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.

Ba loại lỗi là gì?

Các loại lỗi..
Gross Lỗi ..
Lỗi ngẫu nhiên ..
Lỗi hệ thống ..

Loại lỗi nào là lỗi tên trong Python?

NameError trong Python là gì?Trong Python, NameError xảy ra khi bạn cố gắng sử dụng một biến, hàm hoặc mô -đun không tồn tại hoặc không được sử dụng theo cách hợp lệ.Một số sai lầm phổ biến gây ra lỗi này là: sử dụng tên biến hoặc tên chức năng vẫn chưa được xác định.occurs when you try to use a variable, function, or module that doesn't exist or wasn't used in a valid way. Some of the common mistakes that cause this error are: Using a variable or function name that is yet to be defined.