Skip to main content
 首页 » 编程设计

python之平均-Python

2025年05月04日22傻小

我试图找到范围内数字的平均值(即找到 1-1000 范围内所有数字的平均值)。我编写了以下代码来执行此操作,但由于 if 语句,在运行时,代码会生成多个数字。然后我尝试使用 while-loop 代替,但是当我输入 break 语句时,它生成了与 if 语句相同的 list 产生。有什么方法可以使用 if 语句 并获得 1 个平均值?谢谢!

mylist =[] 
def ave_data(x, y): 
    for line in filename:     
        for number in line.split(): 
            if int(number) > x and int(number) < y: 
                mylist.append(int(number))  
                print(sum(mylist)/len(mylist)) 

请您参考如下方法:

由于 if 语句,它不是。您只需将 print(..) 放在 for 循环的 if 中。通过将它移到外部 for 之外,它将打印整个文件的平均值:

def ave_data(x, y): 
    mylist = []  # move inside 
    for line in filename:     
        for number in line.split(): 
            if int(number) > x and int(number) < y: 
                mylist.append(int(number))  
    print(sum(mylist)/len(mylist))  # for the entire file. 

您还可以将 mylist 变量移动到更好的内部函数。否则它是一个全局变量,其他函数可以改变它。此外,第二次运行将取两个文件的平均值。

话虽这么说,你把事情搞得太复杂了。您可以简单地使用:

def ave_data(x, y): 
    mylist = [int(number) for line in filename for number in line.split() 
                          if x < int(number) < y] 
    print(sum(mylist)/len(mylist))  # for the entire file.