首页 > 解决方案 > 根据文件中的数据计算平均高度

问题描述

**目标:打印文件中的平均身高和人数(通过计算名称)并要求用户提供新的输入,然后计算新的平均身高**

问题:没有输出它只是输出“进程完成,退出代码0”输出应该是“输入你的名字:”

这是代码:

class Calutis:
    def init(self):
        self.names=[]
        self.heights=[]
        self.totalheight=0
        self.totalcount=0

    def reset(self):
        self.names = []
        self.heights = []
        self.totalheight = 0
        self.totalcount = 0

    def calAvgHeight(self):
        f=open("listOfStudentHeight.txt","r")
        for line in f:
            info=line.split("\t")
            self.names.append(info[0])
            self.heights.append(float(info[1]))
            self.totalheight+=float(info[1])
            self.totalcount=len(self.names)
            print("the average score of " + self.totalcount + "students is: " + (self.totalheight)/self.totalcount)

    def adduser(self):
        self.names=input("Enter Your Name : ")
        while(True):
            try:
                self.heights=round(float(input("Enter Your Height in Metres")),2)
                break
            except ValueError:
                print("Enter a valid input for height: ")
            try:
                self.names=(str(input("Enter Your Name : ")))
                break
            except ValueError:
                print("Enter a valid input for name : ")

        f=open("listOfStudentHeight.txt",'a')
        f.write(self.names + "\t" + self.heights + "\n")
        f.close()

        calBox = Calutis()
        calBox.adduser()
        calBox.calAvgHeight()
This is the weights and names file content:
CHITRA DEVI D/O SILVARAJAH  1.65
MARSHEAL HOUDEL S/O MATHEWS JA  1.72
MUHAMMAD AZLIE B ZULKIFLIE  1.68
HO QIN YUAN Melvin  1.69
TENG YONG PENG DESMOND  1.76
CHEONG LEE YEE  1.59
MUHAMMAD ZULFIKAR B ZAINAL  1.9
ASYRAFIZWANI BTE ABDUL LATIFF   1.58
HIE BAO XIN 1.63
MAK YU JIE  1.67

请考虑向我伸出援助之手,任何帮助将不胜感激!

标签: pythonio

解决方案


这是您需要做的几件事

  1. 实例化类:calculator = Cal()
  2. 调用 adduser 函数:calculator.addusers()
  3. 调用 caluser 函数:calculator.caluser()

类定义未运行代码。把它想象成一种资源,它具有您可以访问和调用的功能。

另外,所有这些都在一个文件中吗?如果这个类定义在一个单独的文件中,请确保您实际上正在运行包含我提到的 3 行的文件。

关闭文件不应影响代码的功能,但这是一种很好的做法。完成对文件的写入后,您应该调用 file.close()。至于具体原因,这是与文件描述符相关的更高级的操作系统主题。


推荐阅读