我从txt文件中提取信息,一切都很好。我只需要读取两个小数位。
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
临时功能有效,但我只需要读取两位小数
## 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)
临时功能有效,但我只需要读取两位小数
## Hightest Week Average
def getHighestWeekAverage(weekAverages):
return max(weekAverages)
临时功能有效,但我只需要读取两位小数
## Lowest Week Average
def getLowestWeekAverage(weekAverages):
return min(weekAverages)
最高温度功能有效,但我只需要读取两位小数
## 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
临时功能有效,但我只需要读取两位小数
## 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
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()
答案 0 :(得分:0)
应该是'{:.2f}'.format(your_float_value)
(&#39;在错误的地方)