Hướng dẫn how do you resolve a name error in python? - làm cách nào để giải quyết lỗi tên trong python?

Điều kiện tiên quyết: Xử lý ngoại lệ Python Python Exception Handling

Có một số trường hợp ngoại lệ tiêu chuẩn trong Python và NameError là một trong số đó. NameRror được nâng lên khi số nhận dạng được truy cập không được xác định trong phạm vi địa phương hoặc toàn cầu. Nguyên nhân chung cho NameRror được nuôi dưỡng là:NameError is raised when the identifier being accessed is not defined in the local or global scope. General causes for NameError being raised are :

1. Chức năng tích hợp sai chính tả:

Trong mã ví dụ dưới đây, câu lệnh in là sai chính tả do đó tên là sẽ được nêu ra.

Python3

NameError: name 'geek' is not defined
1
NameError: name 'geek' is not defined
2
NameError: name 'geek' is not defined
3
NameError: name 'geek' is not defined
4

NameError: name 'geek' is not defined
5
NameError: name 'geek' is not defined
6

Đầu ra: & nbsp; 

NameError: name 'print' is not defined

2. Sử dụng các biến không xác định:

Khi chương trình dưới đây được thực hiện, NameError sẽ được nêu ra vì Geek biến không bao giờ được xác định.

Python3

NameError: name 'geek' is not defined
7
NameError: name 'geek' is not defined
2
NameError: name 'geek' is not defined
3
NameError: name 'geek' is not defined
4

NameError: name 'geek' is not defined
5
NameError: name 'geek' is not defined
6

& nbsp; đầu ra: & nbsp;
Output : 

NameError: name 'geek' is not defined

3. Xác định biến sau khi sử dụng:

Trong ví dụ sau, mặc dù Geek biến được xác định trong chương trình, nó được xác định sau khi sử dụng nó. Vì Python diễn giải mã từ trên xuống dưới, điều này sẽ tăng nameRror

Python3

NameError: name 'geek' is not defined
5
NameError: name 'geek' is not defined
6

NameError: name 'geek' is not defined
1
NameError: name 'geek' is not defined
2
NameError: name 'geek' is not defined
7

& nbsp; đầu ra: & nbsp;
Output : 

3. Xác định biến sau khi sử dụng:

Trong ví dụ sau, mặc dù Geek biến được xác định trong chương trình, nó được xác định sau khi sử dụng nó. Vì Python diễn giải mã từ trên xuống dưới, điều này sẽ tăng nameRror

NameError: name 'geek' is not defined
1
NameError: name 'geek' is not defined
2
NameError: name 'geek' is not defined
7

Python3

NameError: name 'geek' is not defined

4. Sử dụng phạm vi không chính xác:

NameError occurred. Some variable isn't defined.
4

NameError: name 'geek' is not defined
5
NameError: name 'geek' is not defined
6

& nbsp; đầu ra: & nbsp;
Output : 

NameError: name 'geek' is not defined

3. Xác định biến sau khi sử dụng:

Trong ví dụ sau, mặc dù Geek biến được xác định trong chương trình, nó được xác định sau khi sử dụng nó. Vì Python diễn giải mã từ trên xuống dưới, điều này sẽ tăng nameRror

Python3

NameError: name 'geek' is not defined
1
NameError: name 'geek' is not defined
2
NameError: name 'geek' is not defined
7

NameError occurred. Some variable isn't defined.
0
nameerror name is not defined
0
nameerror name is not defined
1

NameError: name 'geek' is not defined

4. Sử dụng phạm vi không chính xác:

Trong chương trình ví dụ dưới đây, geek biến được xác định trong phạm vi cục bộ của hàm gán. Do đó, nó không thể được truy cập trên toàn cầu. Điều này làm tăng Nameerror.

NameError: name 'geek' is not defined
8
NameError: name 'geek' is not defined
9

NameError: name 'geek' is not defined
5
books = ["Near Dark", "The Order", "Where the Crawdads Sing"]

print(boooks)
6

Đầu ra: & nbsp; 

NameError occurred. Some variable isn't defined.

Mã của chúng tôi đã in thành công danh sách các cuốn sách.

Nguyên nhân #3: Quên xác định một biến

Hướng dẫn how do you resolve a name error in python? - làm cách nào để giải quyết lỗi tên trong python?

Khi các chương trình trở nên lớn hơn, thật dễ dàng để quên xác định một biến. Nếu bạn làm, một lỗi tên được nêu ra. Điều này là do Python không thể làm việc với các biến cho đến khi chúng được khai báo.

  • Hãy cùng xem một chương trình in một danh sách các cuốn sách:
  • Mã của chúng tôi trả về: & nbsp;

Chúng tôi đã không tuyên bố một biến có tên là sách sách. Để giải quyết vấn đề này, chúng tôi cần khai báo về sách của Google trước khi chúng tôi sử dụng nó trong mã của mình:
First name

Last name

Email

Phone number

Hãy để cố gắng chạy lại chương trình của chúng tôi và xem điều gì sẽ xảy ra:

Bây giờ chúng tôi đã xác định một danh sách các cuốn sách, Python có thể in từng cuốn sách từ danh sách.

Nguyên nhân #4: Cố gắng in một từ duy nhất

Để in ra một từ trong Python, bạn cần bao quanh nó bằng trích dẫn đơn hoặc đôi. Điều này nói với Python rằng một từ là một chuỗi. Nếu một từ không được bao quanh bởi các trích dẫn, nó được coi là một phần của chương trình. Xem xét câu lệnh in () sau:

Mã này cố gắng in từ sách sách trên bảng điều khiển. Mã trả về một lỗi:

nameerror name is not defined

"Karma nghề nghiệp bước vào cuộc sống của tôi khi tôi cần nó nhất và nhanh chóng giúp tôi kết hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi tìm thấy công việc mơ ước của mình phù hợp với các giá trị và mục tiêu của tôi trong cuộc sống!"

Sao Kim, Kỹ sư phần mềm tại Rockbot

Python đối xử với những cuốn sách của người Viking giống như một tên biến. Để giải quyết lỗi này, chúng ta có thể gửi kèm từ sách sách về dấu ngoặc kép:

Python bây giờ biết rằng chúng tôi muốn in ra một chuỗi vào bảng điều khiển. Mã mới của chúng tôi trả về: Sách.

Nếu có một lỗi đánh máy ở bất cứ nơi nào bạn cố gắng tham chiếu biến đó, một lỗi sẽ được trả về.

Xem xét đoạn mã sau:

books = ["Near Dark", "The Order", "Where the Crawdads Sing"]

print(boooks)

Mã của chúng tôi trả về:

Traceback (most recent call last):
  File "main.py", line 3, in 
	print(boooks)
NameError: name 'boooks' is not defined

Để giải quyết vấn đề này, tất cả những gì chúng ta phải làm là sửa lỗi đánh máy. Nếu chúng ta sử dụng in bản in (sách), mã của chúng ta trả về:

["Near Dark", "The Order", "Where the Crawdads Sing"]

Nếu bạn nhận được lỗi tên, trước tiên bạn nên kiểm tra để đảm bảo rằng bạn đã đánh vần chính xác tên biến hoặc chức năng một cách chính xác.

Nguyên nhân #2: Gọi một hàm trước khi khai báo

Các chức năng phải được khai báo trước khi chúng được sử dụng, như các biến. Điều này là do Python đọc mã từ từ trên xuống dưới. & NBSP;

Hãy để viết một chương trình gọi một hàm trước khi được khai báo:

books = ["Near Dark", "The Order", "Where the Crawdads Sing"]

print_books(books)

def print_books(books):
	for b in books:
		print(b)

Mã của chúng tôi trả về:

NameError: name 'geek' is not defined
0

Để giải quyết vấn đề này, tất cả những gì chúng ta phải làm là sửa lỗi đánh máy. Nếu chúng ta sử dụng in bản in (sách), mã của chúng ta trả về:

NameError: name 'geek' is not defined
1

Mã của chúng tôi trả về:

NameError: name 'geek' is not defined
2

Để giải quyết vấn đề này, tất cả những gì chúng ta phải làm là sửa lỗi đánh máy. Nếu chúng ta sử dụng in bản in (sách), mã của chúng ta trả về:

Nếu bạn nhận được lỗi tên, trước tiên bạn nên kiểm tra để đảm bảo rằng bạn đã đánh vần chính xác tên biến hoặc chức năng một cách chính xác.

Nguyên nhân #2: Gọi một hàm trước khi khai báo

Các chức năng phải được khai báo trước khi chúng được sử dụng, như các biến. Điều này là do Python đọc mã từ từ trên xuống dưới. & NBSP;

Hãy để viết một chương trình gọi một hàm trước khi được khai báo:

NameError: name 'geek' is not defined
3

Chúng tôi đang cố gắng gọi print_books () trên dòng ba. Tuy nhiên, chúng tôi không xác định chức năng này cho đến sau này trong chương trình của chúng tôi. Để khắc phục lỗi này, chúng tôi có thể chuyển khai báo chức năng của mình đến một nơi trước khi chúng tôi sử dụng:

NameError: name 'geek' is not defined
4

Mã của chúng tôi đã in thành công danh sách các cuốn sách.

NameError: name 'geek' is not defined
2

Nguyên nhân #3: Quên xác định một biến

Khi các chương trình trở nên lớn hơn, thật dễ dàng để quên xác định một biến. Nếu bạn làm, một lỗi tên được nêu ra. Điều này là do Python không thể làm việc với các biến cho đến khi chúng được khai báo.

Hãy cùng xem một chương trình in một danh sách các cuốn sách:

Mã của chúng tôi trả về: & nbsp;

Hướng dẫn how do you resolve a name error in python? - làm cách nào để giải quyết lỗi tên trong python?

Chúng tôi đã không tuyên bố một biến có tên là sách sách. Để giải quyết vấn đề này, chúng tôi cần khai báo về sách của Google trước khi chúng tôi sử dụng nó trong mã của mình:

Hãy để cố gắng chạy lại chương trình của chúng tôi và xem điều gì sẽ xảy ra:

NameError: name 'geek' is not defined
6

Bây giờ chúng tôi đã xác định một danh sách các cuốn sách, Python có thể in từng cuốn sách từ danh sách.

Nguyên nhân #4: Cố gắng in một từ duy nhất

Để in ra một từ trong Python, bạn cần bao quanh nó bằng trích dẫn đơn hoặc đôi. Điều này nói với Python rằng một từ là một chuỗi. Nếu một từ không được bao quanh bởi các trích dẫn, nó được coi là một phần của chương trình. Xem xét câu lệnh in () sau:

Mã này cố gắng in từ sách sách trên bảng điều khiển. Mã trả về một lỗi:

"Karma nghề nghiệp bước vào cuộc sống của tôi khi tôi cần nó nhất và nhanh chóng giúp tôi kết hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi tìm thấy công việc mơ ước của mình phù hợp với các giá trị và mục tiêu của tôi trong cuộc sống!"

Sao Kim, Kỹ sư phần mềm tại Rockbot

Python đối xử với những cuốn sách của người Viking giống như một tên biến. Để giải quyết lỗi này, chúng ta có thể gửi kèm từ sách sách về dấu ngoặc kép:

NameError: name 'geek' is not defined
7

Mã của chúng tôi trả về:

NameError: name 'geek' is not defined
8

Python bây giờ biết rằng chúng tôi muốn in ra một chuỗi vào bảng điều khiển. Mã mới của chúng tôi trả về: Sách.

Nguyên nhân #5: Khai báo một biến ra khỏi phạm vi

NameError: name 'geek' is not defined
9

Mã của chúng tôi trả về:

NameError: name 'geek' is not defined
0

Có hai phạm vi biến đổi: địa phương và toàn cầu.