所以我必须创建一个4-1和9-3在每一行的文件。在那之后,我需要对每个数字做减法。我已经做了一些事情,但是只有第2行的结果。所以在izrazi.txt中是我的输入4-1和9-3,所以我在izlaz.txt中的输出必须是4-1 =3,在新行9-3 =6
with open('izrazi.txt','w') as f:
f.write("4-1\n9-3")
with open('izrazi.txt','r') as f:
lines = f.readlines()
for l in lines:
if l[1] == "-":
rezultat = (l + "=" + str(int(l[0]) - int(l[2])))
with open("izlaz.txt", "w") as f2:
f2.write(rezultat)
发布于 2021-11-20 11:37:57
您必须在for循环外部声明变量'rezultat‘,在循环内部使用'+=’运算符而不是'=‘。
如下所示更改您的代码:
rezultat = ''
for l in lines:
if l[1] == "-":
rezultat += (l.replace('\n','') + "=" + str(int(l[0]) - int(l[2])) + '\n')
发布于 2021-11-20 11:45:41
您的代码无法正常工作,因为您在每次循环后都会覆盖results变量。
因此,只有在最终循环之后的result变量的值被保存到文件中。
您可以通过将rezultat
设置为list
来修复此问题。
with open('izrazi.txt','w') as f:
f.write("4-1\n9-3")
with open('izrazi.txt','r') as f:
lines = f.readlines()
rezultat = []
for l in lines:
if l[1] == "-":
rezultat.append(f"{l}={int(l[0]) - int(l[2])}")
with open("izlaz.txt", "w") as f2:
f2.write('\n'.join(rezultat))
https://stackoverflow.com/questions/70045446
复制相似问题