У меня проблемы с оператором установки в Python timeit.Timer (stmt, setup_stmt). Я ценю любую помощь, чтобы вытащить меня из этой сложной проблемы:
Итак, мой фрагмент выглядит так:
def compare(string1, string2):
# compare 2 strings
if __name__ = '__main__':
str1 = "This string has \n several new lines \n in the middle"
str2 = "This string hasn't any new line, but a single quote ('), in the middle"
t = timeit.Timer('compare(p1, p2)', "from __main__ import compare; p1=%s, p2=%s" % (str1,str2))
Я не знаю, как экранировать метасимвол в переменной str1, str2, не меняя их значения в операторе настройки:
"from __main__ import compare; p1=%s, p2=%s" % (str1,str2)
Я пробовал разные комбинации, но всегда были следующие ошибки:
Ошибка синтаксиса: невозможно присвоить литералу
SyntaxError: EOL при сканировании строки в одинарных кавычках
Ошибка синтаксиса: неверный синтаксис