下面是代码,但输出是错误的,它只在循环时输出第一个索引值。当我打印 col、rac 和 mon 的值时,它会起作用。我还检查了 i 值以确保它们以正确的方式递增。文本文件:Fav Color -- *color* Fav Car -- *car*Number -- *Money*代码:with open('carstest.txt', 'r') as file : testdata = file.read()colors = ["RED","GREEN","BLUE"]car =['Ferrari', 'Mustang','Camero']Money = ['one','two','three']i =0while i <len(colors): col = colors[i] rac = car[i] mon = Money[i] testdata = testdata.replace('*color*', col) testdata = testdata.replace('*car*', rac) testdata = testdata.replace('*Money*', mon) print(testdata) i+=1else: print ("DONE")输出:Fav Color -- RED Fav Car -- FerrariNumber -- oneFav Color -- RED Fav Car -- FerrariNumber -- oneFav Color -- RED Fav Car -- FerrariNumber -- oneDONE期望输出:Fav Color -- RED Fav Car -- FerrariNumber -- oneFav Color -- GREENFav Car -- MustangNumber -- twoFav Color -- BLUEFav Car -- CameroNumber -- threeDONE
2 回答

炎炎设计
TA贡献1808条经验 获得超4个赞
问题出在while算法上。对于每个额外的循环,您需要重新加载变量的原始内容(文件内容)。简而言之,您要查找一个字符串*color*,但不幸的是,该字符串已str.replace()被使用而不再存在。因此testdata已更改并且下一个循环重复不再相关。否则你必须解决算法。例如,在while循环开始时,创建一个临时变量:
with open('carstest.txt', 'r') as file :
testdata = file.read()
colors = ['RED','GREEN','BLUE']
car =['Ferrari', 'Mustang','Camero']
Money = ['one','two','three']
i = 0
while i < len(colors):
s = testdata
s = s.replace('*color*' , colors[i])
s = s.replace('*car*' , car[i])
s = s.replace('*Money*' , Money[i])
print(s)
i += 1
else:
print ("DONE")
添加回答
举报
0/150
提交
取消