# Python

Python is a scripting language from [python.org](https://python.org/).

## Versions 2 and 3

See [Python versions](python_style.md#python-versions) in the style guide.

## Style

[Fuchsia Python style guide](python_style.md)

## Testing

See [Python testing](testing.md).
