从文件读取、存储值和数学运算

2024-06-10 19:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个包含城市名称、里程表读数和剩余燃油量的文件中读取数据。文本文件的内容包括:

Kennewick 97840.4 40.0<br>
Benton_City 97861.3 37.6<br>
Prosser 97878.2 35.9<br>
Grandview 97886.5 35.0<br>
Sunnyside 97894.6 34.1<br>
Granger 97904.6 33.1<br>
Toppenish 97913.0 32.2<br>
Wapato 97921.7 31.3<br>
Union_Gap 97931.6 30.4<br>
Yakima 97935.2 30.0<br>
Selah 97939.4 29.6<br>
Ellensburg 97972.7 26.0<br>
Thorp 97981.1 25.1<br>
Rosyln 98002.8 22.6<br>
Easton 98016.1 21.1<br>
North_Bend 98058.1 16.9<br>
Preston 98067.7 16.0<br>
Issaquah 98073.6 15.4<br>
East_Gate 98082.9 14.4<br>
Mercer_Island 98088.5 13.7<br>
Seattle 98095.4 13.0<br>

作业的一部分是从最后一次读取中减去当前读取值(这两个值都存储在可变英里数中)。在

^{pr2}$

我的问题是,我试图将miles的最后一次读取值存储在一个名为prevmiles的变量中,然后从miles的当前读数中减去{}(最后读取的里程数),但它总是从当前的miles中减去当前的miles,显然让我想要的值打印出来0.0。在


Tags: 文件br名称city内容读取数据读数文本文件
3条回答

你有

prevmiles = miles

milest = miles - prevmiles

它保证milest为0。试着改变这两行的顺序。在

这里有两件事:

  1. 您需要用文件的第一行初始化stopnameprevmiles和{},并且
  2. 您需要交换将miles分配给prevmiles的两行。在

以下是更新后的函数:

def BusRoute():
    path = "C:\\"
    ext = ".txt"

    lines = ""
    stopname = ""
    miles = 0
    prevmiles = 0
    milest = 0
    fuel = 0.0
    mpg = 0.0
    i = 0

    filename = input("Please enter the file name (no extension)").strip()

    inFile = open(path + filename + ext, "r")

    stopname, prevmiles, fuel = inFile.readline().split()
    prevmiles = float(prevmiles)
    fuel = float(fuel)

    for lines in inFile:
        stopname, miles, fuel = lines.split(" ")

        miles = float(miles)
        fuel = float(fuel)

        milest = miles - prevmiles

        prevmiles = miles

        miles += 1

        print("Since last stop:", float(milest), "miles")

你应该改变操作的顺序。先做减法,然后给prevmiles赋值。在

相关问题 更多 >