Я думаю, что этот вид вопроса совершенно соответствует форуму, особенно если бы легкое решение может быть найдено, как сохранил бы часы других боли.
, К сожалению, я не имею решения, но предложил бы (если Вы уже не имеете)
Выполнение FileMon, чтобы видеть, ищет ли установщик определенные файлы, которые больше не являются там - это может дать некоторый ключ к разгадке.
Болезненный, но попытка, удаляющая другие приложения, основанные на оболочке VS (например, 2005) сначала.
Я уверен, что версия , а
работает медленнее. Python должен будет искать операцию добавления для целочисленного объекта на каждом повороте цикла и т. Д., Это не чистый C только потому, что он выглядит так!
И если вам нужна питоническая версия точно указанного выше, используйте:
print " ".join(str(i) for i in xrange(10))
Edit: Мои тайминги выглядят так. Это просто глупый цикл без печати, просто чтобы показать вам, сколько стоит написание «i + = 1» и т. Д. В Python.
$ python -mtimeit "i=0" "while i < 1000: i+=1"
1000 loops, best of 3: 303 usec per loop
$ python -mtimeit "for i in xrange(1000): pass"
10000 loops, best of 3: 120 usec per loop
Какая разница? Шутки в сторону. Если вы хотите знать, используйте пакет timeit (вы можете вызвать его из командной строки с помощью -m).
Но это не имеет никакого значения, потому что разница незначительна. И вообще, Python - это не тот язык, который вы выбираете, если хотите скорости.
Первый.
Вы имеете в виду, быстрее развиваться, не так ли?
PS: Это не так. Дело в том, что в наши дни машины настолько быстры, что бессмысленно размышлять над микрооптимизациями до выявления узких мест с помощью тщательного профилировщика.
Если ваша программа слишком медленная, попробуйте использовать psyco .
Не беспокойтесь о типе микрооптимизации в вашем вопросе. Напишите вашу программу так, чтобы ее можно было сопровождать (включая следующий стандартный стиль Python, чтобы другие программисты могли ее легче читать).
Они оба , чтобы избежать: -)
В общем, каждый когда я вижу итерацию по числам, я вижу некоторый непифонический код, который можно было бы лучше выразить с помощью итераций по спискам или генераторам.
На самом деле я сказал «питонический», но все дело в читабельности . Использование идиоматического кода повысит удобочитаемость и, в конечном итоге, производительность, поскольку компилятор лучше знает, как его оптимизировать.
Что ж, если вам нужна эффективность в числовом коде, вам следует использовать numpy и scipy . Интеграцию можно быстро записать как numpy.sum (numpy.arange (10))
В Python более короткая и ясная версия всегда лучше. Если я не ошибаюсь, функции range и xrange не являются родными, если вы попробуете xrange (sys.maxint + 1), вы получите ошибку переполнения.
Кроме того, для чего, черт возьми, это может быть полезно? Если вы просто печатаете 10 чисел, то, несомненно, удобочитаемость в тысячу раз больше - и я не думаю, что вы собираетесь печатать более миллиона чисел ...