\[ \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} \]

Jan 19, 2026 | 365 words | 4 min read

14.2.2. Task 2#

Learning Objectives#

  • Read in input data from a user at the keyboard in Python.

  • Practice writing data to an output file.

Task Instructions#

Part A:#

Please answer the following questions:

  1. How would you open a file name test.txt to read only? To write only? To read and write?

  2. What is the general command structure for writing to a file?

  3. How do you output a string to a file? An integer? A real number with three decimal points?

Save your answers in a PDF named: py4_team_2_teamnumber.pdf

Part B:#

  1. Your task is to write a program that prompts the user to input a person’s last name, first name, birthday, today’s date, and if they would like to enter an additional person. Each of these inputs will be followed by a return (i.e., should be done in separate lines).

  2. Given this data, your program should calculate the user’s total present age in years then use a user-defined function to calculate and return the user’s age in whole seconds.

    Note

    Here is an easy way to get the number of days between two dates.

    from datetime import date
    
    date_1 = date(2026, 12, 31) # The order is YYYY, MM, DD
    date_2 = date(2026, 12, 28)
    
    days_between = (date_1 - date_2).days
    
  3. Your program should use a while loop to continue prompting the user for last name, first name, birthday, and today’s date until the user says that they would not like to enter another person. Each iteration, the name, age in years, and age in seconds should be output to a file named py4_team_2_teamnumber.txt.

Before creating the program, create a flowchart of the algorithm you will use for this program. Save your flowchart as a separate page in the previously created PDF file. Then, write a Python program that implements your algorithm. Name your main program: py4_team_2_teamnumber.py

Sample Output#

Use the values in Table 14.4 below to test your program.

Table 14.4 Test Cases#

Case

Last Name

First Name

Birthday

Date

Additional Entry

1

Purdue

John

08/31/1802

03/20/2026

no

2

Smith

Alice

08/11/1998

03/20/2026

yes

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 py4_team_2_teamnumber.py Enter your last name: Purdue Enter your first name: John Enter your birthday (MM/DD/YYYY): 08/31/1802 Enter the current date (MM/DD/YYYY): 03/20/2026 Would you like to enter another person (yes/no)? no

Listing 14.1 Case_1_py4_team_2_teamnumber.txt#
1John Purdue
2You are 223 years old.
3You are 7054646400 seconds old.

Case 2 Sample Output

$ python3 py4_team_2_teamnumber.py Enter your last name: Smith Enter your first name: Alice Enter your birthday (MM/DD/YYYY): 08/11/1998 Enter the current date (MM/DD/YYYY): 03/20/2026 Would you like to enter another person (yes/no)? yes Enter your last name: Smith Enter your first name: Bob Enter your birthday (MM/DD/YYYY): 03/20/2000 Enter the current date (MM/DD/YYYY): 03/20/2026 Would you like to enter another person (yes/no)? no

Listing 14.2 Case_2_py4_team_2_teamnumber.txt#
1Alice Smith
2You are 27 years old.
3You are 871171200 seconds old.
4Bob Smith
5You are 26 years old.
6You are 820454400 seconds old.
Table 14.5 Deliverables#

Deliverables

Description

py4_team_2_teamnumber.txt

Your output file for part B.

py4_team_2_teamnumber.py

Your completed Python code for part B.

py4_team_2_teamnumber.pdf

PDF with answers to part A and flowchart(s) for part B.