Скрипт для автоматизации в экспериментальной установке

#python

#python

Вопрос:

Добрый день, ребята,

Я новичок в 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
  

Я пытался искать похожие вопросы в течение нескольких дней, но каждый раз мне удавалось находить только новые ошибки!

Большой привет всем, кто может помочь мне с этой задачей.

Ответ №1:

Проблема возникает только из-за того, что ваша 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 {}" .