Hàm Python không được xác định mặc dù nó là

Trong hướng dẫn này, chúng ta sẽ nói về lỗi “tên lỗi tên không được xác định” và tại sao nó lại xuất hiện. Chúng tôi sẽ hướng dẫn 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 mình

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Tên đầu tiên

Họ

E-mail

Số điện thoại


Bằng cách tiếp tục, bạn đồng ý với Đ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 ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email

NameError là gì?

NameError xuất hiệ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 biến sau khi cố gắng sử dụng biến đó trong mã của mình. Python sẽ không biết bạn muốn biến đó làm gì

NameError phổ biến nhất trông như thế này

nameerror name is not defined

Cùng phân tích một vài nguyên nhân gây ra lỗi này

Nguyên nhân số 1. Tên biến hoặc hàm viết sai chính tả

Con người dễ dàng che đậy lỗi chính tả. Chúng ta có thể dễ dàng biết một từ được cho là gì ngay cả khi nó sai chính tả. Python không có khả năng này

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

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

Hãy 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 “print[books]”, mã của chúng ta sẽ trả về

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

Nếu bạn gặp lỗi tên, trước tiên bạn nên kiểm tra để đảm bảo rằng bạn đã viết đúng tên biến hoặc tên hàm

» THÊM.   Yêu cầu Python. Hướng dẫn

Nguyên nhân #2. Gọi 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, giống như các biến. Điều này là do Python đọc mã từ trên xuống dưới.  

Hãy viết một chương trình gọi một hàm trước khi nó đượ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

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 ta có thể di chuyển phần khai báo hàm đến một nơi trước khi sử dụng

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

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

Nguyên nhân số 3. Quên định nghĩa một biến

Khi các chương trình trở nên lớn hơn, rất dễ quên định nghĩa một biến. Nếu bạn làm như vậy, một lỗi tên sẽ được đưa 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

Chúng ta hãy xem một chương trình in ra một danh sách các cuốn sách

________số 8_______

mã của chúng tôi trả về.  

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 chưa khai báo biến có tên là “books”. Để giải quyết vấn đề này, chúng ta cần khai báo “books” trước khi sử dụng nó trong code của mình

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

print[boooks]
0

Hãy thử chạy lại chương trình của chúng ta và xem điều gì sẽ xảy ra

Near Dark
The Order
Where the Crawdads Sing

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

» THÊM.   Trăn. Cách làm tròn đến hai chữ số thập phân

Nguyên nhân số 4. Cố gắng in một từ

Để in ra một từ trong Python, bạn cần đặt nó trong dấu ngoặc đơn hoặc dấu ngoặc kép. Đ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 dấu ngoặc kép, nó được coi là một phần của chương trình. Xét câu lệnh print[] sau

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

print[boooks]
2

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

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

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

Find Your Bootcamp Match

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

print[boooks]
3

Python coi “Sách” như một tên biến. Để giải quyết lỗi này, chúng ta có thể đặt từ “Books” trong dấu ngoặc kép

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

print[boooks]
4

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

Nguyên nhân số 5. Khai báo một biến ngoài phạm vi

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

Các biến cục bộ chỉ có thể truy cập được trong hàm hoặc lớp mà chúng được khai báo. Các biến toàn cầu có thể truy cập được trong suốt một chương trình

Nếu bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi mà nó được xác định, sẽ xảy ra lỗi

Đoạn mã sau sẽ in ra một danh sách các cuốn sách theo sau là số lượng sách trong danh sách

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

print[boooks]
5

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

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

print[boooks]
6

Mã của chúng tôi in thành công danh sách sách. Trên dòng cuối cùng của mã của chúng tôi, một lỗi được trả về. Mặc dù chúng ta đã khai báo biến “books”, chúng ta chỉ khai báo nó bên trong hàm print_books[]. Điều này có nghĩa là biến không thể truy cập được đối với phần còn lại của chương trình của chúng tôi

» THÊM.   Cách sử dụng bất kỳ và tất cả Python. Hướng dẫn từng bước

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

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

print[boooks]
7

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

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

print[boooks]
8

Mã của chúng tôi in ra mọi cuốn sách trong danh sách "sách". 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[]





Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

Tại sao Python nói chức năng của tôi không được xác định?

Một số lỗi phổ biến gây ra lỗi này là. Sử dụng tên biến hoặc hàm chưa được xác định . Viết sai tên biến/hàm khi gọi biến/hàm. Sử dụng mô-đun Python mà không cần nhập mô-đun, v.v.

Tại sao nó nói biến của tôi không được xác định?

Lỗi này có nguyên nhân và cách khắc phục như sau. Bạn đã sử dụng một câu lệnh Tùy chọn Rõ ràng để yêu cầu khai báo rõ ràng các biến, nhưng bạn đã sử dụng một biến mà không khai báo nó . Khai báo rõ ràng biến hoặc thay đổi cách viết của biến để khớp với cách viết của biến dự định.

Tại sao DF không được xác định?

Lỗi "NameError" của Python. tên 'df' không được xác định" xảy ra vì nhiều lý do. Truy cập biến df không tồn tại . Truy cập một biến df trước khi nó được khai báo. Truy cập một biến phạm vi từ bên ngoài.

Chủ Đề