有错误代码,只是借鉴以下编程思想

来源:互联网 发布:unity3d小游戏源代码 编辑:程序博客网 时间:2024/04/28 16:38
我编了个小程序 读取文件数据,运行时总提示IndexError: list index out of range ,我仔细检查了,索引并没有越界啊,还有其他原因导致这个错误吗 代码太长了 贴出部分代码 希望大家帮忙看看 感激不尽    
Python code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
    file1=open('%s' % mgt)    #从mgt文件中读取信息
    global line1
    line1=[]
    global line1num
    line1num=0
    for eachline in file1.readlines():
        line1.append(eachline)
        line1num+=1      
    global components
    components=[]
    global compnum
    compnum=0
    i=0
    cps=0
    cpo=0
    while i<line1num:
        if line1[i]=='*MEMBER    ; Member'+'\n':
            cps=i+1
            break
        i+=1
    cpt=cps
    if cpt!=0:
        while cpt<line1num:
            if line1[cpt]=='\n':
                cpo=cpt
                break
            cpt+=1
    j=0
    while cps<cpo:
        line1[cps]=line1[cps].strip()
        r=re.compile(',')
        comdata=[]
        comdata=r.split(line1[cps])
        components.append([])
        i=0
        while i<len(comdata):
            components[j].append(comdata[i])
            i+=1
        j+=1
        compnum+=1
        cps+=1
    for each in components:
        each.pop(1)
    file7=open('%s' % rcs1)    #从rcs文件中读取信息
    #此时line2不是全局变量
    line2=[]
    line2num=0
    for eachline in file7.readlines():
        line2.append(eachline)
        line2num+=1
    file7.close()
    combeamnum=0 
    line3=[] 
    line3num=0  
    line5=[]  
    line6=[]  
    line7=[] 
    line8=[] 
    i=0
    while i<line2num:
        if line2[i].count('kN, m')!=0:
            cb=i+1
            break
        i+=1    
    ct=cb     
    if ct!=0:
        while ct<line2num:
            if line2[ct].count('=')==3:
                line3.append(line2[ct])
                line3num+=1
            if line2[ct].count('=')==2:
                line3.append(line2[ct])
                line3num+=1
            if line2[ct].count('@')!=0:
                line3.append(line2[ct])
                line3num+=1    
            ct+=1    
    i=0
    while i<line3num:
        line3[i]=line3[i].strip()
        line3[i+1]=line3[i+1].strip()
        line3[i+2]=line3[i+2].strip()
        line3[i+3]=line3[i+3].strip()
        line3[i+4]=line3[i+4].strip()
        line3[i+5]=line3[i+5].strip()
        r=re.compile(' *')    #利用正则表达式,' *'对应' ','  ','   ','    '这一类
        line4data=[]
        line4data1=[]
        line4data2=[]
        line4data3=[]
        line4data4=[]
        line4data5=[]
        line4data=r.split(line3[i])
        line4data1=r.split(line3[i+1])
        line4data2=r.split(line3[i+2])
        line4data3=r.split(line3[i+3])
        line4data4=r.split(line3[i+4])
        line4data5=r.split(line3[i+5])
        line4data[2]=line4data[2].strip()
        line4data[2]=line4data[2].rstrip(',')
        line4data[5]=line4data[5].strip()
        line5.append([int(line4data[2])])
        line5[i].append(int(line4data[5]))
        line4data1[2]=line4data1[2].strip()
        line4data1[2]=line4data1[2].rstrip(',')
        line4data1[5]=line4data1[5].strip()
        line5.append([float(line4data1[2])])
        line5[i+1].append(float(line4data1[5]))
        line4data2[5]=line4data2[5].strip()
        line4data2[5]=line4data2[5].rstrip(',')
        line4data2[5]='HRB'+str(int(line4data2[5])/1000)
        line5.append([line4data2[5]])
        line4data3[5]=line4data3[5].strip()
        line4data3[6]=line4data3[6].strip()
        line4data3[6]=line4data3[6].split('-')
        line4data3[6][1]=line4data3[6][1].lstrip('d')
        line4data3[10]=line4data3[10].strip()
        line4data3[11]=line4data3[11].strip()
        line4data3[11]=line4data3[11].split('-')
        line4data3[11][1]=line4data3[11][1].lstrip('d')
        line5.append([float(line4data3[5])])
        line5[i+3].append(int(line4data3[6][0]))
        line5[i+3].append(int(line4data3[6][1]))
        line5[i+3].append(float(line4data3[10]))
        line5[i+3].append(int(line4data3[11][0]))
        line5[i+3].append(int(line4data3[11][1]))
        line4data4[5]=line4data4[5].strip()
        line4data4[6]=line4data4[6].strip()
        line4data4[6]=line4data4[6].split('-')
        line4data4[6][1]=line4data4[6][1].lstrip('d')
        line4data4[10]=line4data4[10].strip()
        line4data4[11]=line4data4[11].strip()
        line4data4[11]=line4data4[11].split('-')
        line4data4[11][1]=line4data4[11][1].lstrip('d')
        line5.append([float(line4data4[5])])
        line5[i+4].append(int(line4data4[6][0]))
        line5[i+4].append(int(line4data4[6][1]))
        line5[i+4].append(float(line4data4[10]))
        line5[i+4].append(int(line4data4[11][0]))
        line5[i+4].append(int(line4data4[11][1]))
        line4data5[5]=line4data5[5].strip()
        line4data5[6]=line4data5[6].strip()
        line4data5[6]=line4data5[6].split('-')
        line4data5[6][1]=line4data5[6][1].lstrip('d')
        line4data5[10]=line4data5[10].strip()
        line4data5[11]=line4data5[11].strip()
        line4data5[11]=line4data5[11].split('-')
        line4data5[11][1]=line4data5[11][1].lstrip('d')
        line5.append([float(line4data5[5])])
        line5[i+5].append(int(line4data5[6][0]))
        line5[i+5].append(int(line4data5[6][1]))
        line5[i+5].append(float(line4data5[10]))
        line5[i+5].append(int(line4data5[11][0]))
        line5[i+5].append(int(line4data5[11][1]))
        i+=6
    i=0
    j=0
    while j<len(line5):
        line6.append([])
        line6[i]=line5[j]+line5[j+1]+line5[j+2]+line5[j+3]    
        line7.append([])
        line7[i]=line5[j]+line5[j+1]+line5[j+2]+line5[j+4]
        line8.append([])
        line8[i]=line5[j]+line5[j+1]+line5[j+2]+line5[j+5]
        combeamnum+=1
        i+=1
        j+=6
        j=0
    print line6
    print len(line6)
    print combeamnum    
    print components
    print len(components)
    print compnum
    while j<combeamnum:
        if section[int(line6[j][1])-1][1]=='SB':   
            B=float(line6[j][2])                    
            H=float(line6[j][3])
            if B==0.1:
                B=0.1001
            if H==0.1:
                H=0.1001
            k=0 
            while k<compnum:
                if int(components[k][0])==int(line6[j][0]):    #根据单元来对应截面,然后求得等效截面
                    if len(components[k])==1:    #梁没有被分割
                        if int(line6[j][5])+int(line6[j][8])<int(line8[j][5])+int(line8[j][8]):
....下面还很长 不贴出来了 运行后 结果是
[[110.250.5998'HRB335'0.0002972200.00029997220], [210.250.598'HRB335'0.0005012200.0002997220], [310.250.5998'HRB335'0.00050012200.00029997220], [410.250.5998'HRB335'0.00050012200.0002997220], [510.250.5998'HRB335'0.000500012200.00040002220], [610.250.5998'HRB335'0.00029972200.0002997220], [710.250.5998'HRB335'0.0002972200.0002997220], [810.250.59998'HRB335'0.009983200.00029997220]]
8
8
[['1'' 571'' 572'], ['2'' 603'' 604'], ['3'' 635'' 636'], ['4'' 673'' 674'], ['5'' 559'' 560'], ['6'' 201'], ['7'' 213'], ['8'' 661'' 662'], ['9'' 544'' 546'], ['10'' 227'], ['11'' 239'], ['12'' 648'' 650'], ['13'' 543'' 545'], ['14'' 583'' 584'], ['15'' 615'' 616'], ['16'' 647'' 649'], ['17'' 570'' 569'], ['18'' 558'' 557'], ['19'' 542'' 541'], ['20'' 574'' 573'], ['21'], ['22'' 548'' 547']]
22
22
Exception in Tkinter callback
Traceback (most recent call last):
  File "D:\Program Files\Python25\lib\lib-tk\Tkinter.py", line 1403in __call__
    return self.func(*args)
  File "C:/Users/caizhen/Desktop/M2A0404调试.py", line 9970in r5progress
    compbeamsecbar()
  File "C:/Users/caizhen/Desktop/M2A0404调试.py", line 1869in compbeamsecbar
    if int(components[k][0])==int(line6[j][0]):    #根据单元来对应截面,然后求得等效截面
0 0
原创粉丝点击