python - 根据文件中的数据计算平均高度
问题描述
**目标:打印文件中的平均身高和人数(通过计算名称)并要求用户提供新的输入,然后计算新的平均身高**
问题:没有输出它只是输出“进程完成,退出代码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
请考虑向我伸出援助之手,任何帮助将不胜感激!
解决方案
这是您需要做的几件事
- 实例化类:
calculator = Cal()
- 调用 adduser 函数:
calculator.addusers()
- 调用 caluser 函数:
calculator.caluser()
类定义未运行代码。把它想象成一种资源,它具有您可以访问和调用的功能。
另外,所有这些都在一个文件中吗?如果这个类定义在一个单独的文件中,请确保您实际上正在运行包含我提到的 3 行的文件。
关闭文件不应影响代码的功能,但这是一种很好的做法。完成对文件的写入后,您应该调用 file.close()。至于具体原因,这是与文件描述符相关的更高级的操作系统主题。
推荐阅读
- javascript - 如果包装在标签中,则触发链接
- python - Django 注册表单中的选择字段看起来不活动,但有效
- python-3.x - 如何将异常格式的文本文件导出到熊猫数据框中
- javascript - 看似有效的语句中的意外标记
- c++ - 为什么指定`std::declval`返回引用类型?
- terminal - goormIDE 更改终端加载的默认项目
- xcode11 - xcode 11 关闭辅助编辑器快捷方式
- javascript - 新创建的 CustomEvent 没有自己的属性(“类型”)所以 jQuery 失败了?
- javascript - JSON.parse 不适用于转义引号
- python - Python:将包含列表和值的熊猫数据框列拆分为两列