Posts Tagged ‘Python’
Python на Windows 7 (і можливо інших версіях)
Тут трішки розповім про установку і налаштування Python під цю досить поширену систему, може аудиторія мого блогу і користувачів моїх скриптів трішки розшириться. Ну й аби запам’ятати до наступного разу, хто зна, може ще колись знадобиться. Про cygwin не розповідатиму, там все занадто просто для мене, і напевне надто складно для тих хто ще не пройшов курс “Shell-fu” на Memrise.
Перше що потрібно знати – на системі якої розрядності ми сидимо. Для цього натискаємо меню пуск, знаходимо пункт “Computer”, правий клік в контекстне меню, вибираємо пункт “Properties”. Або контекстне меню каталогу “Computer” де б ви його не знайшли. Відкривається вікно з адресою "Control Panel\All Control Panel Items\System". Також можна цю адресу в провіднику ввести. Якщо в цьому вікні написано:
System type: 64 bit Operating System
Значить ми 64 розрядні. В 32-розрядних певне буде написано про те що вона 32 розрядна.
Далі на офіційному сайті знаходимо файлик “Python 3.3.2 Windows X86-64 MSI Installer” (чи яка там версія для вас більше підходить), качаємо, запускаємо. З цього місця можете перервати читання цієї інструкції і поринути в Python 3 на один розділ. Після того повертайтесь сюди, то ще не все.
Далі нам потрібно перейти в командну оболонку. Натискаємо Win+R, в вікні що виринає набираємо cmd і натискаємо Enter. Запуститься огидний термінал який використовує кодову сторінку 866. І це на хваленому Windows 7! Але ми цю проблему відкладемо на потім, спершу перевіримо чи python запускається. Пишемо команду “python”, і якщо все ок, то ми повинні побачити таке привітання:
Прочитати решту цієї замітки »
Що нового?
Нове робоче місце, нове місто проживання, нове оточення, нова ОС Windows 7, все нове. Нарешті я познайомлюсь з новим Windows, і навчусь розробляти на Python для цієї ОС. Хоча, шкода що якщо гуглити “how to migrate from Ubuntu to Windows 7″, знаходяться переважно інструкції як зробити прямо протилежне. Потрохи освоюю Microsoft Outlook. OMG!
Python на Windows – ще те жахіття (тепер я розумію чому мало хто з користувачів Windows використовує мої програмки), але виявляється така штука як Cygwin – досить помічна. Принаймі дуже й дуже згладжує болі переходу на Windows поки що. Там є менеджер пакетів, який називається setup.exe, і серед пакетів є як Python 2.7, так і Python3.2, а також відповідні setuptools.
Прочитати решту цієї замітки »
Як вгадати стать людини по її ЄДРПОУ?
Я потрохи ходжу на співбесіди, переписуюсь з HR-менеджерами, осягаю таке кунг-фу як протокол дескрипторів та деякі інші речі (ви наприклад знали що в Python є спеціальний метод “правий лівий зсув“?
). А ще звісно пакую сумки, але поміж тим вирішив опублікувати ще одну чернетку яку створив був коли розбирався в тому що таке ЄДРПОУ і чим воно відрізняється від ідентифікаційного коду.
То як же вгадати стать? Тут застосовується нескладна магія чисел. Виявляється, що якщо передостання цифра вашого ідентифікаційного коду (якщо ви фізична особа там має бути десять цифр), парна, значить ви жінка.
Що ще цікавіше, за ЄДРПОУ можна вгадати дату народження. Для цього треба взяти п’ять перших цифр, і вони покажуть яким за номером днем, якщо рахувати від 1 січня 1900 був день вашого народження. Тому, пані які приховують свій вік також повинні приховувати й свій ідентифікаційний код. А всі хто народились в XIX столітті чи раніше – взагалі мають від’ємний ідентифікаційний код.
Вручну рахувати звісно трохи заморочливо, я для розваги був це собі заскриптував:
from datetime import date, timedelta
def print_info(code):
code = str(code)
if len(code) != 10:
print('Ідентифікаційний номер складається з десяти цифр!')
return
birth = date(1899, 12, 31) + timedelta(days=int(code[:5]))
print('Дата народження: %s' % birth.isoformat())
sex = 'жіноча' if (int(code[8]) % 2 == 0) else 'чоловіча'
print('Стать: %s' % sex)
if __name__=='__main__':
print_info(3308506414)
Презентація в стилі Python (і в файлі .py)
Мій блог дуже часто знаходять за запитом “Як робити презентації?”, і судячи з середньої оцінки для тої публікації, вона сильно не задовольняє більшість читачів. Тому зараз я поділюсь ще одним, теж досить екстравагантним способом створювати презентації, який повинен сподобатись лише людям що чули слово PyCon.
Дізнався я цей спосіб, бо щойно подивився доповідь Петера Інґлесбі Discovering Descriptors на EuroPython 2012. Доповідь класна, я трішки просвітився щодо дескрипторів, хоча звісно варто почитати і покодити ще.
Окрім самого змісту доповіді мене зацікавило оформлення. Все відбувається в інтерактивній оболонці. Коли автору потрібно показати якийсь список – цей список з’являється як рядки з коментарями. Тобто доповідач говорить, а в інтерактивній оболонці з’являється то код (який одразу й виконується), то коментарі до доповіді (аби доповідач не пропустив якогось важливого питання)…
Я пошукав – вся презентація вміщається в один текстовий файл. Звичайно є мінуси порівняно з офісними програмами для створення презентації, наприклад відсутність можливості додати в неї зображення, але можна при потребі трішки подумати, написати функцію яка відкриватиме й показуватиме на екрані зображення, а потім вставляти її виклики в потрібні місця коду презентації (він ж бо виконується).
Тому коли я наступного разу робитиму якусь доповідь про мову Python, робитиму її саме в такому форматі. Раніше я робив в HTML з Slippy, але це аж надто марудно…
Якщо ви теж хочете таку презентацію показати – все робиться просто і швидко:
sudo pip-3.2 install prescons python3 -m prescons presentation.py
В мене правда були проблеми з запуском, але я вже зробив pull request, автор скрипта в курсі, тому у вас проблем виникнути не повинно.
Коли презентація запущена, пробіл показує наступний рядок, Ctrl+C – перемикає режим з показу рядків файлу на інтерактивний ввід та назад… Ctrl+D – завершення роботи.
Як знаки прояву вдячності за цю пораду, я приймаю посилання на відео ваших цікавих доповідей.
Або як крутіший варіант – зробіть хтось так аби там був bpython, а не звичайний інтерпретатор…
Як в Linux завантажувати аудіо з списків відтворення vk.com?
Зазвичай я не використовував ніяких лишніх інструментів для того аби качати аудіо з вконтакту, бо всі інструменти вже є в лінуксі, досить лише зберегти плейліст в файл audio.html, та виконати:
wget -c `grep https://.*mp3 -o audio.html`
Але тоді каталог заповнюється файлами виду 7b6e2b1e3f81.mp3 і хоча й більшість mp3 плеєрів читають їх теги і нормально керують колекцією музики, все одно важко наприклад чистити каталоги від зайвих, чи копіювати потрібну музику за маскою. Тому я вирішив написати трішки кращий фільтр ніж grep.
Для його використання потрібно вже дві команди:
wget -O list.py https://bunykprogs.googlecode.com/hg/vk_downloader.py python3 list.py audio.html | sh
Але результат повинен виправдати зусилля. Перший рядочок – “інсталяція” додаткового скрипта, другий – його виконання. Щоб все працювало, ви повинні мати wget, python3 та lxml для python3.


