IT 116: Introduction to Scripting
Homework 9
Due
Deliverables
There is one deliverable for this assignment
Make sure the script obeys all the rules specified in the
Script Requirements page.
Notice that these requirements now include changing the permissions on the file and using the
hashbang line.
Setup
Go to your hw9 directory.
Copy the file temps_max_min.txt from
/home/ghoffman/course_files/it116_files into your hw9 directory.
cp /home/ghoffman/course_files/it116_files/temps_max_min.txt .
Specification
The file temps_max_min.txt has three pieces of information on each line
- Date
- Maximum temperature
- Minimum temperature
The file looks like this
2017-06-01 67 62
2017-06-02 71 70
2017-06-03 69 65
...
Your script will read in each line of this file and calculate the average temperature for that date
using a function you create named average_temps.
Your script will find the date with the highest average temperature and the lowest average temperature.
average_temps
This function must have the following header
def average_temps(max, min):
This function will convert it's two parameters into integers and return the
rounded average of the two temperatures.
Suggestions
Write this script in stages, testing your script at each step
-
Create the script hw9.py and make it executable.
Create a file object for reading on the file temps_max_min.txt.
Run the script.
You should see nothing.
Fix any errors you find.
-
Write
for
loop that prints each line in the file.
Run the script.
Fix any errors you find.
-
Use multiple assignment and the
split
method on each line to give values
to the variables date, max and
min.
Print these values.
Run the script.
Fix any errors you find.
-
Remove the
print
statement in the for
loop.
Create the function average_temps.
Use this function inside the loop to calculate the average for each line.
Print date, max,
min and average.
Run the script.
Fix any errors you find.
-
Remove the
print
statement in the for
loop.
Now you need to create accumulator variables above the for
loop.
Create the variables max_average , min_average
max_date and min_date.
Assign max_average a value lower than any temperature.
Assign min_average a value higher than any temperature.
Assign the other two variables the empty string.
Run the script.
Fix any errors you find.
-
Write an
if
statement that checks whether average
is greater than the current value of max_average.
If it is, set max_average to average
and max_date to date.
Outside the for
loop print max_date and
max_average .
Run the script.
Fix any errors you find.
-
Write an
if
statement that checks whether average
is less than the current value of min_average.
If it is, set min_average to average
and min_date to date.
Outside the for
loop print min_date and
min_average .
Run the script.
Fix any errors you find.
-
Change the print statement after the
for
loop so they look something like
the output below.
Output
When you run your script the output should look like this
Maximum average temperature: 86 on 2017-06-12
Minimum average temperature: 63 on 2017-06-26