我正在为学校工作。我通过电子邮件发送了我的教授,并得到了非常模糊的非有用答案。以下是我必须做的事情
编写并测试程序以满足以下规范:
编写一个名为fileToList(inFile)的函数,其中inFile是一个文件 有7行,每行一个数字。 inFile的内容是 转移到名为数字的列表。该函数将返回 列出在函数中创建的被叫号码(30分)。
编写一个名为sumList(nums)的函数,其中nums是一个数字列表。 该函数将返回列表中数字的总和(30 点)。
编写一个名为main()的函数来调用函数 fileToList(inFile)和sumList(nums)并打印结果 sumList(nums)(30分)。
在代码顶部包含一个标题,其中包含以下信息 (5分):
# Name of programmer: you name goes here # Date: date program was written # Description: a description of what the program does.
将文件data.txt用于函数读取的文件 fileToList(infile中)。
#SumList.py
# 02/26/2017
# This program will pull data from a file prints the data then sums the numeric data.
inFile = open("data.txt","r")
nums = []
def fileToList(inFile):
numbers = []
for i in range(7):
numbers.append(inFile.readline())
print('\n'.join(numbers))
def sumList(nums):
file = open("data.txt","r")
line = file.read()
total = sum(file)
print(total)
def main():
fileToList(inFile)
sumList(nums)
main()
数据文件
1245.67
1189.55
1098.72
1456.88
2109.34
1987.55
1872.36
答案 0 :(得分:0)
函数将返回在函数
中创建的名为数字的列表
您需要退货,而不是打印。
def fileToList(inFile):
numbers = [int(line) for line in inFile.readlines()]
return numbers
编写一个名为sumList(nums)的函数,其中nums是一个数字列表。函数将返回列表中数字的总和
再一次,return
丢失了...而且没有文件应该是open()
- ed ...请阅读
How to sum a list of numbers in python
编写一个名为main()的函数,该函数调用函数fileToList(inFile)和sumList(nums)并打印sumList(nums)的结果
您需要从函数中获取return
值。
这是你的任务的一部分,但这是一个开始
def main():
with open("data.txt") as inFile:
numbers = fileToList(inFile)
答案 1 :(得分:0)
<强>更新强>:
使用.strip()
删除row
周围的隐藏字符/空格,并使用convert_2_decimal_float()
转换字符串浮点值,精确到2位小数。
def fileToList(inFile):
numbers = []
for row in inFile:
float_value = convert_2_decimal_float(row.strip())
print(float_value)
numbers.append(float_value)
print(','.join([str(n) for n in numbers]))
return numbers
def sumList(nums):
print(convert_2_decimal_float(sum(nums)))
def convert_2_decimal_float(v):
return round(float(v), 2)
def main():
inFile = open("sample.csv")
nums = fileToList(inFile)
sumList(nums)
inFile.close()
main()
以方法main()
打开文件。
在inFile
中迭代fileToList()
,在列表numbers
中添加数字并返回列表,下一步将返回的列表传递到sumList()
并通过内置方法将所有数字相加{ {1}},最后关闭打开的文件
答案 2 :(得分:-1)
在读取文件中的行时,您希望将值转换为整数,如下所示:
numbers.append(int(inFile.readline()))
您还希望fileToList函数实际返回数字列表,这样您就可以使用main中的列表,而不仅仅是打印它们,因此您的fileToList函数应如下所示:
def fileToList(inFile):
numbers = []
for i in range(7):
numbers.append(float (inFile.readline()))
return numbers
sumList函数可以是一个简单的函数,它将数字列表作为参数并返回总和:
def sumList(numbers):
return sum(numbers)
因此,在main中,您可以调用fileToList并存储变量中返回的数字列表:
def main():
numbers = fileToList(inFile)
然后使用数字作为sumList函数的参数并打印结果:
print(sumList(numbers))
程序:
inFile = open("data.txt","r")
def fileToList(inFile):
numbers = []
for i in range(7):
numbers.append(float(inFile.readline()))
inFile.close()
return numbers
def sumList(numbers):
return sum(numbers)
def main():
numbers = fileToList(inFile)
print(sumList(numbers))
main()