Python 在写入文本文件时调用for循环内部变量的值
我想从python中创建一个文本文件,通过该文件,我希望变量的值在for循环中迭代更改。但是,我无法调用循环中变量的值。相反,它只是将变量打印为字符串。代码如下:Python 在写入文本文件时调用for循环内部变量的值,python,for-loop,variables,file-writing,Python,For Loop,Variables,File Writing,我想从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.
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函数中的开始周期和结束周期之后,我希望每次循环运行时,'a''的值都会改变。但是,程序将“a”打印为字符串。请帮助我。您可以在循环外声明
a
:
a=1
对于范围(1152)内的i:
...
a+=1
如果在循环内声明,则每次循环再次循环时,都会出现一个新的a
。如果要使其始终在线,则需要在循环范围外对其进行贴花
如果您想使用a
,您可以尝试格式化
:
a=1
对于范围(1152)内的i:
...
a+=1
打印('a为{}'。格式(a))
这里的'beginperiod a\n'
是一个字符串。程序无法识别您想要打印a
的值。您需要做的是分割字符串并指定变量以获取其值:'beginperiod'+str(a)+'\n'
但是有一个问题,您在每次迭代中运行a=1
,因此无论您是否在此处增加值a+=1
,您的代码将始终作为1
打印a
最好不要使用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()
对于范围(1152)内的i:
这里for循环迭代变量i
从1(包含)到152(排除)。有两个问题。
(i) 循环的初始化应该在循环之外
(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()