Main

Introduction to Python for Engineers

Python Introduction

Python is a high-level and general-purpose programming language. According to the TIOBE index and CodeEval, it is one of most popular programming languages. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 2.7 or Python 3.6+.

There are several resources for learning Python online. For a good start, look at Code Academy (Python track) or view the documentation at Python.org. For users with a foundation in MATLAB, there are excellent resources that demonstrate equivalent Python (Numpy) commands.

Option #1: Install Python from Python.org

The instructions are for the Windows OS but Python can be installed on most operating systems. The Python base program should be installed first and then the other packages can be installed in any order with the utility PIP or by downloading the installer package from the appropriate web-site.

Option #2: Install Anaconda

Anaconda includes the Jupyter Notebook and the Spyder IDE. Anaconda is available for download here.

Option #3: Online Platforms

There are several online platforms that allow Python through a web-browser including try.jupyter.org and repl.it. An example of using repl.it is here:

 https://repl.it/classroom/invite/FS5LV0W

Install Packages with pip (Command Line)

Sometimes a script uses a package that is not yet installed. Once Python is installed, a package manager such as pip or conda can be used to install, remove, or update packages.

Below is an example on how to install APMonitor Optimization Suite from the command line (start cmd).

 pip install APMonitor

The APMonitor package name can be replaced with any available package name such as NumPy.

 pip install numpy

Install Packages with pip (Python Script)

Packages can also be managed from a Python script by attempting to load the package with try. If the import fails, the except section imports pip and installs the package.

Load and Optionally Install APMonitor Package

try:
   from APMonitor.apm import *
except:
   import pip
   pip.main(['install','APMonitor'])
   from APMonitor.apm import *

Load and Optionally Install NumPy Package

try:
   import numpy as np
except:
   import pip
   pip.main(['install','numpy'])
   import numpy as np

The APMonitor or NumPy package names can be replaced with any available package. The pip package manager connects to an online repository to retrieve the latest version of the package and install it. Sometimes a package is needed on a computer that isn't connected to the internet or the package isn't available through pip. Below is information on installing a package wheel (whl) file.

Install Package Wheels (whl) Offline

The pip package manager can also be used to install local (previously downloaded) wheel (.whl) files but dependencies may not be automatically installed if not connected to the internet. Below is an example wheel file installation for NumPy version 1.13.1 and SciPy version 0.19.1 for Python 3.6 with 64-bit Python.

 pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
 pip install scipy-0.19.1-cp36-cp36m-win_amd64.whl

Use Christoph Gohlke's whl files for Windows installations. Many of the packages depend on the Visual C++ 2015 Redistributable (x64 and x86 for CPython 3.5 and 3.6) that is available from Microsoft. After installing the Visual C++ redistributable, download and install NumPy and SciPy packages (in that order) for Python 3.6 on Windows. The downloaded wheel file names should not be changed because the wheel file name verifies compatibility with the current Python version.

This same tutorial is also show in a MATLAB introduction.

Non-Ideal Gas Equation

Source Code

R = 0.0821  # L-atm/K
T = 500     # K
V = 5       # L/mol
Pc = 37.2   # atm
Tc = 132.5  # K

a = 0.427 * pow(R,2) * pow(Tc,2.5) / Pc
b = 0.0866 * R * Tc / Pc

# Compute in atm
P_ig = R * T / V
P_rk = R * T / (V-b) - a/(V*(V+b)*pow(T,0.5))

# Convert to Pascals
P_ig = P_ig * 101325
P_rk = P_rk * 101325

print("The ideal gas pressure: " + str(P_ig) + " Pa")
print("The Redlich-Kwong pressure: " + str(P_rk) + " Pa")

comments powered by Disqus