<DataInsights />
  • 🏠 Home
  • 📊 SQL
  • 🐍 Python
  • 📈 Power BI
  • 📗 Excel
  • 💼 Career
  • 🎯 Interview Q&A
  • 📁 Case Study
  • 📥 Downloads
  • 🚀 My Portfolio
<DataInsights />

Practical Data Analytics tutorials covering SQL, Python, Power BI, Excel and career guidance for aspiring analysts — 100% free.

Topics

  • SQL Tutorials
  • Python Guide
  • Power BI
  • Excel Tips
  • Career Guide

Quick Links

  • 🛠️ All Tools
  • 🗓️ Archive
  • 📬 Contact
  • 🔍 Search
  • Portfolio
  • Kaggle
  • GitHub

Legal & Info

  • About
  • Contact
  • Privacy Policy
  • Disclaimer
  • Terms & Conditions
  • DMCA
  • Sitemap
Copyright © 2026 Data Insights by Jatin Kumar. All Rights Reserved.Built with ❤️ for Data Analysts
Home/error/How to Fix Python NameError — Complete Guide...

How to Fix Python NameError — Complete Guide

A
August 6, 2026 Jatin Kumar 10 min read error
Data Insights Debugging Guide

How to Fix Python NameError — Complete Guide 🐍

Python mein "name not defined" — sabse frustrating aur common error jo har programmer ne dekha hai. Variable, function ya module use kiya but define nahi kiya — NameError! Complete guide with real examples, fixes aur interview questions. Data Insights par.

⚡ Quick Answer

NameError tab aata hai jab Python ko koi aisa naam (variable, function, module) milta hai jo currently defined nahi hai. Matlab tumne kisi cheez ka use kiya jo exist hi nahi karti. Quick Fix: Variable define karo pehle use se pehle, spelling check karo, aur module import karo.

Error Type: Runtime Error

Language: Python

Difficulty: Very Easy to Fix

Frequency: ⭐⭐⭐⭐⭐ Extremely Common

💥 Error Message

NameError ke different variations depending on scenario:

📋 Common NameError Messages:

Message 1 — Variable not defined: NameError: name 'variable_name' is not defined
Message 2 — Typo in variable name:
NameError: name 'nmae' is not defined. Did you mean: 'name'?

Message 3 — Function not defined:
NameError: name 'function_name' is not defined

Message 4 — Module not imported:
NameError: name 'pd' is not defined

Message 5 — Case sensitivity issue:
NameError: name 'Print' is not defined. Did you mean: 'print'?

Message 6 — Variable used before assignment:
NameError: name 'result' is not defined

💡 Python 3.10+ Feature: Modern Python versions "Did you mean:" suggestions dete hain — spelling mistakes ke liye. Yeh feature bahut helpful hai — Python khud batata hai kya galat hua.

📘 Definition

NameError is a built-in Python exception raised when the interpreter encounters a name (variable, function, class, or module) that has not been defined or is not accessible in the current scope. Python searches for names in a specific order (Local → Enclosing → Global → Built-in — the LEGB rule) and if the name is not found in any scope, it raises NameError. Unlike syntax errors, NameError is a runtime error — code compiles fine but fails during execution.

🔑 Key Point:
Python case-sensitive language hai — Name, name, aur NAME teen alag variables hain. Yeh NameError ka biggest cause hai beginners ke liye.

🎯 Hinglish Explanation

Simple Words Mein: NameError ka matlab hai — "Bhai, tumne yeh naam use kiya but yeh naam mujhe nahi pata! Yeh define nahi hai." Python ke paas jab bhi koi variable, function, ya module ka naam aata hai, woh apni memory mein search karta hai. Agar nahi milta — NameError!

Real Life Example Se Samjho: Socho tum ek office mein naye ho. Tumne bola "Rahul ko yeh file de do." Manager bolega "Rahul kaun hai? Yahan koi Rahul kaam nahi karta." Same problem Python mein — print(rahul) likha but rahul variable define nahi kiya. Python bolta hai "yeh rahul kaun hai? Mujhe nahi pata!"

Sabse Common Situations: (1) Variable define karna bhool gaye — print(x) without x = 5. (2) Spelling galat likhi — Name define kiya, name print kar rahe ho. (3) Module import karna bhool gaye — pd.read_csv() without import pandas as pd. (4) Function ka use kiya but define nahi kiya. Yeh sab NameError deta hai.

Good News: NameError sabse EASIEST error hai fix karne mein! Python 3.10+ toh "Did you mean" suggestion bhi deta hai — 90% cases mein Python khud bata deta hai fix kya hai.

🤔 Why This Error Happens?

Root Cause: Python jab koi name encounter karta hai, LEGB order mein search karta hai — Local scope → Enclosing scope → Global scope → Built-in scope. Agar name kahin nahi milta, NameError raise hota hai. Yeh 5 main reasons hain:

📋 5 Common Root Causes:

# Reason Example
1 Variable use before assignment print(x) without x = 5
2 Spelling mistake / Typo nmae instead of name
3 Case sensitivity mistake Print() instead of print()
4 Module not imported pd.read_csv() without import pandas
5 Variable scope issue Function ke andar defined, bahar use

💻 Real Examples

❌ Example 1: Variable Not Defined

# Variable use kiya but define nahi kiya print(age) # NameError! age exist nahi karta

❌ Example 2: Spelling Mistake (Typo)

name = "Jatin" print(nmae) # NameError! Typo — 'nmae' instead of 'name'

❌ Example 3: Case Sensitivity Issue

Name = "Jatin" # Capital N print(name) # NameError! 'name' (lowercase) not defined

❌ Example 4: Module Not Imported

# Pandas import karna bhool gaye df = pd.read_csv("data.csv") # NameError! pd not defined

❌ Example 5: Function Scope Issue

def calculate(): result = 100 # result is local to function
calculate()
print(result) # NameError! result outside function scope

📊 Output — Actual Error You'll See

Example 1 Output:

Traceback (most recent call last): File "example.py", line 1, in <module> print(age) ^^^ NameError: name 'age' is not defined

Example 2 Output (Python 3.10+):

Traceback (most recent call last): File "example.py", line 2, in <module> print(nmae) ^^^^ NameError: name 'nmae' is not defined. Did you mean: 'name'?

Example 3 Output:

Traceback (most recent call last): File "example.py", line 2, in <module> print(name) ^^^^ NameError: name 'name' is not defined. Did you mean: 'Name'?

Example 4 Output:

Traceback (most recent call last): File "example.py", line 2, in <module> df = pd.read_csv("data.csv") ^^ NameError: name 'pd' is not defined

Example 5 Output:

Traceback (most recent call last): File "example.py", line 5, in <module> print(result) ^^^^^^ NameError: name 'result' is not defined

🔧 How to Fix

✅ Fix 1: Define Variable Before Using

# Pehle define karo, phir use karo age = 25 # Define first print(age) # Output: 25 ✅

✅ Fix 2: Correct the Spelling

name = "Jatin" print(name) # Correct spelling ✅
# Pro Tip: IDE (VS Code, PyCharm) autocomplete use karo
# Typos automatically catch ho jaate hain

✅ Fix 3: Match Case Sensitivity

# Same case use karo throughout name = "Jatin" print(name) # Both lowercase ✅
# PEP 8 convention — Variables snake_case mein
first_name = "Jatin"
last_name = "Kumar"
print(first_name, last_name) # Jatin Kumar ✅

✅ Fix 4: Import Required Module

import pandas as pd # Import first!
df = pd.read_csv("data.csv") # Now pd is defined ✅
print(df.head())

# Common imports for data analysis
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

✅ Fix 5: Use Return Value from Function

def calculate(): result = 100 return result # Return value from function
value = calculate() # Capture return value
print(value) # 100 ✅

# Alternative: Use global variable (not recommended)
result = 0 # Define globally

def calculate():
global result
result = 100

calculate()
print(result) # 100 ✅

⚠️ Common Mistakes

Mistake 1: Variable Ko Use Karna Before Assignment
Python top-to-bottom execute karta hai. Agar tumne line 5 par variable use kiya but line 10 par assign kiya — NameError! Hamesha pehle define karo, phir use.

Mistake 2: Case Sensitivity Ignore Karna
Name, name, NAME — Python ke liye teen alag variables hain! JavaScript camelCase, Python snake_case use karta hai. Consistent naming convention follow karo (PEP 8).

Mistake 3: Function Ke Andar Ka Variable Bahar Use Karna
Function ke andar defined variables LOCAL scope mein hote hain — bahar accessible nahi. Function se value chahiye toh return statement use karo. Global variables avoid karo — hard to debug.

Mistake 4: Import Statement Skip Karna
Pandas tutorial dekha, pd.read_csv() likha, lekin import pandas as pd likhna bhool gaye. Har module use karne se pehle import karo. Common data analysis imports hamesha file ke top par likho.

Mistake 5: Jupyter Notebook Cells Ka Order Confusion
Jupyter mein cells order-wise execute nahi karte. Tumne cell 5 mein x = 10 define kiya, cell 3 mein print(x) — cell 3 pehle run kiya toh NameError! Cells top-to-bottom run karo ya "Restart & Run All" use karo.

💬 Interview Questions

Q1: NameError kya hai aur kab aata hai?
Ans: NameError Python ka built-in exception hai jo tab raise hota hai jab interpreter ko koi aisa name (variable, function, class, module) milta hai jo currently defined nahi hai ya current scope mein accessible nahi hai. Python LEGB rule follow karta hai — Local → Enclosing → Global → Built-in scopes mein search karta hai. Agar sab jagah search karke bhi name nahi milta — NameError raise hota hai. Common causes: (1) Variable use before assignment, (2) Typo, (3) Case mismatch, (4) Missing import, (5) Wrong scope. Runtime error hai — code compile ho jaata hai but execute karte waqt fail hota hai.

Q2: NameError aur SyntaxError mein kya difference hai?
Ans: Dono errors different stages par aate hain. SyntaxError COMPILE time par aata hai — Python code ki structure/grammar galat hai (missing colon, unclosed bracket, wrong indentation). Code chalta hi nahi. NameError RUNTIME par aata hai — code syntactically correct hai, compile ho jaata hai, but execute karte waqt undefined name encounter hota hai. Example: print(x without closing bracket = SyntaxError. print(x) without defining x = NameError. Simple rule: SyntaxError = code ki grammar galat, NameError = code correct but missing kuch.

Q3: LEGB Rule kya hai aur NameError se kaise related hai?
Ans: LEGB Python ka variable lookup order hai — Local → Enclosing → Global → Built-in. Jab tum koi variable use karte ho, Python is order mein search karta hai: (1) Local — current function/scope. (2) Enclosing — outer function (nested case). (3) Global — module level. (4) Built-in — Python's built-in functions (print, len, etc.). Agar variable in sab scopes mein nahi milta — NameError raise hota hai. Isliye function ke andar define kiya variable bahar use karo — NameError, because bahar Local scope mein woh exist nahi karta. Global variables ko function ke andar modify karne ke liye global keyword use karo, ya better — return statement use karo.

🔗 Related Errors

Related Error When It Happens Difference from NameError
UnboundLocalError Local variable used before assignment Variable exists in function but not yet assigned
ModuleNotFoundError Import module that doesn't exist Module not installed (needs pip install)
ImportError Can't import name from module Module exists but specific function/class not found
AttributeError Object doesn't have that attribute/method Name exists but attribute wrong
SyntaxError Code grammar wrong Compile-time error (NameError is runtime)

💡 UnboundLocalError NameError ka special case hai — jab function ke andar variable pehli baar assign karne SE PEHLE use karo. NameError base class hai, UnboundLocalError uska subclass hai.

📋 Summary

🎯 What Is NameError?
Python exception jab interpreter ko undefined name (variable/function/module) mile. Runtime error hai — code chalta hai but execution mein fail hota hai.

🎯 Top 5 Common Causes:
1. Variable use before assignment (define pehle karo)
2. Spelling mistake / typo (autocomplete use karo)
3. Case sensitivity mistake (name ≠ Name ≠ NAME)
4. Module not imported (import statement missing)
5. Variable scope issue (function ke andar defined, bahar use)

🎯 3 Golden Fix Rules:
1. Define before use — hamesha pehle variable assign karo
2. Check spelling & case — Python case-sensitive hai
3. Import required modules — file ke top par sab imports likho

🎯 Key Takeaway:
NameError sabse easy error hai fix karne mein. Python 3.10+ "Did you mean" suggestion deta hai — pura error message read karo. IDE (VS Code, PyCharm) autocomplete use karo — 90% typos catch ho jaate hain. Jupyter Notebook mein cells order-wise run karo. Follow PEP 8 naming convention (snake_case).

🎯 NameError — Complete Guide Done!

Ab tum Python NameError ko easily identify aur fix kar sakte ho. 5 real scenarios, multiple fix methods, aur 5 common mistakes — sab kuch cover ho gaya. Yaad rakho — pehle define karo, phir use karo, aur spelling check karo. Python 3.10+ "Did you mean" suggestions ko trust karo — usually correct hoti hain. Next Error Blog: Python IndexError — list index out of range. Data Insights Debugging Guide series continue ho rahi hai — har error ka dedicated blog. Data Insights par sab FREE, detailed, Hinglish mein.

Happy Debugging & Keep Coding! 🚀

👤
Jatin Kumar
Data Analyst & Educator

Python, SQL, Power BI aur Excel mein practical tutorials likhta hoon — taaki data analytics seekhna aasan ho. Portfolio: jatinanalytics.co.in

Portfolio LinkedIn GitHub Kaggle All Articles
Share:

💬 Comments (0)

Spam/links allowed nahi hain — respectful comments welcome!

Loading comments...

Was this article helpful?
Previous ArticleHow to Fix Python ValueError — Complete GuideNext Article How to Fix IndexError In Python — Complete Guide