Странно, но при мен за fizzbuzz_string изкарва следното:
Time for fizzbuzz_string.py 48.4531008469, ползвам 3.1.1
"Може би отговорът се крие тук": http://bugs.python.org/issue1569040 .
Можете да ги разгледате тук или да свалите като zip тук
Ще е много интересно ако някой успее да напише по-бърза версия, макар че подчертаваме, че това е само упражнение, не е правилна практика.
Ето и резултатите от бенчмарка до момента:
Time for fizzbuzz_list.py 3.90060210228
Time for fizzbuzz_multiply.py 6.39353108406
Time for fizzbuzz_nested.py 4.25060296059
Time for fizzbuzz_nested2.py 4.29967594147
Time for fizzbuzz_raganwald.py 11.5282979012
Time for fizzbuzz_short.py 6.82139897346
Time for fizzbuzz_string.py 3.7199280262
Time for fizzbuzz_wtf.py 6.84651112556
Въх, откъде дойте fizzbuzz_wtf-то? :)
В интернет го намерих. За четвъртък ще пробвам да направя деконструкция нa WTF решението.
Странно, но при мен за fizzbuzz_string изкарва следното:
Time for fizzbuzz_string.py 48.4531008469, ползвам 3.1.1
"Може би отговорът се крие тук": http://bugs.python.org/issue1569040 .
Както говорихме на събирането: Кода на самата функция
Тестовете:
Резултати:
Time for a 0.828050746517
Time for b 1.0322462313
Time for c 1.08425644088
Time for d 1.16429858613
Time for e 2.99891186095
Time for f 29.1933835363
Time for g 2.02487509062
(това са от втория, но съвпадат с тези от първия)
От мързел имената са такива. Версия на Python 3.1.1
Времената са средни за едно изпълнение, докато вашите са за 3. Грубо и не спрециално, но се оказа че при мен работи по бързо. Вероятно защото няма if-ове и операциите със стрингове са сравнително малко.