Python 计算特定值并将其写入文本文件的循环
我需要一个简单代码的帮助,这个代码将使用一个循环来计算化学计量学和密度。有了这些值,我想把它们放在一个文本文件中。下面是代码Python 计算特定值并将其写入文本文件的循环,python,loops,Python,Loops,我需要一个简单代码的帮助,这个代码将使用一个循环来计算化学计量学和密度。有了这些值,我想把它们放在一个文本文件中。下面是代码 den_U = 19.1 #density of uranium 238 g/cc den_C = 2.26 #density of carbon 12 g/cc molm_U = 238.02 #molar mass of Uranium g/mol molm_C = 12.0107 #molar mass of Carbon g/mol a =
den_U = 19.1 #density of uranium 238 g/cc
den_C = 2.26 #density of carbon 12 g/cc
molm_U = 238.02 #molar mass of Uranium g/mol
molm_C = 12.0107 #molar mass of Carbon g/mol
a = 1
for i in range(20):
input = 'density_and_stoich4'
file = open(input + '.txt', 'w')
T_C = molm_C*a
T_com = T_C + molm_U
per_C = T_C/T_com
per_U = molm_U/T_com
den_com = den_U*per_U + den_C*per_C
d = a
file.writelines(str(den_com)+ ';')
file.writelines(str(d) + '.0\n')
file.close()
a += 10
代码的问题是它只执行一次。我希望它执行多次,并在文本文件中写入,如下所示
18.2334;1.0
17.3437;11.0
16.3422;21.0
等等 在
open()
中的'w'
表示写入模式,这将覆盖文件内容。您需要:
with
语句,以便文件在块之后自动关闭。并避免使用文件
作为变量名,因为它是保留关键字。例如:
with open(input + '.txt', 'w') as f:
f.write(str(den_com) + ';' + str(d) + '.0\n')
注意:
writelines()
用于编写多行代码,但在本例中不正确。你应该改用write()
那么是什么阻止了你?围绕你想重复的事情做一个循环a+=10
是该循环的底部。将file=open(…)
和file.close()调用移到循环外部。正如现在所写的,每次迭代都会覆盖该文件。