如何解决这个for loop 循环里的bug?
希望在不大动代码的情况下解决,实在不知道怎么改了🙁
下面是源代码:
def rotate_model(fname_in, fname_out):
import os
if os.path.exists(fname_in)==True:
fp=open(fname_in)
line=fp.read()
fp_f=line.find('f')
line1=line[:fp_f]
line1_list=line1.split(' ')
x=1
for x in line1_list:
line1_list[x]= line1_list[x+1]
line1_list[x+1]=('-'+line1_list[x])
x+=3
return line1_list
fname_out.close()
else:
return -1
交换值 3部曲:
t=a
a=b
b=t
def rotate_model(fname_in, fname_out):
# if os.path.exists(fname_in) == True:
# fp = open(fname_in)
# line = fp.read()
# fp_f = line.find('f')
# line1 = line[:fp_f]
# line1_list = line1.split(' ')
line1_list = ['v', '-2.0', '0.0', '0.0\nv', 'v', '0.0', '0.0', '0.0\nv', 'v', '-1.0', '0.0', '0.0\nv', 'v', '0.0',
'0.0', '0.0\nv',
'v', '2.0', '0.0', '0.0\nv', 'v', '1.0', '0.0', '0.0\nv', 'v', '-1.0', '0.0', '0.0\nv', 'v', '1.0',
'0.0', '0.0\nv',
'v', '0.0', '0.0', '0.0\nv']
print(line1_list)
x = 1
for i in enumerate(range(0, len(line1_list), 4)):
t1 = line1_list[x] # 先保留值,避免下边交换被覆盖
line1_list[x] = line1_list[x + 1]
line1_list[x + 1] = -eval(t1) # 数值才能进行计算
x += 4
return line1_list
print('origin:')
print('after:\n', rotate_model('', ''))
直接换不行吗?为什么要+3
for x in line1_list:
line1_list[x], line1_list[x+1]= line1_list[x+1],'-'+line1_list[x]