← All posts tagged Python

сегодня коллега упомянул что ему казалось что в пайтоне ключи в словаре хранятся отсортированно. Долго ломал голову — отчего так получается, ведь хештейбл и по хешу с маской определяется элемент со сложностью O(1) и долго пытался выдумать простой контрпример из словаря в котором ключами были простые инты. пока….. не вспонил что б***ть хешом инта является он сам! Так что простой контрпример — это for key in {(1<<8):1, (1<<7):2}: print key

сегодня увидел офигенный вопрос для собеседования веб-программистов и вообще кого-либо связанного с вебом =) Вопрос такой: "Пользователь набирает в адресной строке браузера www.foo.net <foo.net> и нажимает Enter. Что происходит потом? Опишите процесс настолько точно насколько считаете нужным, а потом мы возможноуглубимся в какие-то части этого процесса" via stackoverflow.com (c) Alex Martelli

заимел Джангобук на русском. Цена вопроса — порядка килорубля. =) До сих пор не прочитал оригинал только потому что он на сайте в неудобном формате (хотя кто мне мешал хттпраком все высосать и читать с нетбука в метро?) Но в общем довольный. Комментарии научн. редакции на удивление логичны. =)

Случился питон головного мозга. Пишу на похапе
if (хуё-моё)
строка1;
cтрока2;

И удивляюсь — почему же строка 2 все время исполняется не зависимо от хуё-моё =)

Похоже что питоновский курсез не дружит с utf-8 ну или я не знаю. нажатие кнопки вниз вместо KEY_DOWN(ord == 258) запихивает мне в переменную поочередно 27,91,66. Any suggestions?

все-таки что мне не нравится в pyhton что есть в перл — так это то что в перле не нужно расставлять скобки, чтобы передать в функцию аргументы =) уж очень лениво мне их ставить ))))

Давно собирался написать маленький скрипт, показывающий что пародокс Монти Холла работает. ru.wikipedia.org Собственно написал =)

$ cat paradox.py
#!/usr/bin/python

import random

r = random.Random()
r.seed()

hit, miss = 0, 0

for dummy in xrange(0,1000):
doors = dict([[1,0],[2,0],[3,0]])

car = r.randint(1,3)
doors[car] = 1

choice = r.randint(1,3)

for door in doors:
if door!=choice and doors[door] == 0:
del doors[door]
break
del doors[choice]
if car in doors:
hit+=1
else:
miss+=1

print "%s hits\n%s misses" % (hit, miss)

$ python paradox.py
661 hits
339 misses

Накидано за 15 минут, вроде читаемо =))