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