2
2
# 图形界面待开发
3
3
4
4
import math
5
+ import openpyxl as opx
5
6
6
7
p = math .pi
7
8
8
9
9
- def main ():
10
+ def get_by_io ():
11
+ # 对标尺数据的处理
12
+ # 获取最基本的xi+和xi-的数据
13
+ a = input ('请输入xi+的九个值,单位mm,每个值之间用空格隔开,不要有其他额外输入' ).split ()
14
+ b = input ('请输入xi-的九个值,单位mm,每个值之间用空格隔开,不要有其他额外输入' ).split ()
15
+
16
+ # 对直径数据的处理
17
+ # 获取最基本的d的数据
18
+ c = input ('请输入0.00kg时测得的三个钢丝直径的数据,单位mm,各数据间用空格隔开,不要有其他额外输入' ).split ()
19
+ d = input ('请输入9.00kg时测得的三个钢丝直径的数据,单位mm,各数据间用空格隔开,不要有其他额外输入' ).split ()
20
+ return a , b , c , d
21
+
22
+
23
+ def get_by_xlsx ():
24
+ workbook = opx .load_workbook ('./1.xlsx' )
25
+ sheet = workbook .active
26
+ a = []
27
+ b = []
28
+ c = []
29
+ d = []
30
+ for i in sheet .iter_rows (min_row = 2 , max_row = 2 , min_col = 1 , max_col = 10 ):
31
+ for k in i :
32
+ a .append (k .value )
33
+ for i in sheet .iter_rows (min_row = 4 , max_row = 4 , min_col = 1 , max_col = 10 ):
34
+ for k in i :
35
+ b .append (k .value )
36
+ for i in sheet .iter_rows (min_row = 6 , max_row = 6 , min_col = 1 , max_col = 3 ):
37
+ for k in i :
38
+ c .append (k .value )
39
+ for i in sheet .iter_rows (min_row = 8 , max_row = 8 , min_col = 1 , max_col = 3 ):
40
+ for k in i :
41
+ d .append (k .value )
42
+ print (a , b , c , d )
43
+ return a , b , c , d
44
+
45
+
46
+ def main (xiPlus , xiMinus , d_0 , d_9 ):
10
47
# 以下是我自己测得的实验数据
11
48
# xiPlus = [6.1, 9.2, 12.1, 15.2, 18.6, 21.4, 24.3, 27.8, 30.3, 33.8]
12
49
# xiMinus = [5.2, 8.7, 12.0, 14.9, 17.8, 20.9, 24.0, 27.2, 30.7, 33.0]
@@ -15,10 +52,7 @@ def main():
15
52
# L = 738
16
53
# H = 812
17
54
# b = 501
18
- # 对标尺数据的处理
19
- # 获取最基本的xi+和xi-的数据
20
- xiPlus = input ('请输入xi+的九个值,单位mm,每个值之间用空格隔开,不要有其他额外输入' ).split ()
21
- xiMinus = input ('请输入xi-的九个值,单位mm,每个值之间用空格隔开,不要有其他额外输入' ).split ()
55
+
22
56
xi = []
23
57
for i in range (len (xiPlus )):
24
58
xi .append ((float (xiPlus [i ]) + float (xiMinus [i ])) / 2 )
@@ -38,11 +72,6 @@ def main():
38
72
AD_xi = AD_xi + abs (y - average_delta_xi )
39
73
AD_xi = AD_xi / 5
40
74
41
- # 对直径数据的处理
42
- # 获取最基本的d的数据
43
- d_0 = input ('请输入0.00kg时测得的三个钢丝直径的数据,单位mm,各数据间用空格隔开,不要有其他额外输入' ).split ()
44
- d_9 = input ('请输入9.00kg时测得的三个钢丝直径的数据,单位mm,各数据间用空格隔开,不要有其他额外输入' ).split ()
45
-
46
75
# 对数据进行进一步处理
47
76
average_d = [] # 对上中下三个尺寸取均值
48
77
for i in range (len (d_0 )):
@@ -85,9 +114,20 @@ def main():
85
114
86
115
87
116
if __name__ == '__main__' :
88
- print ('===============================================' )
89
- print ('测定金属杨氏模量实验的数据处理脚本,一站式解决所有计算' )
90
- print ('\t \t \t made by zzx' )
91
- print ('you can also find the code at the following URL:' )
92
- print ('https://github.com/coder-Zzx/experiment_project.git' )
93
- main ()
117
+ print ('=======================================================' )
118
+ print ('| 测定金属杨氏模量实验的数据处理脚本,一站式解决所有计算 |' )
119
+ print ('| made by zzx |' )
120
+ print ('---------------------------------------version 1.2-----' )
121
+ print ('| you can also find the code at the following URL: |' )
122
+ print ('| https://github.com/coder-Zzx/experiment_project.git |' )
123
+ print ('=======================================================' , end = '\n \n ' )
124
+ print ('=======================================================' )
125
+ print ('| 1.从键盘输入 |' )
126
+ print ('| 2.从Excel文件输入 |' )
127
+ ans = input ('|\t 请选择输入模式\t |' )
128
+ if ans == '1' :
129
+ xiPlus , xiMinus , d_0 , d_9 = get_by_io ()
130
+ if ans == '2' :
131
+ print ('请在代码相同路径下的1.xlsx工作表内按格式输入实验数据.' )
132
+ xiPlus , xiMinus , d_0 , d_9 = get_by_xlsx ()
133
+ main (xiPlus = xiPlus , xiMinus = xiMinus , d_0 = d_0 , d_9 = d_9 )
0 commit comments