2015-05-23 2 views
-1

enter image description here Я разработал два алгоритма для решения задачи 1 проекта Euler, и я пытался определить, какой из них быстрее. Поэтому я решил импортировать модуль времени, основываясь на одном из предложений на этом сайте. Время работы составляет около 1000 секунд. Но я по-прежнему хотел бы увидеть как минимум 5 цифр времени работы после десятичной точки. Поэтому я пробовал различные методы форматирования, такие как round(), repr(), str() (затем я нарезаю строку), я попытался использовать модификаторы формата, но ничего не работает. Я даже приложил свой код для хорошей меры. Пожалуйста, предложите модификацию, которая поможет мне!Форматирование вывода

import time 
start_time = time.time() 

check1 = True 
x = 0 
sum = 0 

while check1: 
    x += 3 
    sum += x 
    if x >=1000: 
     check1 = False 

y = 0 

check2 = True 

while check2: 
    y += 5 
    if x % 3 != 0: 
     sum += y 
    if y >= 1000: 
     check2 = False 

print(sum) 
print(round(time.time() - start.time , 5)) 

Просто не против отступа, возможно, что-то пошло не так, когда я скопировал код! Я также добавил снимок экрана.

+0

Как говорит модуль времени, вы должны использовать модуль timeit для временного кода, а не модуля времени. – abarnert

+0

Да, но он предназначен для очень маленьких фрагментов кода. –

+3

Между тем, для «Я пробовал использовать модификаторы формата, но ничего не работает», пожалуйста, покажите нам, как вы пытались использовать модификаторы формата, и объясните, что он сделал неправильно. Вероятно, это правильный способ решить эту проблему, но мы не можем объяснить, что вы сделали неправильно, если не показываете нам, что вы сделали. – abarnert

ответ

1

Вы допустили ошибку в применении string formatting. Попробуйте следующее:

print('The running time is %.5f'%(time.time()-start_time)) 
+0

Удивительно! Так что это была просто синтаксическая ошибка. Благодаря тонну!!! –

Смежные вопросы