I am pulling my info from a txt file and everything works great. I just how need it to read only two decimal places.
import os.path
#define global variables
database = []#list to store monthly temperatures
DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
WEEKS = 6
'''
This function read input from a text file and adds the data to the
list called database. The data values are added as strings.
Data for each week is one row in the list. '''
def getInputFromFile(filename = None):
result = False
if(filename == None):
filename = input("Enter name of input file: ")
if(os.path.isfile(filename)):
infile = open(filename, 'r')
count = 0
for line in infile:
week = line.strip()
weekList = week.split()
database.append(weekList)
count += 1
infile.close()
return True
else:
print("Invalid filename ... aborting ...")
return False
'''
This function creates and returns a list with seven values,
each one being a day average for that month.
'''
def getWeekAverages():
pass
weekAverages = []
MAX = WEEKS
total = 0
for week in range (WEEKS):
total = 0
for day in range(len(DAYS)):
total += int(database[week][day])
weekAverages.append(total/7)
return weekAverages
def getDayAverages():
pass
dayAverages = []
MAX = WEEKS
for day in range(len(DAYS)):
total = 0
for week in range (WEEKS):
total += int(database[week][day])
dayAverages.append(total/WEEKS)
return dayAverages
temp function works but I need it to read only two decimal places
## Highest day average
def getHighestDayAverage(dayAverages):
return max(dayAverages)
temp function works but I need it to read only two decimal places
## Lowest day average
def getLowestDayAverage(dayAverages):
return min(dayAverages)
temp function works but I need it to read only two decimal places
## Hightest Week Average
def getHighestWeekAverage(weekAverages):
return max(weekAverages)
temp function works but I need it to read only two decimal places
## Lowest Week Average
def getLowestWeekAverage(weekAverages):
return min(weekAverages)
Highest temp function works but I need it to read only two decimal places
## Highest temp function
def getHighestTemp():
highestTemp = int(database[0][0])
for week in range (WEEKS):
for day in range(len(DAYS)):
if highestTemp < int(database[week][day]):
highestTemp = int(database[week][day])
return highestTemp
temp function works but I need it to read only two decimal places
## Lowest Temp function
def getLowestTemp():
lowestTemp = int(database[0][0])
for week in range (WEEKS):
for day in range(len(DAYS)):
if lowestTemp > int(database[week][day]):
lowestTemp = int(database[week][day])
return lowestTemp
Average temp function works but I need it to read only two decimal places
## Average Temp function
def getAverageTemp():
total = 0
for week in range (WEEKS):
for day in range(len(DAYS)):
total += int(database[week][day])
return total / (WEEKS * len(DAYS))
Here is where everything is recalled
#Define other methods
def main():
print("//////Welcome to the program that will get you High, Low, and Average tempertures of the month://////")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
## this is where the file name is entered
goodFile = getInputFromFile()
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
if(goodFile == True):
dayAverages = getDayAverages()
weekAverages = getWeekAverages()
highestDay = getHighestDayAverage(dayAverages)
lowestDay = getLowestDayAverage(dayAverages)
highestWeek = getHighestWeekAverage(weekAverages)
lowestWeek = getLowestWeekAverage(weekAverages)
highestTemp = getHighestTemp()
lowestTemp = getLowestTemp()
averageTemp = getAverageTemp()
dayIndex = dayAverages.index(lowestDay)
print(weekAverages)
print("Weekday with lowest average temperature was ", DAYS[dayIndex], " with ", dayAverages)
print("Weekday with highest average temperature was ", DAYS[dayIndex], " with ", highestDay)
print("Weekday with lowest average temperature was ", DAYS[dayIndex], " with ", lowestDay)
print("The highest average temperature of a given week is: ", highestWeek)
print("The lowest average temperature of a given week is: ", lowestWeek)
print("The lowest temperature in a given day is the following: ", lowestTemp)
print("The highest temperature in a given day is the following: ", highestTemp)
print("The average temperature in a given day is the following: ", getAverageTemp())
#... and so on
#call main program
main()