\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Differential
\newcommand\dd[2][]{\mathrm{d}^{#1}{#2}} % use as \dd, \dd{x}, or \dd[2]{x}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
\newcommand\cubed{{}^3}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Percent
\newcommand\percent{\unit{{\kern-4mu}\%}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{\kern-4mu}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
\newcommand\s{\second}
\newcommand\minute{\unit{min}}
\newcommand\hour{\unit{h}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\foot{\unit{ft}}
%
% Force
\newcommand\newton{\unit{N}}
\newcommand\kip{\unit{kip}} % kilopound in "freedom" units - edit made by Sri
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
\newcommand\kilogram{\unit{kg}}
\newcommand\kg{\kilogram}
\newcommand\grain{\unit{grain}}
\newcommand\ounce{\unit{oz}}
%
% Temperature
\newcommand\kelvin{\unit{K}}
\newcommand\K{\kelvin}
\newcommand\celsius{\unit{{}^\circ C}}
\newcommand\C{\celsius}
\newcommand\fahrenheit{\unit{{}^\circ F}}
\newcommand\F{\fahrenheit}
%
% Area
\newcommand\sqft{\unit{sq\,\foot}} % square foot
%
% Volume
\newcommand\liter{\unit{L}}
\newcommand\gallon{\unit{gal}}
%
% Frequency
\newcommand\hertz{\unit{Hz}}
\newcommand\rpm{\unit{rpm}}
%
% Voltage
\newcommand\volt{\unit{V}}
\newcommand\V{\volt}
\newcommand\millivolt{\milli\volt}
\newcommand\mV{\milli\volt}
\newcommand\kilovolt{\kilo\volt}
\newcommand\kV{\kilo\volt}
%
% Current
\newcommand\ampere{\unit{A}}
\newcommand\A{\ampere}
\newcommand\milliampereA{\milli\ampere}
\newcommand\mA{\milli\ampere}
\newcommand\kiloampereA{\kilo\ampere}
\newcommand\kA{\kilo\ampere}
%
% Resistance
\newcommand\ohm{\Omega}
\newcommand\milliohm{\milli\ohm}
\newcommand\kiloohm{\kilo\ohm} % correct SI spelling
\newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx
\newcommand\megaohm{\mega\ohm} % correct SI spelling
\newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx
%
% Capacitance
\newcommand\farad{\unit{F}}
\newcommand\F{\farad}
\newcommand\microfarad{\micro\farad}
\newcommand\muF{\micro\farad}
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Energy
\newcommand\joule{\unit{J}}
\newcommand\J{\joule}
%
% Composite units
%
% Torque
\newcommand\ozin{\unit{\ounce}\,\unit{in}}
\newcommand\newtonmeter{\unit{\newton\,\meter}}
%
% Pressure
\newcommand\psf{\unit{psf}} % pounds per square foot
\newcommand\pcf{\unit{pcf}} % pounds per cubic foot
\newcommand\pascal{\unit{Pa}}
\newcommand\Pa{\pascal}
\newcommand\ksi{\unit{ksi}} % kilopound per square inch
\newcommand\bar{\unit{bar}}
\end{aligned}\end{align} \]
Dec 04, 2025 | 351 words | 4 min read
8.1.2. Task 0
Learning Objectives
Create simple user-defined functions and conditional statements in Python.
Practice writing a UDF in the same file as the main script and calling the respective
function in the main script.
Task Instructions
Before beginning this activity, watch the pre-class videos. Additionally, do some
research into the math library in Python. There are many functions
within the math library in particular that will be needed for this task. It is
important for your learning and ability to contribute to future assignments that you
understand the covered topics.
In this task, you will be writing a UDF to perform specific calculations in
Python.
Make a copy of the
ENGR133_Python_Template.py
Python template and rename the file to
py2_pre_0_username.py
Make sure to fill out all header information, including a short description of the
code. Include all needed import statements in the labeled section of the
template.
Create a function called calc_perform below your import
statements that takes in three input arguments (\(a\), \(b\), \(c\)) and
performs the following calculations based on a conditional test on input \(a\).
The conditional should consist of one if-else condition. If \(a \geq 5\), perform calculation
(8.1); otherwise perform calculation
(8.2).
(8.1)\[\frac{a^2 + \cos b - \ln c}{b - a \cdot c}\]
(8.2)\[\frac{\sqrt{a + b}}{\frac{c}{a} + \sin b}\]
This function should have only one return statement (the answers to the above
equations).
Hint
Inside this function, ensure that each equation within the if or
else statements is assigned to the same variable. At the end of the
function, there should only be one return statement using that variable.
In your main script, initialize a as user input, b to \(104\) and c to \(17\). Call
calc_perform function and print the result as a single formatted string
(f-string) statement to two decimal places.
Hint
Review Python 1 if you need a refresher on how to
obtain user input.
Make sure your input arguments are in the correct order.
Save the code file as
py2_pre_0_username.py and turn in
the assignment on Gradescope.
Sample Output
Use the values in Table 8.2
below to test your program.
Ensure your program’s output matches the provided samples exactly.
This includes all characters, white space, and punctuation. In the
samples, user input is highlighted like
this for clarity, but your program should not highlight user
input in this way.
Case 1 Sample Output
$ python3 py2_pre_0_username.py
Input a number for variable a (can be negative): 6
The result of the function was 16.11
Case 2 Sample Output
$ python3 py2_pre_0_username.py
Input a number for variable a (can be negative): -0.3
The result of the function was -0.18