编程语言
首页 > 编程语言> > Python关于 物理实验数据的代码简化处理

Python关于 物理实验数据的代码简化处理

作者:互联网

  物理实验数据的代码处理

  **

  物理实验(测量杨氏模量)数据的处理代码

  代码可能有错,仅仅是想写着试一下,使用请慎重

  中间有几块代码程序功能重复了,所以已经注释掉

  Time:3/27/17:30.发现了一个Bug,代码已经稍微做了改动

  from math import *

  #关于金属丝伸长中标尺数据的处理

  list1=[]

  #list2=[]

  list3=[]

  #list4=[]

  m=0

  #t=0

  sum0=0#逐差法得到数据进行差的平方求和

  sum=0#读数逐差法得到的数据求和

  while 1:

  data=eval(input("请从小到大输入金属丝在增重时的标尺像读数的平均值(ni),输入负数值停止")) #循环输入

  if data<0:

  break

  list1.append(1)

  list1[m]=data#列表储存源试验数据

  m+=1

  #while 1:

  #data = eval(input("请从小到大输入金属丝在减重时的标尺像读书,输入负数值停止")) # 循环输入

  #if data < 0:

  #break

  #list2.append(1)

  #list2[t] = data # 列表储存源试验数据

  #sum+=data

  #t+=1

  for y in range(m-1):

  list3.append(1)

  list3[y]=list1[y+1]-list1[y]#原始测量数据逐差法求变化量

  sum+=list3[y]

  #for y in range(t-1):

  #list4.append(1)

  #list4[y]=list2[y+1]-list2[y]

  #list3.extend(list4)

  dn_=sum/(m-1)

  deltn=dn_

  print("标尺读数变化的平均值是:{}".format(dn_))

  list3[:]=[y-dn_ for y in list3]#列表每一个都减去平均值

  for i in list3:

  sum0+=i**2

  on=(sum0/(m-2))**0.5#计算标准差

  on_=on/((m-1)**(0.5))

  print("标准差为:{}".format(on))

  #关于金属丝直径d的数据处理

  list=[]

  sum1=0 #总分

  n=0 #总人数

  average=0 #平均分

  sum2=0#差平方和

  while 1:

  data=eval(input("请输入多个金属丝修正后的直径di,输入负数值停止")) #循环输入

  if data<0:

  break

  list.append(1)

  list[n]=data#列表储存源试验数据

  sum1+=data

  n+=1

  average = sum1/n#计算d平均值

  deltaverage=average

  print("金属丝直径的平均值是:{}".format(average))

  list[:]=[y-average for y in list]#列表每一个都减去平均值

  for i in list:枣庄人流医院哪个好 http://mobile.3635555.cn/

  sum2+=i**2

  oi=(sum2/(n-1))**0.5#计算标准差

  oi_=oi/(n**(0.5))

  print("标准差od为:{}".format(oi))

  print("od除以根号n={}".format(oi_))

  #计算被测金属丝的杨氏弹性模量

  d=eval(input("输入镜尺距离(mm):"))*0.001

  l=eval(input("输入金属丝长度(mm):"))*0.001

  k=eval(input("输入光杠杆常数(mm):"))*0.001

  dn=eval(input("请输入标尺读数变化的平均值(mm)"))*0.001#化成国际单位制

  average*=0.001#化成国际单位制

  od=0

  ol=0

  ok=0#因为实验中只测了一组数据,为了简化计算,暂且均按照0处理

  om=0.003

  f=9.79163

  of=om*(9.79163)

  E_=(8*d*l*f)/(pi*(average**2)*k*dn)

  Ee=((ol/l)**2+(of/f)**2+(od/d)**2+(oi_/deltaverage)**2+(ok/k)**2+(on_/deltn)**2)**(0.5)

  oe_=Ee*E_

  print("E={}+/-{}".format(E_,oe_))

  print("Ee={}*100%".format(Ee))

  #代码结束

标签:format,Python,代码,list3,简化,input,金属丝,data,输入
来源: https://blog.51cto.com/14503791/2676571