下面是代码,但是输出错误,在循环时仅输出第一个索引值。当我打印col,rac和mon的值时,它起作用。我还检查了i值,以确保它们以正确的方式递增。
TEXTFILE:
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 =0
while 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+=1
else:
print ("DONE")
输出:
Fav Color -- RED
Fav Car -- Ferrari
Number -- one
Fav Color -- RED
Fav Car -- Ferrari
Number -- one
Fav Color -- RED
Fav Car -- Ferrari
Number -- one
DONE
所需产量:
Fav Color -- RED
Fav Car -- Ferrari
Number -- one
Fav Color -- GREEN
Fav Car -- Mustang
Number -- two
Fav Color -- BLUE
Fav Car -- Camero
Number -- three
DONE
答案 0 :(得分:0)
完成第一轮替换后,不再需要替换占位符。如果您每次迭代都以testdata
的原始值开始,那应该没问题。
答案 1 :(得分:0)
问题出在function renderHeadByUUID(Request $request){
if(isset($request->uuid)){
header("Content-type: image/png");
imagepng(MinecraftSkins::head($this->getImage($request->uuid)));
}
}
算法中。对于每个其他循环,您需要重新加载变量的原始内容(文件内容)。简单来说,您要查找字符串while
,不幸的是,由于使用了*color*
,该字符串不再存在。 str.replace()
因此已更改,下一个循环重复不再适用。您必须解决该算法。例如,在testdata
周期的开始,创建一个临时变量:
while