#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 {}"
.