Asking questions and reading answers 
       Reading keyboard input 
 Reading from the command line 
       Providing input on the command line 
       A variable number of command-line arguments 
       More on command-line arguments 
 Turning user text into live objects 
       The magic eval function 
       The magic exec function 
       Turning string expressions into functions 
 Option-value pairs on the command line 
       Basic usage of the argparse module 
       Mathematical expressions as values 
 Reading data from file 
       Reading a file line by line 
       Alternative ways of reading a file 
       Reading a mixture of text and numbers 
 Writing data to file 
       Example: Writing a table to file 
       Standard input and output as file objects 
       What is a file, really? 
 Handling errors 
       Exception handling 
       Raising exceptions 
 A glimpse of graphical user interfaces 
 Making modules 
       Example: Interest on bank deposits 
       Collecting functions in a module file 
       Test block 
       Verification of the module code 
       Getting input data 
       Doc strings in modules 
       Using modules 
       Distributing modules 
       Making software available on the Internet 
 Making code for Python 2 and 3 
       Basic differences between Python 2 and 3 
       Turning Python 2 code into Python 3 code 
 Summary 
       Chapter topics 
       Example: Bisection root finding 
 Exercises 
       Exercise 1: Make an interactive program 
       Exercise 2: Read a number from the command line 
       Exercise 3: Read a number from a file 
       Exercise 4: Read and write several numbers from and to file 
       Exercise 5: Use exceptions to handle wrong input 
       Exercise 6: Read input from the keyboard 
       Exercise 7: Read input from the command line 
       Exercise 8: Try MSWord or LibreOffice to write a program 
       Exercise 9: Prompt the user for input to a formula 
       Exercise 10: Read parameters in a formula from the command line 
       Exercise 11: Use exceptions to handle wrong input 
       Exercise 12: Test validity of input data 
       Exercise 13: Raise an exception in case of wrong input 
       Exercise 14: Evaluate a formula for data in a file 
       Exercise 15: Write a function given its test function 
       Exercise 16: Compute the distance it takes to stop a car 
       Exercise 17: Look up calendar functionality 
       Exercise 18: Use the StringFunction tool 
       Exercise 19: Why we test for specific exception types 
       Exercise 20: Make a complete module 
       Exercise 21: Organize a previous program as a module 
       Exercise 22: Read options and values from the command line 
       Exercise 23: Check if mathematical identities hold 
       Exercise 24: Compute probabilities with the binomial distribution 
       Exercise 25: Compute probabilities with the Poisson distribution 
 References 
Consider a program for evaluating the formula \( x = A\sin(w t) \):
from math import sin
A = 0.1
w = 1
t = 0.6
x = A*sin(w*t)
print x
In this program,
A, w, and t are input data in the sense that these parameters
must be known before
the program can perform the calculation of x. The results
produced by the program, here x, constitute the output data.
Input data can be hardcoded in the program as we do above. That is, we
explicitly set variables to specific values: A=0.1, w=1, t=0.6.
This programming style may be suitable for small programs.  In
general, however, it is considered good practice to let a user of the
program provide input data when the program is running.  There is then
no need to modify the program itself when a new set of input data is
to be explored. This is an important feature, because
a golden rule of programming is that modification of
the source code always represents a danger of introducing new errors
by accident.
This document starts with describing four different ways of reading data into a program:
The Python programming environment is organized as a big collection of modules. Organizing your own Python software in terms of modules is therefore a natural and wise thing to do. The section Making modules tells you how easy it is to make your own modules.
All the program examples from the present document are available in files in the src/input folder.
This chapter is taken from the book A Primer on Scientific Programming with Python by H. P. Langtangen, 5th edition, Springer, 2016.