DEV Community

Akash Singh
Akash Singh

Posted on

Basic Python: 3. Python Variables

In the world of programming, variables are the building blocks that store and manipulate data. In Python, a versatile and powerful programming language, understanding variables is fundamental to writing effective code. In this blog post, we'll delve into the world of Python variables, covering their basics, naming conventions, data types, scope, and best practices through real-world examples.

Table of Contents

  1. Defining and Assigning Variables
  2. Naming Conventions for Variables
  3. Data Types and Type Inference
  4. Variable Scope and Lifetime
  5. Best Practices for Using Variables

1. Introduction to Python Variables

At its core, a variable is a named container that holds a value. Variables play a crucial role in programming, allowing us to store and manipulate data in a dynamic manner.

2. Defining and Assigning Variables

In Python, variables are created and assigned values using a simple syntax:

# Assigning values to variables
name = "Akash"
age = 23
height = 5.8
is_student = True
Enter fullscreen mode Exit fullscreen mode

3. Naming Conventions for Variables

When naming variables in Python, adhere to the following guidelines:

  • Variable names should be descriptive and meaningful.
  • Use lowercase letters for variable names.
  • Separate words with underscores for readability (user_name instead of username).
  • Avoid using Python's reserved keywords (e.g., if, for, while) as variable names.

4. Data Types and Type Inference

Python is dynamically typed, which means that you don't need to declare the type of a variable explicitly. The interpreter infers the variable's type based on the assigned value.

# Integer variable
age = 25

# String variable
name = "Akash"

# Float variable
height = 6.2
Enter fullscreen mode Exit fullscreen mode

5. Variable Scope and Lifetime

The scope of a variable defines where it can be accessed or modified. Python has three levels of variable scope: local, enclosing (for nested functions), and global. A variable's lifetime refers to the duration for which it exists in memory.

1. Local Scope

A variable declared inside a function is in the local scope. It's only accessible within that function.

def my_function():
    local_var = 5  # Local variable
    print(local_var)

my_function()
print(local_var)  # Error: NameError
Enter fullscreen mode Exit fullscreen mode

2. Enclosing Scope (Nested Functions)

When you have nested functions, the enclosing function's scope becomes accessible to the inner function.

def outer_function():
    outer_var = 20  # Enclosing scope variable
    def inner_function():
        print(outer_var)  # Accessible from inner function

    inner_function()

outer_function()
Enter fullscreen mode Exit fullscreen mode

3. Global Scope

A variable declared outside of any function is in the global scope. This means it's accessible from anywhere in the program.

global_var = 10  # Global variable

def my_function():
    print(global_var)  # Accessible inside the function

my_function()
print(global_var)      # Accessible outside the function
Enter fullscreen mode Exit fullscreen mode

4. Global Variables Inside Functions

While global variables are accessible inside functions, modifying them requires extra care. If a global variable is modified inside a function without explicitly declaring it as global, a new local variable with the same name is created instead.

global_var = 10  # Global variable

def modify_global():
    global_var = 20  # Creates a new local variable
    print(global_var)

modify_global()
print(global_var)  # Output: 10 (unchanged)
Enter fullscreen mode Exit fullscreen mode

5. Modifying Global Variables

To modify a global variable inside a function, you need to declare it as global.

global_var = 10  # Global variable

def modify_global():
    global global_var
    global_var = 20  # Modifies the global variable
    print(global_var)

modify_global()
print(global_var)  # Output: 20 (modified)
Enter fullscreen mode Exit fullscreen mode

6. Using Local and Global Variables Together

Local and global variables can coexist, each maintaining its scope.

total = 0  # Global variable

def update_total(value):
    global total  # Modifying the global variable
    total += value  # Modifying the global variable
    local_var = 5  # Local variable
    print("Local variable:", local_var)
    print("Global variable:", total)

update_total(10)
Enter fullscreen mode Exit fullscreen mode

6. Best Practices for Using Variables

  • Choose meaningful variable names that reflect their purpose.
  • Initialize variables before using them to avoid unexpected behavior.
  • Avoid using single-letter variable names (unless for short-lived iterators).
  • Keep variable names concise, but not so short that they become unclear.
  • Group related variables together using appropriate data structures.

Top comments (0)