在python中从文本文件中获取数据时,正在努力将字符串转换为浮点型

j8yoct9x  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(143)

所以,我的问题是,如何将一个字符串数字转换成一个浮点数,同时从一个文本文件(我正在使用open方法访问和写入,修改或读取我以前创建的纯文本文件的内容).这是一个问题:
Programming Methods课程单元的期末成绩记录在final.txt文件中。编写一个Python程序,从final.txt文件中读取成绩,并通过确定平均成绩、高于平均成绩的分数和模态成绩来分析成绩。
因此,我被要求创建一个文本文件并从该文件读取成绩,然后使用该文件执行上述任务(在问题中)。但问题是,当我尝试访问和使用该文本文件中的成绩(默认为字符串)时,他们告诉我,我无法将这些成绩转换为浮点数以使用它们。出现错误ValueError: could not convert string to float: '\n'
这是一个程序:

def file_average(filename):
   file=open(filename)
   number_list=file.readline()
   total=0
   for number in number_list:
      total=total+float(number)
   file.close()
   return total/len(number_list)
input_filename=input("file: ")
average=file_average(input_filename)
print(f"average is equal to: {average}")

注:我已经创建了一个名为“final.txt”的文本文件,它与包含程序的python文件存储在同一目录(文件夹)中。
我尝试访问文本文件并使用成绩(默认情况下是字符串内的数字).但当我尝试调用它们以在我创建的列表中使用它们时,出现此错误:

ValueError: could not convert string to float: '\n'

那么,我该如何纠正转换问题呢?

e3bfsja2

e3bfsja21#

您的问题的根本原因是file.readline()而不是float()file.readline()返回的是字符串而不是列表,因此for循环会迭代这个字符串中的每个字符。也许您需要file.readlines()file.readlines()返回的是列表。如果您还有其他问题,请添加您的问题的细节,例如“final.txt”的内容和格式。

相关问题