写入文本文件时调用for循环内变量的值
Calling the value of a variable inside for loop when writing to a text file
我想从 python 创建一个文本文件,我希望变量的值在 for 循环内迭代更改。但是,我无法在循环内调用变量的值。相反,它只是将变量打印为字符串。代码如下:
f = open('workfile.txt, 'w')
for i in range (1,152):
a = 1
f.write('BEGIN PERIOD a \n')
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD a \n')
a +=1
f.close()
在这里,在 f.write 函数中的 BEGIN PERIOD 和 END PERIOD 之后,我希望每次循环运行时更改 ''a'' 的值.但是,该程序将 ''a'' 作为字符串打印。请帮助我。
您可以在循环外声明a
:
a = 1
for i in range(1, 152):
...
a += 1
如果在循环内部声明,每次循环再次循环,都会有一个新的a
。如果你想让它一直在线,你需要在循环范围之外对其进行decalre。
如果你想使用a
,你可以试试format
:
a = 1
for i in range(1, 152):
...
a += 1
print('a is {}'.format(a))
这里'BEGIN PERIOD a \n'
是一个字符串。程序无法识别您要打印 a
的值。您需要做的是划分字符串并指定变量以获取其值:'BEGIN PERIOD ' + str(a) + '\n'
.
但是有一个问题,你在每次迭代中 运行 a = 1
,因此你是否增加值并不重要 a +=1
,你的代码将打印 a
总是 1
.
最好不要使用 a
,因为您已经有一个迭代器 i
。您可以使用以下代码:
f = open('workfile.txt', 'w')
for i in range(1, 152):
f.write('BEGIN PERIOD ' + str(i) + '\n')
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD ' + str(i) + '\n')
f.close()
for i in range(1, 152):
这里for循环迭代变量i
从1(含)到152(不含)。
有2个问题。
(i) a 的初始化应该在循环外
(ii) 在 f.write() 中应该是 %d 格式并提供变量名
工作代码如下:
f = open('workfile.txt', 'w')
a = 1
for i in range (1,152):
f.write('BEGIN PERIOD %d \n' %(a))
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD %d \n' %(a))
a +=1
f.close()
我想从 python 创建一个文本文件,我希望变量的值在 for 循环内迭代更改。但是,我无法在循环内调用变量的值。相反,它只是将变量打印为字符串。代码如下:
f = open('workfile.txt, 'w')
for i in range (1,152):
a = 1
f.write('BEGIN PERIOD a \n')
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD a \n')
a +=1
f.close()
在这里,在 f.write 函数中的 BEGIN PERIOD 和 END PERIOD 之后,我希望每次循环运行时更改 ''a'' 的值.但是,该程序将 ''a'' 作为字符串打印。请帮助我。
您可以在循环外声明a
:
a = 1
for i in range(1, 152):
...
a += 1
如果在循环内部声明,每次循环再次循环,都会有一个新的a
。如果你想让它一直在线,你需要在循环范围之外对其进行decalre。
如果你想使用a
,你可以试试format
:
a = 1
for i in range(1, 152):
...
a += 1
print('a is {}'.format(a))
这里'BEGIN PERIOD a \n'
是一个字符串。程序无法识别您要打印 a
的值。您需要做的是划分字符串并指定变量以获取其值:'BEGIN PERIOD ' + str(a) + '\n'
.
但是有一个问题,你在每次迭代中 运行 a = 1
,因此你是否增加值并不重要 a +=1
,你的代码将打印 a
总是 1
.
最好不要使用 a
,因为您已经有一个迭代器 i
。您可以使用以下代码:
f = open('workfile.txt', 'w')
for i in range(1, 152):
f.write('BEGIN PERIOD ' + str(i) + '\n')
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD ' + str(i) + '\n')
f.close()
for i in range(1, 152):
这里for循环迭代变量i
从1(含)到152(不含)。
有2个问题。 (i) a 的初始化应该在循环外 (ii) 在 f.write() 中应该是 %d 格式并提供变量名
工作代码如下:
f = open('workfile.txt', 'w')
a = 1
for i in range (1,152):
f.write('BEGIN PERIOD %d \n' %(a))
f.write('6 1 1200.0 90.0 \n')
f.write('END PERIOD %d \n' %(a))
a +=1
f.close()