dememax: (скука)
Если захотите поиграться с производительностью какого-нибудь кода на питоне прямо из командной строки, вот на примере из предыдущего поста:
$ python -m timeit -s 'a,b,c = "a", "b", "d"' '"%s%s%s" % (a, b, c)'
10000000 loops, best of 3: 0.153 usec per loop
$ python -m timeit -s 'a,b,c = "a", "b", "d"' 'a + b + c'
10000000 loops, best of 3: 0.0818 usec per loop
$ python -m timeit -s 'a,b,c = "a", "b", "d"' 'f"{a}{b}{c}"'
10000000 loops, best of 3: 0.0668 usec per loop
$ python -m timeit -s 'a,b,c = "a", "b", "d"' '"{}{}{}".format(a, b, c)'
1000000 loops, best of 3: 0.286 usec per loop
Модуль timeit входит в стандартную поставку питона.
Параметр -s позволяет задать начальные условия, которые будут использованы на каждой итерации.
P.S.: )
dememax: (сонливость)
Разговорился тут с одним человеком, для которого было забавно прочитать от меня "Ява" для обозначения языка программирования. По его мнению "ни один разработчик на джаве так никогда не скажет".

Я задумался... Ведь и во Франции люди не произносят это название на английский манер, получается "Жава" с характерным ударением на последний слог, естественно.

А как вы по-русски произносите названия языков программирования "Python"? "C++"? "PHP"?
Записываете ли вы их кириллицей, или исключительно латиницей?
dememax: (Hacker Emblem)
Блин, вляпался таки! Всеми лапками! Помните дети!
Эти значения - вычисляются и потом эти изменяемые значения продолжают передаваться в том же виде в последующих вызовах. Читаем The Python Language Reference / 8. Compound statements / 8.6. Function definitions:

Default parameter values are evaluated from left to right when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that the same “pre-computed” value is used for each call. This is especially important to understand when a default parameter is a mutable object, such as a list or a dictionary: if the function modifies the object (e.g. by appending an item to a list), the default value is in effect modified. This is generally not what was intended. A way around this is to use None as the default, and explicitly test for it in the body of the function, e.g.:

def whats_on_the_telly(penguin=None):
    if penguin is None:
        penguin = []
    penguin.append("property of the zoo")
    return penguin

ASCII Code Chart. Anomie, 29 August 2008

(Натолкнула на размышления вот эта строка из chrome/content/filterClasses.js проекта Adblock Plus. В POSIX API regcomp()/regexec() всё также работает, как и в JavaScript.)


Почему срабатывает следующее выражение?
> echo "a.b" | grep -E '[ -#]'
a.b
Ведь в ASCII и UTF-8 точка находится после диеза.
Поправить легко:
> echo "a.b" | LANG= grep -E '[ -#]'

Оказывается, это устойчивое поведение.
> touch 'a ' ; touch 'a!' ; touch 'a"' ; touch 'a#' ; touch 'a.' ; touch 'a,'
> ls
a   a,  a!  a.  a"  a#
> LANG= ls
a   a!  a"  a#  a,  a.


Братцы, как называется эта Collating sequence для этих знаков, отличная от ASCII/Unicode?

Update: http://www.collation-charts.org/ (Спасибо Яше!)

Введя в интерактивном режиме в питоне команду "import this", получаем:

Read more... )

Profile

dememax

May 2023

S M T W T F S
 123456
78910111213
14151617181920
21 2223 24252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 12th, 2025 02:30 pm
Powered by Dreamwidth Studios