如何将输出温度格式化为2位小数?

时间:2016-01-18 13:34:50

标签: python

我从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()

1 个答案:

答案 0 :(得分:0)

应该是'{:.2f}'.format(your_float_value)(&#39;在错误的地方)

相关问题