31 заметок с тегомРазное

Эгея досвидания

Эгея досвидания

У Бирмана крутой движок, респект ему и уважуха. Но!

Я люблю Python, Django и Яблоки

...и держать пых с мускулом ради одного творения, как-то уже порядком надоело. Хотя... от Эгеи кое-что стырил. Прижилось оно в некоторых местах. Ах, да! Ещё китайцев люблю. Только, это уже совсем другя история:)

Разное

Developers, developers, developers!

Developers, developers, developers

Hey, people!:)

В прект срочно нннадо энное количество боевых единиц, базирующихся на территории города Северодвинска.

Web-дизайнер / UI-дизайнер / Графический дизайнер - это раз.
Front-End Developer / Верстальщик - это два.
Back-End Developer - это три.

Стрелять на мыльный телеграф iam@dmitriydef.ru по наводке: PS, Ill, HTML, CSS, AngularJS, REST, Django, Python, PostgreSQL.

з.ы. офис, график свободный

Разное

Python разработчик, Яндекс

Python разработчик, Яндекс

Поиграемся немного с тестовым заданием на вакансию пайтон девелопера от Яндекса. Молча. Без комментов в коде:))))

Есть два списка разной длины. В первом содержатся ключи, а во втором значения. Напишите функцию, которая создаёт из этих ключей и значений словарь. Если ключу не хватило значения, в словаре должно быть значение None. Значения, которым не хватило ключей, нужно игнорировать.

def abc(a, b):
    if len(a) > len(b):
        c = map(None, a, b)
    else:
        c = zip(a, b)
    return dict(c)

a = [x for x in range(1, 10)]
b = [x for x in range(1, 20)]

print abc(a, b), '\n', abc(b, a)

В системе авторизации есть ограничение: логин должен начинаться с латинской буквы, состоять из латинских букв, цифр, точки и минуса, но заканчиваться только латинской буквой или цифрой; минимальная длина логина — один символ, максимальная — 20. Напишите код, проверяющий соответствие входной строки этому правилу. Придумайте несколько способов решения задачи и сравните их.

import re, time

def valid_one(login):
    t = time.time()
    if re.match('^[a-zA-Z][a-zA-Z0-9\-\.]{0,19}(?<![\-\.])$', login):
        rez = 'valid'
    else:
        rez = 'unvalid'
    return rez, '%f sec.' % (time.time()-t)

def valid_two(login):
    t = time.time()
    if 1 <= len(login) <= 20 and login[0].isalpha() and (login[-1].isalpha() or login[-1].isdigit()):
        rez = 'valid'
        for go in login[1:-1]:
            if not go.isalpha() and not go.isdigit() and go != '-' and go != '.':
                rez = 'unvalid'
                break
    else:
        rez = 'unvalid'
    return rez, '%f sec.' % (time.time()-t)


while True:
    login = raw_input ("login:")

    print 'Valid_one:', valid_one(login)
    print 'Valid_two:', valid_two(login)

Есть две таблицы — users и messages:

users
UID Name
1 Платон Щукин
2 Лера Страза
3 Георгий Атласов

messages
UID msg
1 "Привет, Платон!"
3 "Срочно пришли карту."
3 "Жду на углу Невского и Тверской."
1 "Это снова я, пиши чаще"

Напишите SQL-запрос, результатом которого будет таблица из двух полей: «Имя пользователя» и «Общее количество сообщений».

SELECT name, count(*) AS cnt INTO CountMessages FROM users JOIN messages ON users.uid = messages.uid GROUP BY users.uid;

Предположим, у нас есть access.log веб-сервера. Как с помощью стандартных консольных средств найти десять IP-адресов, от которых было больше всего запросов?

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' access.log | sort | uniq -c | sort -rn | head -n 10 | sed -E 's/^ *[0-9]+ //g'

А как сделать это с помощью скрипта на Python?

import re
from collections import Counter

f = open('access.log')
data = re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}', f.read())
f.close()
for ip in Counter(data).most_common(10):
    print ip[0]

Разное

страница 1 из 7 следующая