Command Palette

Search for a command to run...

Basic Concept of Variables in Python

Variables in Python are names that refer to specific objects in computer memory. Think of variables like labels or nicknames that you give to a storage box. The box contains values or data, while the label makes it easy for you to find and use the contents of the box whenever needed.

When you write x = 2, Python does three important things. First, Python creates an object with the value 2 in memory. Second, Python stores that object at a specific memory address. Third, Python connects the variable name x to that memory address.

How Variables and Memory Work

Every time you create a new variable, Python allocates space in computer memory to store that value. Each memory location has a unique address that you can see using the id() function.

Mermaidmermaid
Loading
Pythonvariable_memory.py
# Creating variable x with value 2x = 2print(x)        # Output: 2print(id(x))    # Output: 1004 (memory address)# id() function displays object memory addressprint(id(2))    # Output: 1004 (same address)# Creating variable y that refers to variable xy = xprint(y)        # Output: 2print(id(y))    # Output: 1004 (same address as x)# Creating variable z with the same valuez = 2print(z)        # Output: 2print(id(z))    # Output: 1004 (same address)

The example above shows an important concept in Python. When multiple variables have the same value, Python often makes them refer to the same object in memory. This is an optimization that Python performs to save memory usage, especially for frequently used objects like small numbers and short strings.

Python Variable Characteristics

Python has several unique characteristics in variable handling that distinguish it from other programming languages.

No Variable Declaration

Unlike programming languages such as C or Java, Python does not require explicit variable declaration. You don't need to specify the variable's data type before using it. Python will automatically determine the data type based on the given value.

Pythonno_declaration.py
# Python does not require variable declarationnama = "Budi"           # Stringumur = 25               # Integertinggi = 175.5          # Floataktif = True            # Boolean# Python determines data type automaticallyprint(type(nama))       # Output: <class 'str'>print(type(umur))       # Output: <class 'int'>print(type(tinggi))     # Output: <class 'float'>print(type(aktif))      # Output: <class 'bool'>

Dynamic Data Types

Python uses a dynamic data type system, which means variable data types can change while the program is running. One variable can store an integer at one time, then be changed to a string at another time.

Pythondynamic_typing.py
# Variable with dynamic data typesdata = 42               # Integerprint(f"Value: {data}, Type: {type(data)}")data = "Hello World"    # Stringprint(f"Value: {data}, Type: {type(data)}")data = [1, 2, 3]        # Listprint(f"Value: {data}, Type: {type(data)}")data = 3.14             # Floatprint(f"Value: {data}, Type: {type(data)}")

Variable Naming Rules

Python has strict rules for variable naming that you must follow for code to run correctly.

Variable Name Components

Variable names in Python can consist of three main components. First are letters, both lowercase (a, b, c, ..., z) and uppercase (A, B, C, ..., Z). Second are numbers (0, 1, 2, ..., 9). Third is the underscore character (_).

Pythonvalid_names.py
# Valid variable namesstudent_name = "Ahmad"      # Using letters and underscorescore1 = 85                 # Using letters and numbers_total = 100                # Starting with underscoreMAX_SIZE = 1000             # All uppercase letterscamelCase = "valid"         # camelCase stylesnake_case = "valid"        # snake_case styleprint(student_name, score1, _total, MAX_SIZE, camelCase, snake_case)

Mandatory Rules

Several mandatory rules that you must follow in Python variable naming. Variable names cannot start with a number. Python will generate a syntax error if you try to create a variable that starts with a number.

Pythonnaming_rules.py
# CORRECT variable namesdata1 = "valid"data_2 = "valid"_data3 = "valid"# WRONG variable names (will cause error)# 1data = "invalid"     # SyntaxError# 2nilai = "invalid"    # SyntaxError# 9test = "invalid"     # SyntaxErrorprint(data1, data_2, _data3)

Case Sensitivity

Python distinguishes between uppercase and lowercase letters in variable names. This means nama, Nama, and NAMA are three different variables.

Pythoncase_sensitive.py
# Python distinguishes uppercase and lowercasenama = "budi"Nama = "Siti"NAMA = "Ahmad"print(f"nama: {nama}")      # Output: nama: budiprint(f"Nama: {Nama}")      # Output: Nama: Sitiprint(f"NAMA: {NAMA}")      # Output: NAMA: Ahmad# These three variables are different from each otherprint(nama == Nama)         # Output: Falseprint(Nama == NAMA)         # Output: False

Keywords That Cannot Be Used

Python has a list of keywords that cannot be used as variable names because these words have special functions in the Python language.

Python Keywords List

Here are the keywords that cannot be used as variable names. The first group includes and, as, assert, async, await, break, class, continue, def, del, elif, else. The second group covers except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not. The third group consists of or, pass, raise, return, try, while, with, yield, False, True, None.

Pythonkeywords_example.py
# Examples of WRONG usage (will cause error)# if = 10          # SyntaxError: invalid syntax# for = "hello"    # SyntaxError: invalid syntax# def = 25         # SyntaxError: invalid syntax# class = "test"   # SyntaxError: invalid syntax# CORRECT way for similar variable nameskondisi_if = 10loop_for = "hello"fungsi_def = 25kelas_class = "test"print(kondisi_if, loop_for, fungsi_def, kelas_class)

Checking Keywords

Python provides the keyword module to check whether a word is a keyword or not.

Pythoncheck_keywords.py
import keyword# View all Python keywordsprint("Number of keywords:", len(keyword.kwlist))print("Keyword list:")for i, kw in enumerate(keyword.kwlist, 1):  print(f"{i:2d}. {kw}")# Check if a word is a keywordprint(f"\nIs 'if' a keyword? {keyword.iskeyword('if')}")print(f"Is 'nama' a keyword? {keyword.iskeyword('nama')}")print(f"Is 'class' a keyword? {keyword.iskeyword('class')}")

Variable Naming Best Practices

Although Python provides flexibility in variable naming, there are several best practices you should follow to make code more readable and maintainable.

Meaningful Names

Use variable names that clearly explain what is stored in the variable. Meaningful names make code easier to understand, both for yourself and others.

Pythonmeaningful_names.py
# POOR variable namesh = 175w = 70a = 25# GOOD variable namesbody_height = 175body_weight = 70age = 25# Calculate BMI with clear variable namesbmi = body_weight / ((body_height / 100) ** 2)print(f"BMI: {bmi:.2f}")# Easier to understand the meaning of each variableprint(f"Height: {body_height} cm")print(f"Weight: {body_weight} kg")print(f"Age: {age} years")

Appropriate Name Length

Avoid variable names that are too long as they will make code hard to read. Conversely, names that are too short may not provide enough information.

Pythonname_length.py
# Name too long (POOR)student_height_class_12_science_odd_semester = 175# Name too short (POOR)h = 175# Appropriate name (GOOD)student_height = 175height = 175  # If context is already clear# For counter variables, short names are acceptablefor i in range(10):  print(f"Iteration {i}")# For more complex data, use clear namesstudent_count = 30average_score = 85.5

Consistent Writing Style

Python uses snake_case style for variable names, where words are separated by underscores and all letters use lowercase.

Pythonnaming_style.py
# snake_case style (RECOMMENDED for Python)full_name = "Ahmad Budi"birth_date = "1995-05-15"home_address = "Jl. Merdeka No. 123"# camelCase style (more common in JavaScript/Java)fullName = "Ahmad Budi"  # Not wrong, but less Python-like# PascalCase style (usually for class names)FullName = "Ahmad Budi"  # Not recommended for variables# Consistency within one programmath_score = 90physics_score = 85chemistry_score = 88average_score = (math_score + physics_score + chemistry_score) / 3print(f"Average score: {average_score:.2f}")

Avoiding Confusion

Avoid using characters that can cause confusion, especially letters that look similar to numbers.

Pythonavoid_confusion.py
# Confusing characters (AVOID)# l = 1        # Letter 'l' looks like number '1'# I = 1        # Letter 'I' looks like number '1'  # O = 0        # Letter 'O' looks like number '0'# Clearer alternativeslength = 1      # Use clear wordsindex = 1       # Or more descriptive namesempty = 0       # Names that explain the meaning# Example usage in clear contextitem_count = 10for number in range(1, item_count + 1):  print(f"Item number {number}")# Boolean variables with clear namesis_active = Truehas_permission = Falsecan_edit = True

Example of Variable Usage in Programs

Let's look at how variables are used in a simple program that calculates the area and perimeter of a rectangle.

Pythonrectangle_calculator.py
# Program to calculate rectangle area and perimeterprint("=== Rectangle Calculator ===")# User inputlength = float(input("Enter length (cm): "))width = float(input("Enter width (cm): "))# Calculationsarea = length * widthperimeter = 2 * (length + width)# Display resultsprint(f"\nCalculation Results:")print(f"Length: {length} cm")print(f"Width: {width} cm")print(f"Area: {area} cm²")print(f"Perimeter: {perimeter} cm")# Input validationif length <= 0 or width <= 0:  print("\nWarning: Length and width must be greater than 0!")else:  print("\nCalculation is valid.")

The example program above shows the use of variables with meaningful names, mathematical calculations, and data validation. Each variable has a clear purpose and a name that explains its contents.

Understanding variable concepts, naming rules, and best practices will help you write cleaner, more readable, and maintainable Python code. Variables are the basic foundation in programming, and good mastery of this concept will facilitate learning more advanced programming concepts.