仅通过使用def返回csv文件的平均值

问题描述 投票:0回答:1

我曾经写过这段代码,没有def函数也可以,但是当我向程序中添加def函数时,终端什么也没有给我,然后关闭了程序。我怎么能得到这种类型的代码的平均值?这是我写的代码:

import csv
from statistics import mean
def calculate_averages(input_file_name, output_file_name):
    with open('input_file_name.csv') as f:
    reader=csv.reader(f)
    for i in reader:
        input_file_name=i[0]
        l1=list()
        for index in i[1:]:
            l1.append(int(index))
            output_file_name=str(mean(l1))
        s=str(input_file_name)+','+output_file_name
        print(s) 
    with open(output_file_name)
    return calculate_averages

即使我写return s,也什么也没显示

csv文件:

sepehr,19,17,20,14,19
taham,13,17,16,15,15,14,18
salar,14,19,6,12,15,12,19
mahsa,13,19,18,19,20,20,17,11

注意:这行应该在代码中,我必须使用均值函数。请帮助我。谢谢所有:

def calculate_averages(input_file_name, output_file_name):
python csv statistics average mean
1个回答
0
投票

查看您的代码示例,似乎您没有正确调用函数。这可能就是为什么您看不到任何输出的原因。目前尚不清楚您要完成什么,但是您可能想要更多类似这样的东西:

import csv
from statistics import mean

def calculate_averages(input_file_name, output_file_name):

    with open(input_file_name) as f:

        reader = csv.reader(f)

        for i in reader:
            to_print_1 = i[0]
            l1 = list()
            for val in i[1:]:
                l1.append(int(val))
            to_print_2 = str(mean(l1))
            s = str(to_print_1) + ',' + to_print_2
            print(s) 

calculate_averages(input_file_name, output_file_name)

我假设input_file_name和output_file_name是在您的程序中预先定义的,并作为字符串传递到calculate_averages函数中,例如“ somefile.csv”或“ outfile.txt”。

总体来说,return calculate_averages没有执行任何操作,因为没有要返回的名为calculate_averages的内容。在您的示例中,calculate_averages是带有两个参数的function,这意味着如果您想执行任何操作,则必须call函数并将其传递给两个参数。

© www.soinside.com 2019 - 2024. All rights reserved.