DEV Community

Cover image for Python - Functions and variable scopes
Flavio Campelo
Flavio Campelo

Posted on • Edited on

4 2

Python - Functions and variable scopes

📮 Contact 🇧🇷 🇺🇸 🇫🇷

Twitter
LinkedIn


Why should I use a function?

Using functions, you can:

  • reuse a piece of code over and over again just calling that function instead of rewriting all of the code again.
  • organize your code by logical units.
  • test or create test units for that specific function. Unit tests will help you to keep your code working regardless of future changes will code can receive.

How can I write a function?

A function structure on python is written like this

# Declaring a function...
def sayHello(name):
  print("Hello " + name)
Enter fullscreen mode Exit fullscreen mode
  • def - it's a reserved name to define a function
  • sayHello - it's the name of the function
  • name - it's a parameter used by the function

The function won't be called if we don't speficify this on the code. So, if we have a code like this, the function will be never called

def sayHello(name):
  print("Hello " + name)

input_name = input("Please, enter your name: ")
Enter fullscreen mode Exit fullscreen mode

So you can write your first sample like that:

def sayHello(name):
  print("Hello " + name)

input_name = input("Please, enter your name: ")
# The function will only be called at this point...
sayHello(input_name)
Enter fullscreen mode Exit fullscreen mode

Image 1

Global and local variables

In the sample before, the input_name variable is a global variable. So, we can reuse it everywhere on the code. We can exemplify using this code.

def sayHello(name):
  print("Hello " + name) # using local variable...

def sayGoodBye():
  print("Good bye " + input_name)

input_name = input("Please, enter your name: ") # using global variable...
sayHello(input_name)
sayGoodBye()
Enter fullscreen mode Exit fullscreen mode

Image 2

<<<<<<< HEAD
The sayGoodBye function is using the input_name global variable to write an output to the user.

On the other hand, the name variable is only available in the sayHello function. That means that, if we try to use the name variable inside the sayGoodBye function it won't work and we will receive an error informing that the name variable isn't defined neither locally nor globally.

The sayGoodBy function is using the input_name global variable to write an output to the user.

On the other hand, the name variable is only available in the sayHello function. That means that if we try to use the name variable inside the sayGoodBye function it won't work and we will receive an error informing that the name variable isn't defined neither locally nor globally.

origin/master







def sayHello(name):
  print("Hello " + name)

def sayGoodBye():
  print("Good bye " + name) # trying to use a nonexistent local variable...

input_name = input("Please, enter your name: ")
sayHello(input_name)
sayGoodBye()
Enter fullscreen mode Exit fullscreen mode

Image 3

Typos or suggestions?

<<<<<<< HEAD

If you've found a typo, a sentence that could be improved or anything else that should be updated on this blog post, you can access it through a git repository and make a pull request. If you feel comfortable with github, instead of posting a comment, please go directly to https://github.com/campelo/documentation and open a new pull request with your changes.

If you've found a typo, a sentence that could be improved or anything else that should be updated on this blog post, you can access it through a git repository and make a pull request. If you feel comfortable with github, instead of posting a comment, please go directly to https://github.com/campelo/documentation and open a new pull request with your changes.

origin/master






Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay