03 The first Python program
26 Jan 2021In your work directory, create a directory ~/PHY494/03_python
and go
to this directory:
Hello World
Using you favorite editor (for instance, atom
), create a text file named hello.py
in the
directory ~/PHY494/03_python
1 with the
following content:
Execute ("run") your hello.py
program with the python
program:
It should ask you for your name: type it and hit Enter
. You should
be greeted nicely with a message on your screen.
- The line starting with
#
is a comment and Python ignores everything on the line starting with the comment character. - Blank lines are ignored.
name
is a variable: it stores a value (more later); variable names are arbitrary (as long as you only use letters, numbers, underscore, don't start with a number, and don't use a name that is already used by Python)input()
andprint()
are functions: they take values as input and do something with it (more later).
What's a Python program?
-
A text file with content that follows the rules of the Python programming language.
Customarily, we add the suffix
.py
to the filename, but this is not required. -
The text file is read by the
python
interpreter (a program) and executed.
Python interpreter
Python is an interpreted language; you can
think of python
reading each line in an input file and executing
it. Start python
on its own:
You should see something like
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
The Python prompt is >>>
.
Type commands and execute them with Enter
. Like the shell, Python is
a REPL, a "Read-eval-print-loop". For example, to add two numbers
Exit with quit()
or Ctrl + d
.
Help!
In Python you can often get help by saying
For example, get help on the addition operator (and much more):
Activity: Python as a calculator
Start python
and figure out 2 how to compute the left hand sides (the
right hand sides are there for you to check your results):3
\begin{align} -1 + 2 &= 1 \\% 102 - 201 &= -99 \\% 12345678987654321 \times 9876543210123456789 &= 121932631979881115785550983112635269\\% 3/2 &= 1.5\\% \frac{1}{1 - 0.9^2} &= 5.263157894736843\\% 1 + \frac{2}{1} + \frac{2^2}{1\cdot2} + \frac{2^3}{1\cdot2\cdot3} + \frac{2^4}{1 \cdot 2\cdot3\cdot4} &= 7.0\\% -3^4 &= -81\\% 2 - 5.5\times 10^{-7} &= 1.99999945\\% 1.672621898\times 10^{-27} \times (3\times10^8)^2 &= 1.5053597082 \times 10^{-10}\\% \sqrt{2} &= 1.4142135623730951\\% \sqrt{-1} &= i\\% (1 + 2i) + (-2 + i) &= -1 + 3i\\% \frac{1 + 2i}{2 - i} &= i\\% \end{align}
More operations
- floor division ("integer division")
//
4 - remainder
%
Potential problems…
Division by zero raises an error (an "exception"):
Floating point numbers are not real real numbers (more later): calculating \(10 + 10^{-16} = 10.0000000000000001\) in Python
does not give the expected answer!
Activity: hello, line by line
Type the commands from hello.py
into the interpreter, hitting Enter
after every line, and execute your program step by step.
Basic plotting
Create a file motion.py
with content
You should create a graph similar to the following:
Interactive Python with ipython
The ipython interpreter is like python
but with
lots of improvements such as TAB
-completion, help with command?
(one question mark directly following a command) and source code with
command??
(two question marks), command line history, and many
additional shell-like commands (so-called "magic" commands such as
%cd
, %ls
, %pwd
, %run
, %time
and %timeit
— see %magic
for help).
Start it with
It should look like
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
where In [1]:
is the prompt.
Use ipython
instead of python
for interactive work because it is
much more userfriendly.
ipython
basics
- To exit, give the
exit()
command or^D
(Control
+D
). - Use arrow keys to move up and down through the history or through multi-line commands.
- Use TAB-completion.
- Use
command?
or?command
(question mark directly before or after a command or object) to get help %run FILE
executes FILE similarly topython FILE
.5
ipython
with matplotlib
In the basic plotting example we used the matplotlib
library for
plotting and wrote a figure to a file. ipython
can show figures
interactively but the details depend on your operating system and
installed packages. Try the following and see if the figure is
displayed on your screen when you run motion.py
: 6
Windows
Run jupyter qtconsole
to show graphics inline (this used to be called ipython qtconsole
):
In ipython
5
macOS
Run ipython
In ipython
5
Troubleshooting:
- If the above does not show a graph, try running
ipython --matplotlib=osx
. - Alternatively,
jupyter qtconcole
will likely also work (with inline graphs).
Linux
Run ipython
(If gtk3
does not work, try qt5
, qt
, wx
, tk
, auto
, or just
--matplotlib
.)
In ipython
5
Footnotes
-
If you can call your editor from the command line then this is as easy as, for example with
atom
(ornano
),cd ~/PHY494/03_python atom hello.py
This will open a new file with name
hello.py
or open an existing file if it is present.However, if you use an editor that you have to open from, say, the Windows Start menu, then you need to first open the editor and then use a menu command such as File → New to create a blank document (use or File → Open to open an existing file). Once you have written content you need to save it in the correct location (usually, or File → Save). To find the
03_python
directory, first navigate to your home directory:-
This can be tricky on Windows : In your shell (not in your editor), type
cd; pwd
to learn the path to your home directory. In your editor's file system dialog window, start from the system disk (normallyC:
under Computer) and look forC:\Users\YOUR_USERNAME
. -
On Apple Mac OS X, your home directory is
/Users/YOUR_USERNAME
. -
On typical Linux distributions it is
/home/YOUR_USERNAME
.
In your home directory, locate the
PHY494
folder, click on it to find the03_python
folder inside and click on the latter. Provide the file name ("hello.py") and save the file. (In the shell, make sure that the file is in place where you expect it to be, i.e.,ls -la
.) ↩ -
-
If you need help, look at Using Python as a Calculator in the standard Python Tutorial. ↩
-
You can also do this exercise as an autograded activity: Either follow the GitHub Classroom link provided by your instructor or create a copy of https://github.com/ASU-CompMethodsPhysics-PHY494/activity-03-python_calculator by clicking the green Use this template button.
Then
git clone
your own repository and follow the instructions in the README. ↩ -
In Python 2, the
/
division operator would perform floor division if both operands were integers but normal ("true") division if at least one operand was a floating point number. Therefore, in old Python 2 code you might see constructs such as1.0 * a / 2
to force a true division, no matter the value of the variablea
. In Python 3, the/
operator always performs true division, which prevents some rather nasty bugs from occuring. ↩ -
%run
is an ipython "magic" command, see help on those commands with%magic
. ↩ ↩2 ↩3 ↩4 -
If you don't want to see graphics inline but as a separate window you can try
ipython --matplotlib=qt5
(If
qt5
does not work, tryqt
,wx
,tk
,auto
, or just--matplotlib
.)However, this does not always work and might require additional packages. Please share any insights and solutions! ↩