Hướng dẫn how do i fix nameerror is not defined in python? - làm cách nào để khắc phục lỗi tên không được xác định trong python?

NameRors là một trong những loại lỗi Python phổ biến nhất. Khi bạn bắt đầu lần đầu tiên, những lỗi này có vẻ đáng sợ. Họ không quá phức tạp. Một nameError có nghĩa là bạn đã cố gắng sử dụng một biến chưa tồn tại.

Trong hướng dẫn này, chúng tôi sẽ nói về tên tên của tên gọi là lỗi không được xác định và lý do tại sao nó được nêu ra. Chúng tôi sẽ đi qua một vài giải pháp ví dụ cho lỗi này để giúp bạn hiểu cách giải quyết nó trong mã của bạn.

Hướng dẫn how do i fix nameerror is not defined in python? - làm cách nào để khắc phục lỗi tên không được xác định trong python?

Tìm Bootcamp của bạn phù hợp

  • Karma nghề nghiệp phù hợp với bạn với bootcamp công nghệ hàng đầu
  • Truy cập các học bổng và khóa học chuẩn bị độc quyền

Chọn mối quan tâm của bạn họ Tên điện thoại Email Tên của bạn
First name

Last name

Email

Phone number

Bằng cách tiếp tục, bạn đồng ý với các điều khoản dịch vụ và chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận được các ưu đãi và cơ hội từ Karma nghề nghiệp qua điện thoại, tin nhắn văn bản và email.

Tên là gì?

Một nameerror được nâng lên khi bạn cố gắng sử dụng một biến hoặc tên hàm không hợp lệ.

Trong Python, mã chạy từ trên xuống dưới. Điều này có nghĩa là bạn không thể khai báo một biến sau khi bạn cố gắng sử dụng nó trong mã của mình. Python sẽ không biết bạn muốn biến làm gì.

Tên phổ biến nhất trông như thế này:

nameerror name is not defined

Hãy để phân tích một vài nguyên nhân của lỗi này.

Nguyên nhân #1: Biến bị lỗi chính tả hoặc tên chức năng

Nó rất dễ dàng cho con người để che đậy những sai lầm chính tả. Chúng ta có thể dễ dàng nói những gì một từ được cho là ngay cả khi nó bị sai chính tả. Python không có khả năng này.

Python chỉ có thể giải thích các tên mà bạn đã đánh vần chính xác. Điều này là do khi bạn khai báo một biến hoặc một hàm, Python lưu trữ giá trị với tên chính xác mà bạn đã khai báo.

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ề:

Traceback (most recent call last):
  File "main.py", line 3, in 
	print_books(books)
NameError: name 'print_books' 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ề:

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

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

print_books(books)

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

Near Dark
The Order
Where the Crawdads Sing

Để 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:

Traceback (most recent call last):
  File "main.py", line 1, in 
	for b in books:
NameError: name 'books' is not defined

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:

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

for b in books:
print(b)

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

Near Dark
The Order
Where the Crawdads Sing

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 i fix nameerror is not defined in python? - làm cách nào để khắc phục lỗi tên không được xác định 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:

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

print(boooks)
1

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:

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

print(boooks)
2

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

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

print(boooks)
3

Để 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ề:

Để giải quyết vấn đề này, chúng tôi có thể khai báo sách trong chương trình chính của chúng tôi.Điều này sẽ làm cho nó trở thành một biến toàn cầu:

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

print(boooks)
4

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

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

print(boooks)
5

Mã của chúng tôi in ra mọi cuốn sách trong danh sách sách trên mạng.Sau đó, mã của chúng tôi in ra số lượng sách trong danh sách bằng phương thức Len ().

Làm cách nào để sửa lỗi tên của tôi trong Python?

Để xử lý cụ thể NameError trong Python, bạn cần đề cập đến nó trong câu lệnh ngoại trừ.Trong mã ví dụ sau, nếu chỉ có NameError được nêu trong khối thử thì một thông báo lỗi sẽ được in trên bảng điều khiển.mention it in the except statement. In the following example code, if only the NameError is raised in the try block then an error message will be printed on the console.

Nguyên nhân nào gây ra Nameerror trong Python?

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.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.