NameRors là một trong những loại lỗi Python phổ biến nhất. Để làm rõ, khi bạn mới bắt đầu, những lỗi này có vẻ đáng sợ. Nhưng, 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, dựa trên các tài liệu từ Careerkarma, chúng tôi sẽ nói về tên Python NameRror không được xác định, tại sao nó được nêu ra và làm thế nào để gửi lại nó.
Tên là gì?
Một nameerror được nâng lên khi bạn cố gắng sử dụng A & nbsp; biến & nbsp; hoặc a & nbsp; function & nbsp; tên 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 python tên phổ biến nhất không được xác định là chức năng trông như thế này:
1 nameerror name is not defined
>>> Đọc thêm
- Đổi tên các tệp bằng Python: Cách thực hiện nó với các ví dụ
- So sánh chuỗi Python: Từng bước để so sánh các chuỗi trong Python
Hãy để phân tích một vài nguyên nhân của tên Python NameRror không được xác định.
1. Biến chính sai 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ả. Để làm rõ, 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.
Ngoài ra, Python chỉ có thể giải thích các tên mà bạn đã đánh vần chính xác. Bởi vì 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: Tên của Python NameRror không được xác định sẽ được trả về. Vì vậy, hãy xem xét đoạn mã sau:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:
1 Traceback [most recent call last]: 2 File "main.py", line 3, in 3 print[boooks] 4 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ề:
1 ["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.
2. Gọi một hàm trước khi khai báo - Tên của Python NameRror không được xác định
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:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print_books[books] 4 5 def print_books[books]: 6 for b in books: 7 print[b]
Mã trả về:
1 Traceback [most recent call last]: 2 File "main.py", line 3, in 3 print_books[books] 4 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 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:
1 def print_books[books]: 2 for b in books: 3 print[b] 4 5 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 6 7 print_books[books]
Mã trả về:
1 Near Dark 2 The Order 3 Where the Crawdads Sing
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:
Mã này đã in thành công danh sách các cuốn sách.
3. Tên của Python NameRror không được xác định chức năng: 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.
1 for b in books: 2 print[b]
Hãy cùng xem một chương trình in ra & nbsp; list & nbsp; của sách:
1 Traceback [most recent call last]: 2 File "main.py", line 1, in 3 for b in books: 4 NameError: name 'books' is not defined
Mã trả về: & nbsp;
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:0
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:
1 Near Dark 2 The Order 3 Where the Crawdads Sing
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
4. Cố gắng in một từ duy nhất - chức năng không được xác định Python
Để 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 & nbsp; print []:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:2
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:3
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:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:4
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: Tên Python NameRror không được xác định chức năng, chúng ta có thể gửi kèm từ từ sách sách về dấu ngoặc kép: 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 trả về: Sách.
5. Khai báo một biến ra khỏi phạm vi
Có hai phạm vi biến đổi: & nbsp; địa phương và toàn cầu.
Các biến cục bộ chỉ có thể truy cập 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 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, một lỗi sẽ được nêu ra.
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:5
Mã trả về:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:6
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:
Để 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:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:7
Mã của chúng tôi trả về:
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:8
1 books = ["Near Dark", "The Order", "Where the Crawdads Sing"] 2 3 print[boooks] The code returns:9
Tóm lại với chức năng không được xác định Python
Để tóm tắt, những lỗi này có vẻ đáng sợ. Nhưng, họ không quá phức tạp. Vì vậy, chúng tôi hy vọng bài viết này về tên Python NameRror không được xác định chức năng & nbsp; sẽ giúp bạn. Nhận xét suy nghĩ của bạn dưới đây hoặc liên hệ với chúng tôi ngay bây giờ!