# ๐ Python Functions Tutorial and Exercises
By @alesanchezr and other contributors at 4Geeks Academy
*Estas instrucciones [estรกn disponibles en ๐ช๐ธ espaรฑol](https://github.com/4GeeksAcademy/python-functions-programming-exercises/blob/master/README.es.md) :es:*
Learn and practice Python Functions. You will see the following concepts:
1. Declaring a function.
2. Calling a function.
3. Function scopes.
4. Nest functions.
5. Recursive functions and many other functional concepts.
> Note: The entire tutorial is ๐ interactive, โ
auto-graded and with ๐น video tutorials.
These exercises were built in collaboration, we need you! If you find any bugs or misspellings, please contribute and report them.
## One click installation (recommended):
You can open these exercises in just a few seconds by clicking: [Open in Codespaces](https://codespaces.new/?repo=4GeeksAcademy/python-functions-programming-exercises) (recommended) or [Open in Gitpod](https://gitpod.io#https://github.com/4GeeksAcademy/python-functions-programming-exercises).
> Once you have VSCode open, the LearnPack exercises should start automatically. If exercises don't run automatically you can try typing on your terminal: `$ learnpack start`
## Local Installation
1. Make sure you have [LearnPack](https://learnpack.co) installed, node.js version 14+, and Python version 3+. This is the command to install LearnPack:
```bash
$ npm i -g @learnpack/learnpack@2.1.20 && learnpack plugins:install @learnpack/python@1.0.0
```
2. Clone or download this repository in your local environment.
```bash
$ git clone https://github.com/4GeeksAcademy/python-functions-programming-exercises.git
$ cd python-functions-programming-exercises
```
> Note: Once you finish downloading, you will find an "exercises" folder that contains all the exercises within.
3. Start the tutorial/exercises by running the following command from the root of the project:
```bash
$ pip3 install pytest==6.2.5 pytest-testdox mock
$ learnpack start
```
## How are the exercises organized?
Each exercise is a small Python application containing the following files:
1. **app.py:** represents the entry Python file that will be executed by the computer.
2. **README.md:** contains exercise instructions.
3. **test.py:** you don't have to open this file, it contains the testing script for the exercise.
> Note: The exercises have automatic grading, but it's very rigid and strict, my recommendation is to not take the tests too serious and use them only as a suggestion, or you may get frustrated.
## Contributors
Thanks to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
1. [Alejandro Sanchez (alesanchezr)](https://github.com/alesanchezr), contribution: (coder) ๐ป, (idea) ๐ค, (build-tests) โ ๏ธ, (pull-request-review) ๐, (build-tutorial) โ
(documentation) ๐
2. [Paolo (plucodev)](https://github.com/plucodev), contribution: (bug reports) ๐, (coder) ๐ป, (translation) ๐
3. [Marco Gรณmez (marcogonzalo)](https://github.com/marcogonzalo), contribution: (bug reports) :๐, (translation) ๐
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification.
Contributions of any kind are welcome!
This and many other exercises are built by students as part of the 4Geeks Academy [Coding Bootcamp](https://4geeksacademy.com/us/coding-bootcamp) by [Alejandro Sรกnchez](https://twitter.com/alesanchezr) and many other contributors. Find out more about our [Full Stack Developer Course](https://4geeksacademy.com/us/coding-bootcamps/part-time-full-stack-developer), and [Data Science Bootcamp](https://4geeksacademy.com/us/coding-bootcamps/datascience-machine-learning).