URN Logo
UNIX Resources » Linux » China Linux Forum » Python 编 程 » 4 » 各位帮忙看看我的函数应该怎么改
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
各位帮忙看看我的函数应该怎么改
各位帮忙看看我的函数应该怎么改 - happyhappy [2005-12-12 11:26 | 7,752 byte(s)]
 
 
Subject: 各位帮忙看看我的函数应该怎么改
Author: happyhappy    Posted: 2005-12-12 11:26    Length: 7,752 byte(s)
[Original] [Print] [Top]
import sys,string,math
fr=open("e:/zwxdata/200509/2005_09_01.txt")
fw=open("e:/zwxdata/2out2005_09_01.txt","w")
line=0
c1=[]
c2=[]
count1=1
count2=1
sum1=0
sum2=0
avarage1=1
average2=1

for i in fr.readlines():
line=line+1
for a1 in range(1,60):
if line==a1:
line21=str.split(i)
line31=float(str(line21[4]))
c1 =[line31]

for m1 in c1:
count1+=1
sum1=sum1+m1
average1=sum1/count1
for a2 in range(60,120):
if line==a2:
line22=str.split(i)
line32=float(str(line22[4]))
c2 =[line32]
for m2 in c2:
sum2=sum2+m2
count2+=1
average2=sum2/count2
print average1
print average2

fr.close()
fw.close()
我这个文件要做第4列每隔60个数的平均值,这里只作了2个,可以运行了.但要做成函数,帮我看看为啥算出来的不是平均值,而是文件里的原数
import sys,string,math
fr=open("e:/zwxdata/200509/2005_09_01.txt")
fw=open("e:/zwxdata/42out2005_09_01.txt","w")

line=0
count=1
c=[]
av=0.0
sum=0.0

def average():
for i in fr.readlines():
line+=1
if line==a:
line2=str.split(i)
line3=float(str(line2[4]))
c =[line3]

for m in c:
count=count+1
sum=sum+m
av=sum/count

return av
print av
for a in range(1,60):
ss=average()
文件内容如下:
2005-09-01 05:01:00 .103 .086 .091
2005-09-01 05:02:00 .103 .077 .09
2005-09-01 05:03:00 .103 .086 .095
2005-09-01 05:04:00 .103 .086 .09
2005-09-01 05:05:00 .095 .077 .09
2005-09-01 05:06:00 .103 .086 .092
2005-09-01 05:07:00 .103 .086 .092
2005-09-01 05:08:00 .103 .077 .092
2005-09-01 05:09:00 .095 .077 .087
2005-09-01 05:10:00 .103 .077 .09
2005-09-01 05:11:00 .103 .077 .09
2005-09-01 05:12:00 .103 .086 .092
2005-09-01 05:13:00 .103 .077 .093
2005-09-01 05:14:00 .103 .086 .092
2005-09-01 05:15:00 .095 .077 .089
2005-09-01 05:16:00 .103 .086 .093
2005-09-01 05:17:00 .095 .077 .089
2005-09-01 05:18:00 .095 .077 .092
2005-09-01 05:19:00 .095 .077 .089
2005-09-01 05:20:00 .103 .086 .095
2005-09-01 05:21:00 .103 .086 .092
2005-09-01 05:22:00 .103 .086 .092
2005-09-01 05:23:00 .103 .086 .09
2005-09-01 05:24:00 .103 .086 .096
2005-09-01 05:25:00 .103 .077 .092
2005-09-01 05:26:00 .103 .086 .095
2005-09-01 05:27:00 .103 .086 .095
2005-09-01 05:28:00 .103 .086 .095
2005-09-01 05:29:00 .112 .095 .102
2005-09-01 05:30:00 .112 .086 .103
2005-09-01 05:31:00 .12 .095 .105
2005-09-01 05:32:00 .12 .086 .103
2005-09-01 05:33:00 .12 .095 .109
2005-09-01 05:34:00 .12 .103 .113
2005-09-01 05:35:00 .129 .103 .117
2005-09-01 05:36:00 .129 .112 .122
2005-09-01 05:37:00 .138 .12 .129
2005-09-01 05:38:00 .146 .129 .135
2005-09-01 05:39:00 .146 .129 .139
2005-09-01 05:40:00 .155 .138 .148
2005-09-01 05:41:00 .163 .146 .155
2005-09-01 05:42:00 .18 .163 .17
2005-09-01 05:43:00 .189 .155 .178
2005-09-01 05:44:00 .206 .172 .186
2005-09-01 05:45:00 .215 .189 .201
2005-09-01 05:46:00 .223 .206 .213
2005-09-01 05:47:00 .232 .215 .225
2005-09-01 05:48:00 .258 .241 .244
2005-09-01 05:49:00 .275 .249 .256
2005-09-01 05:50:00 .284 .258 .272
2005-09-01 05:51:00 .292 .284 .288
2005-09-01 05:52:00 .318 .301 .309
2005-09-01 05:53:00 .335 .309 .328
2005-09-01 05:54:00 .352 .335 .345
2005-09-01 05:55:00 .387 .361 .372
2005-09-01 05:56:00 .421 .378 .395
2005-09-01 05:57:00 .43 .395 .415
2005-09-01 05:58:00 .464 .43 .447
2005-09-01 05:59:00 .481 .455 .468
2005-09-01 06:00:00 .524 .481 .497
2005-09-01 06:01:00 .541 .498 .523
2005-09-01 06:02:00 .559 .524 .55
2005-09-01 06:03:00 .593 .559 .579
2005-09-01 06:04:00 .619 .602 .61
2005-09-01 06:05:00 .653 .627 .643
2005-09-01 06:06:00 .688 .662 .676
2005-09-01 06:07:00 .722 .688 .709
2005-09-01 06:08:00 .765 .731 .741
2005-09-01 06:09:00 .791 .756 .773
2005-09-01 06:10:00 .825 .791 .812
2005-09-01 06:11:00 .859 .825 .847
2005-09-01 06:12:00 .894 .868 .882
2005-09-01 06:13:00 .937 .902 .921
2005-09-01 06:14:00 .98 .928 .953
2005-09-01 06:15:00 1.014 .971 .996
2005-09-01 06:16:00 1.066 1.014 1.034
2005-09-01 06:17:00 1.1 1.057 1.073
2005-09-01 06:18:00 1.126 1.091 1.112
2005-09-01 06:19:00 1.169 1.126 1.152
2005-09-01 06:20:00 1.212 1.169 1.192
2005-09-01 06:21:00 1.255 1.22 1.235
2005-09-01 06:22:00 1.289 1.246 1.272
2005-09-01 06:23:00 1.332 1.298 1.319
2005-09-01 06:24:00 1.384 1.341 1.368
2005-09-01 06:25:00 1.418 1.392 1.411
2005-09-01 06:26:00 1.47 1.444 1.461
2005-09-01 06:27:00 1.53 1.478 1.51
2005-09-01 06:28:00 1.59 1.547 1.567
2005-09-01 06:29:00 1.642 1.599 1.621
2005-09-01 06:30:00 1.702 1.659 1.684
2005-09-01 06:31:00 1.745 1.71 1.729
2005-09-01 06:32:00 1.796 1.762 1.775
2005-09-01 06:33:00 1.839 1.796 1.822
2005-09-01 06:34:00 1.874 1.848 1.864
2005-09-01 06:35:00 1.925 1.891 1.908
2005-09-01 06:36:00 1.994 1.917 1.957
2005-09-01 06:37:00 2.037 1.985 2.011
2005-09-01 06:38:00 2.097 2.037 2.064
2005-09-01 06:39:00 2.14 2.106 2.117
2005-09-01 06:40:00 2.183 2.14 2.164
2005-09-01 06:41:00 2.217 2.183 2.204
2005-09-01 06:42:00 2.26 2.235 2.247
2005-09-01 06:43:00 2.32 2.269 2.292
2005-09-01 06:44:00 2.372 2.329 2.346
2005-09-01 06:45:00 2.415 2.363 2.391
2005-09-01 06:46:00 2.492 2.432 2.464
2005-09-01 06:47:00 2.561 2.501 2.527
2005-09-01 06:48:00 2.595 2.561 2.58
2005-09-01 06:49:00 2.638 2.604 2.621
2005-09-01 06:50:00 2.699 2.647 2.667
2005-09-01 06:51:00 2.742 2.699 2.724
2005-09-01 06:52:00 2.802 2.75 2.777
2005-09-01 06:53:00 2.828 2.793 2.813
2005-09-01 06:54:00 2.879 2.836 2.862
2005-09-01 06:55:00 2.939 2.896 2.911
2005-09-01 06:56:00 2.982 2.922 2.955
2005-09-01 06:57:00 3.051 2.999 3.014
2005-09-01 06:58:00 3.085 3.025 3.062
2005-09-01 06:59:00 3.128 3.094 3.113

[Original] [Print] [Top]
Subject: Re: 各位帮忙看看我的函数应该怎么改
Author: passworld    Posted: 2005-12-13 12:35    Length: 616 byte(s)
[Original] [Print] [Top]
60行一平均?先积累到一个sum,然后数到60的倍数,作一个平均,sum 归零,继续积累:

def average(lines):
sum=0
count = 0
result = []
for i in lines:
# 找出第四列....
# ....
sum += field4
count += 1
# 到60做一个平均,重新开始
if not count % 60:
result.append(sum/count)
sum = 0
# 最后剩下不到60行的再平均
if sum:
result.append(sum/(count % 60))
return result

----
[Original] [Print] [Top]
« Previous thread
wxPython.iewin.EVT_MSHTML_NEWWINDOW2看新页面的问题
Python 编 程
4
Next thread »
python httplib.respose.read()怎样接收gzip数据
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 04:10:57, cost 0.052042007446289 ms.