Hướng dẫn why am i getting name errors in python? - tại sao tôi gặp lỗi tên 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 why am i getting name errors in python? - tại sao tôi gặp lỗi tên 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 why am i getting name errors in python? - tại sao tôi gặp 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:

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

Tại sao Python lại cho tôi một lỗi?

Lý do phổ biến nhất của một lỗi trong chương trình Python là khi một tuyên bố nhất định không phù hợp với việc sử dụng theo quy định. Một lỗi như vậy được gọi là lỗi cú pháp. Thông dịch viên Python ngay lập tức báo cáo nó, thường là cùng với lý do. >>> In cú pháp "Xin chào": Thiếu dấu ngoặc đơn trong cuộc gọi đến 'In'.when a certain statement is not in accordance with the prescribed usage. Such an error is called a syntax error. The Python interpreter immediately reports it, usually along with the reason. >>> print "hello" SyntaxError: Missing parentheses in call to 'print'.

Lỗi tên trong gấu trúc là gì?

Gấu trúc tên là bực bội.Lỗi này xảy ra vì tập lệnh Python của bạn không thể tìm thấy tên 'gấu trúc' trong không gian tên của bạn.Điều này có nghĩa là bạn đã nhập gấu trúc dưới một tên khác hoặc hoàn toàn không.your python script cannot find the name 'pandas' in your namespace. This means you have either imported pandas under a different name or not at all.

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

Chủ yếu có ba loại lỗi có thể phân biệt trong Python: lỗi cú pháp, ngoại lệ và lỗi logic.syntax errors, exceptions and logical errors.

Không đặt tên cho một lỗi loại trong Python?

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ì.. In Python, code runs from top to bottom. This means that you cannot declare a variable after you try to use it in your code. Python would not know what you wanted the variable to do.