\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\feet{\unit{ft}}
\newcommand\mile{\unit{mi}}
\newcommand\mi{\mile}
%
% Volume
\newcommand\gallon{\unit{gal}}
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
%
% 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
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Temperature
\newcommand\celsius{\unit{^{\circ}C}}
\newcommand\C{\unit{\celsius}}
\newcommand\fahrenheit{\unit{^{\circ}F}}
\newcommand\F{\unit{\fahrenheit}}
\newcommand\kelvin{\unit{\K}}
\newcommand\K{\unit{\kelvin}}\\% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Torque
\newcommand\ozin{\unit{oz}\text{-}\unit{in}}
\newcommand\newtonmeter{\unit{N\text{-}m}}\end{aligned}\end{align} \]
Apr 13, 2026 | 148 words | 1 min read
3.2.2. Sum Average
Write a Python program with a loop that asks the user to enter a series of
non-negative numbers (positive numbers or zero). The user should enter a
negative number to signal the end of the series. After all the non-negative
numbers have been entered, the program should display their sum and average.
Sample Output
Use the values in Table 3.3
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 sum_average_login.py
Enter a non-negative number (negative to quit): 0
Enter a non-negative number (negative to quit): 1
Enter a non-negative number (negative to quit): 2
Enter a non-negative number (negative to quit): 3
Enter a non-negative number (negative to quit): 4
Enter a non-negative number (negative to quit): 5
Enter a non-negative number (negative to quit): -1
You entered 6 numbers.
Their sum is 15.000 and their average is 2.500.
Case 2 Sample Output
$ python3 sum_average_login.py
Enter a non-negative number (negative to quit): 2.496
Enter a non-negative number (negative to quit): 11.271
Enter a non-negative number (negative to quit): 5.571
Enter a non-negative number (negative to quit): -0.01
You entered 3 numbers.
Their sum is 19.338 and their average is 6.446.
Case 3 Sample Output
$ python3 sum_average_login.py
Enter a non-negative number (negative to quit): -10
You didn't enter any numbers.
Deliverables
Save your finished program as sum_average_login.py, replacing
login with your Purdue login. Then submit it along with all the
deliverables listed in
Table 3.4 below.