IndentationError в функции timeit - PullRequest
       25

IndentationError в функции timeit

0 голосов
/ 04 ноября 2019

Я хочу измерить время обработки части моего кода, и я использовал функцию timeit для этой цели. Однако он возвращает IndentationError изнутри функции timeit.

Вот мой код;


for stem, result in zip(stem_dirs, result_dirs):

        code_to_measure = '''
        print(stem, '\n', result)
        subprocess.call(['python', './a.py', "--dir_in", stem, "--dir_out", result])
        '''

        proccess_time = timeit.timeit(code_to_measure)
        print(proccess_time)

Вот ошибка, которую я получаю;

Traceback (most recent call last):
  File "code_test.py", line 115, in <module>
    proccess_time = timeit.timeit(code_to_measure)
  File "/usr/local/lib/python3.6/timeit.py", line 233, in timeit
    return Timer(stmt, setup, timer, globals).timeit(number)
  File "/usr/local/lib/python3.6/timeit.py", line 123, in __init__
    compile(stmtprefix + stmt, dummy_src_name, "exec")
  File "<timeit-src>", line 3
    print(stem, '
    ^
IndentationError: unexpected indent




Однако функция timeit в приведенном ниже коде по-прежнему работает правильно;


# importing the required module 
import timeit 

# code snippet to be executed only once 
mysetup = "from math import sqrt"

# code snippet whose execution time is to be measured 
mycode = ''' 
def example(): 
    mylist = [] 
    for x in range(100): 
        mylist.append(sqrt(x)) 
'''

# timeit statement 
print(timeit.timeit(setup = mysetup, 
                    stmt = mycode, 
                    number = 10000)) 

Вот вывод кода;

0.002189640999858966

Я не слишком уверен, как решить проблему. Пожалуйста, сообщите мне, если у вас есть какие-либо предложения или решения по этому вопросу.

Большое спасибо заранее.

1 Ответ

0 голосов
/ 04 ноября 2019

Два способа выполнения отступа - использовать пробелы (стандартная норма - использовать 4 пробела для отступа одного уровня) или использовать вкладки. Убедитесь, что вы не смешиваете их. Придерживайтесь одного из них.

Возможно, я смогу помочь вам больше, точно объяснив, в чем проблема, если вы сможете поделиться своим кодом со мной в виде файла .py.

...