下午好,
我是python初学者,我正在尝试实现以下脚本,以生成要馈入计算机的自动命令列表。脚本现在看起来像:
print("re 1")
make_same = "xfb nc_proc 0"
first_exp = 1
exp_id = str(first_exp)
copy_par = "rpar re999"
next_please = "re " + exp_id
def macro_maker():
parameters = [copy_par, make_same, next_please]
for settings in parameters:
print(settings)
macro_maker()
def repeat(f, n):
for i in range(n):
f()
repeat(macro_maker, 1)
我想通过某种方式对其进行修改,使其无需我的输入即可自动传递到下一个实验。例如,当前输出为:
re 1
rpar re999
xfb nc_proc 0
re 1
rpar re999
xfb nc_proc 0
re 1
我希望获得以下输出:
re 1
rpar re999
xfb nc_proc 0
re 2
rpar re999
xfb nc_proc 0
re 3
几天来我一直在寻找类似的问题,但每次都只能设法提出新的错误!
对任何可以帮助我完成这项任务的人都充满爱意。
答案 0 :(得分:0)
问题仅源于您的next_please
字符串在整个脚本中是恒定的。因此,它总是打印相同的内容're 1'
。
据我了解,这是唯一要更改的参数,您可以执行以下操作:
make_same = "xfb nc_proc 0"
copy_par = "rpar re999"
next_please = "re {}"
def macro_maker(index):
print(next_please.format(index))
parameters = [copy_par, make_same]
for settings in parameters:
print(settings)
def repeat(f, n):
for i in range(1, n+1):
f(i)
repeat(macro_maker, 2)
macro_maker
获取一个实验索引,并将next_please
与所有其他参数区别对待,将当前索引提供给它以格式化模板字符串"re {}"
。