gpt4 book ai didi

python - 平均-Python

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:41 26 4
gpt4 key购买 nike

我试图找到范围内数字的平均值(即找到 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.

关于python - 平均-Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com