定义从输入文本文件 (Python) 给出最小值、最大值和平均值的函数

Defining functions that gives min, max and average from an input text file (Python)

我正在尝试定义一个函数,当我 运行 任何长度或整数组合通过它时,它可以给我下面的这些输出。
所以这是我得到的问题:

编写 Python 代码以读取文本文件 'input.txt' 的输入,并且对于 input.txt 中的每一行,在新文本文件中写出新行 output.txt 计算数字列表上某些操作的答案。

If the input.txt file has the following:

min: 1,2,3,5,6
max: 1,2,3,5,6
avg: 1,2,3,5,6

Your program should generate an output.txt file as following:

The min of [1, 2, 3, 5, 6] is 1
The max of [1, 2, 3, 5, 6] is 6
The avg of [1, 2, 3, 5, 6] is 3.4

到目前为止,这是我的代码:

textFile = open('input.txt', 'r+')
numberList = []
for line in textFile:
    numberList.append(line.split(','))
for e in numberList:
    print e
textFile.close()

def minimum(mi):
    minimun = min(numberList)
    return minumum

def maximum(ma):
    maximum = max(numberList)
    return maximum

print minimum(numberList)
print maximum(numberList)

当我尝试调用我的函数时出现问题,我不确定是函数定义错误还是我调用错误。 提前致谢。

你不应该用 function 的名字命名你的 variable,所以你应该改变这个:

def maximum(ma):
    maximum = max(numberList)
    return maximum

例如:

def maximum():   # mind that arg ``ma`` is spare since you don't use it at all
    my_maximum = max(numberList)
    return my_maximum

首先,您的函数没有使用您期望的提供的参数,其次,您使用局部参数隐藏了函数的名称。

你可以像这样简化你的函数

def minimum(mi):
    return min(mi)

或者,如果您想将结果存储在本地,无论出于何种原因,请将结果存储在与您的函数名称不同的变量中,就像这样

def minimum(mi):
    min_value = min(mi)
    return min_value

您的代码有几处错误。

def minimum(mi):
    minimun = min(numberList)
    return minumum
  1. 您正在接受 mi 的输入,但使用的是 numberList,这很令人困惑并且可能存在错误(尽管它恰好在本例中有效,因为该函数将到达获取全局 numberList).

  2. 您的 return 变量与您的函数同名,而您用于 min(numberList) 的变量是 minimun

  3. 事实上,您没有理由创建这些函数,因为它们的作用与内置 min/max 函数完全相同。

  4. 您的 numList 正在创建为字符串列表(包括 'min: 1'、'2' 等字符串)。您可能想使用 int(x)

  5. 转换数值
  6. 您可能想首先拆分每行的第一部分,即 'min: '、'max: '、'avg: ' 等,使用类似 line.split(': ')。您对 maxmin 等的输入应该是该部分之后的任何内容,拆分并转换为整数。