# PHY 546: Python for Scientific Computing

(from https://xkcd.com)
## Why python?
* Python is a very high-level language
* it provides many complex data-structures (lists, dictionaries, ...)
* your code is shorter than a comparable algorithm in a compiled language
* Many powerful libraries to perform complex tasks
* Parse structured inputs files
* send e-mail
* interact with the operating system
* make plots
* make GUIs
* do scientific computations
* ...
* Python makes it easy to prototype new tools
* Python is cross-platform and Free
## Language Features
Some of the language features are:
* Dynamical typing
* Object-oriented foundation
* Extensible (easy to call Fortran, C/C++, ...)
* Automatic memory management (garbage collection)
* Ease of readability (whitespace matters)
## Scientific python
Perhaps most importantly, and why we are here:
> Python has been widely adopted in the scientific community.