in , , ,

Python Naming Conventions: Best Practices for Readable and Elegant Code

Elevate Your Python Code with Effective Naming Conventions

black and silver laptop computer on table
Photo by Clément Hélardot on Unsplash


When it comes to writing Python code, one of the most crucial aspects is following proper naming conventions. Well-chosen names not only make your code more readable but also convey the purpose and functionality of your objects effectively. In this article, we will explore the best practices for naming conventions in Python. Whether you are a beginner or an experienced developer, understanding and adopting these conventions will help you write more elegant Python code, impress your peers and prospective employers, and build better coding habits.

Key Takeaways

  • Naming conventions are essential for writing readable and maintainable Python code.
  • Different naming options exist, such as single lowercase, single uppercase, lowercase word, lowercase word with underscores, uppercase word, uppercase word with underscores, capitalized words (CamelCase), and mixed case.
  • Avoid using confusing characters like lowercase letter “el” (l), uppercase letter “oh” (O), and uppercase letter “eye” (I) as they can be mistaken for numbers in some fonts.
  • Never use Python keywords or built-in function/class names for your variables, as it can lead to confusion and errors.
  • Modules and packages should have short, lowercase names, and underscores can be used for improved readability.
  • Variable and function names should be lowercase, with underscores separating individual words.
  • Constants should be represented using all capital letters and separated by underscores.
  • Use meaningful and descriptive names for objects rather than single-character names.
  • Reserve names like i, j, and k for representing index values.

Basic Naming Conventions

Single Lowercase

The single lowercase convention is often used for local variables in functions, such as x or i. These variables have a limited scope and are typically used within a specific function or block.

Single Uppercase

Single uppercase names are often used to represent matrices or other data structures that have a global scope or are widely used throughout the codebase.

Lowercase Word

The lowercase word convention is the most common naming option in Python. It is used for a wide variety of objects, including function names, variable names, and object instances.

Lowercase Word with Underscores

This convention is similar to the lowercase word convention but is used for more complicated names, where underscores are used to separate individual words for better readability.

Uppercase Word

Uppercase words are used for single-word static variables that have a global scope and do not change throughout the execution of the program.

Uppercase Word with Underscores

When dealing with multi-word static variables, the uppercase word with underscores convention comes in handy. Underscores are used to separate words for clarity and readability.

Capitalized Words (CamelCase)

In CamelCase, each word is capitalized, and there are no spaces or underscores between them. This convention is widely used for naming classes, even if the class name consists of just a single, capitalized word.

Mixed Case

The mixed case convention is more common in Java than Python. It starts with a lowercase word followed by every other word capitalized. In Python, this convention is less frequent.

Each of these naming conventions has its specific use cases and can significantly contribute to the aesthetics and understandability of your code.

Names to Avoid

While there are best practices to follow, there are also naming conventions to avoid when writing Python code:

Lowercase Letter “el” (l)

Instead of using lowercase letter “el” (l), it is recommended to use a capital letter “L” as it can be indistinguishable from the number “1” in some fonts. Using L avoids potential confusion between the two characters.

Uppercase Letter “oh” (O)

Similarly, avoid using the uppercase letter “oh” (O) as it can be mistaken for the number “0”. To prevent ambiguity, it is better to choose a different name or use a different letter.

Uppercase Letter “eye” (I)

The uppercase letter “eye” (I) should also be avoided as it can be confused with the number “1”. To ensure clarity, opt for alternative names that are easily distinguishable.

Using these characters as variable names can lead to confusion and make it difficult for users to understand the code.

It is also essential to avoid using Python keywords and built-in class/function names for your variables. Words like “max,” “sum,” “class,” and “list” are reserved and have predefined meanings in Python. Using them for different purposes could create confusion and potentially lead to errors in your code.

Modules and Packages

In Python, modules are collections of pre-built functions and other objects used to perform specific tasks. When naming modules, it is recommended to use short, lowercase names that reflect the purpose or functionality of the module. If needed, underscores can be used to improve readability, especially for names with multiple words.

Packages, on the other hand, are like directories that contain modules and other objects. The naming conventions for packages are similar to modules, with the exception that the use of underscores in package names is discouraged.

Adhering to these conventions for modules and packages promotes consistency and clarity in your codebase.

Variables and Functions

In Python, understanding the difference between variables and functions is crucial for proper naming. Let’s briefly clarify this distinction:

  • Variables: Variables store data values and are used to represent various objects in your code. The names of variables should be lowercase, and individual words can be separated by underscores when needed. Using meaningful and descriptive names is highly encouraged, as it improves the readability and understanding of your code.
  • Functions: Functions are blocks of reusable code that perform specific tasks. In Python, function names should also be lowercase, and words can be separated by underscores for readability. Method names, which are functions belonging to classes, should follow the same conventions as function names.

Here are a few best practices to consider when naming your variables and functions:

  • Constants: Constants are variables whose values do not change during program execution. To indicate that a variable is a constant, it is common to represent it using all capital letters and separate words with underscores. For example, MAX_VALUE or PI.
  • Meaningful Names: Use names that are representative of the meaning and purpose of the object. Avoid meaningless or single-character names, as they can make the code difficult to understand and maintain.
  • Index Values: Reserved names like i, j, and k are commonly used to represent index values in loops and arrays. By following this convention, you can improve code readability and make it easier to understand the purpose of these variables.

Adopting these best practices will not only enhance your coding skills but also make your code more elegant and maintainable. Employers and colleagues will appreciate the clarity and professionalism of your code, leading to improved collaboration and code quality.


In Python, naming conventions play a vital role in writing readable and elegant code. By following the best practices discussed in this article, you can ensure that your code is more understandable, maintainable, and professional. Choosing appropriate names for variables, functions, modules, and packages will improve collaboration with your peers and make your code more appealing to prospective employers. Remember to avoid using confusing characters and reserved keywords, and strive for meaningful and descriptive names. By adhering to these naming conventions, you will elevate your coding skills and build better habits for a successful programming journey in Python.

Ready to take your Python programming skills to the next level? Explore our three-course program focused on building and advancing your Python skills, or join our upcoming remote live and online bootcamps this Winter to embark on your journey towards data science mastery.

Written by Martin Cole

black framed eyeglasses on computer screen

Python Naming Conventions: Best Practices for Readable and Elegant Code

red and white polka dot baubles

Unraveling the Mystery: Odds vs Probability Explained