Блог им. WLMike

Начал изучать Python

Прочитал книжку Think Python: How to Think Like a Computer Scientist — очень понравилась: вместо сухого изложения с самого начала рассматриваются маленькие программы, которые в последующих главах дорабатываются с учетом более продвинутых концепций языка. Почти в каждой главе даются подходы, которые применяются при разработке и отладке больших по объёму программ. Даны основы data science — быстродействие различных структур данных, как организована их работа под капотом и т.д.

До прочтения написал программу строк на 200 про отслеживание диеты, которая представляла мало понятный кусок кода. После прочтения книги переписал в 100 строк.

Автор понравился, поэтому на очереди Think Complexity: Complexity Science and Computational Modeling. По планам к январю хочу поднабраться знаний и приступить к автоматизации торговой системы на  Python.

★10
А есть та же книжка только на русском?
Андрей Андреичъ, не знаю — читаю преимущественно на английском. 
avatar

Михаил

Михаил, торговля на Питоне никакая. Нет стабильности в их библиотеках, и нет ничего готового.

А вот крутить вертеть графики и отчеты одно удовольствие.
avatar

Евгений

Евгений, мне для статобработки данных — торговать буду руками. 
avatar

Михаил

Евгений, есть виртуальное окружение. кто мешает его использовать? Торговля на питоне вполне возможна, хотя тут больше зависит от брокера. Писать связки питон + C# можно, но это геморно да и зачастую просто смысла лишено. 
avatar

Alex Hurko

Ну, и как, по мнению автора питон помогает думать как «computer scientist»? Ведь он именно то задекларировал?
До прочтения написал программу строк на 200 про отслеживание диеты, которая представляла мало понятный кусок кода. После прочтения книги переписал в 100 строк.

А это ведь не показатель. Зачастую модульность наоборот требует больше кода, из-за необходимости декомпозиции.

Вообще, если нравится лаконичность, взгляните сюда:
iolanguage.org/

Практически любую программу на питоне можно сократить раза в 2 минимум:)

Вот пример с википедии

[code]
from abc import ABCMeta, abstractmethod

class Observer(metaclass=ABCMeta):
    """
    Абстрактный наблюдатель
    """

    @abstractmethod
    def update(self, message: str) -> None:
        """
        Получение нового сообщения
        """
        pass

class Observable(metaclass=ABCMeta):
    """
    Абстрактный наблюдаемый
    """

    def __init__(self) -> None:
        """
        Constructor.
        """
        self.observers = []     # инициализация списка наблюдателей

    def register(self, observer: Observer) -> None:
        """
        Регистрация нового наблюдателя на подписку
        """
        self.observers.append(observer)

    def notify_observers(self, message: str) -> None:
        """
        Передача сообщения всем наблюдателям, подписанным на события
        данного объекта наблюдаемого класса
        """
        for observer in self.observers:
            observer.update(message)

class Newspaper(Observable):
    """
    Газета, за новостями в которой следят тысячи людей
    """

    def add_news(self, news: str) -> None:
        """
        Выпуск очередной новости
        """
        self.notify_observers(news)

class Citizen(Observer):
    """
    Обычный гражданин, который любит читнуть с утра любимую газетку
    """

    def __init__(self, name: str) -> None:
        """
        Constructor.

        :param name: имя гражданина, чтоб не спутать его с кем-то другим
        """
        self.name = name

    def update(self, message: str) -> None:
        """
        Получение очередной новости
        """
        print('{} узнал следующее: {}'.format(self.name, message))

if __name__ == '__main__':
    newspaper = Newspaper()                 # создаем небольшую газету
    newspaper.register(Citizen('Иван'))     # добавляем двух человек, которые
    newspaper.register(Citizen('Василий'))  # ... ее регулярно выписывают
    # ... и вбрасываем очередную газетную утку
    newspaper.add_news('Наблюдатель - поведенческий шаблон проектирования')

'''
Иван узнал следующее: Наблюдатель - поведенческий шаблон проектирования
Василий узнал следующее: Наблюдатель - поведенческий шаблон проектирования

[/code]

[code]
Observer := Object clone

Observable := List clone do(
   register := getSlot("push")
   notify := method(message, self foreach(observer, observer update(message)))
)
Newspaper := Observable clone do( addNews := method(news, notify(news)))

Citizen := Observer clone do(
   create := method(name, self clone lexicalDo(name := name))
   update := method(message, writeln( name .. " узнал следующее: " .. message))
)

newspaper := Newspaper clone

newspaper do(
   register(Citizen create("Иван"))
   register(Citizen create("Василий"))
   addNews("Наблюдатель - поведенческий шаблон проектирования")
)

#>>>> Иван узнал следующее: Наблюдатель - поведенческий шаблон проектирования
#>>>> Василий узнал следующее: Наблюдатель - поведенческий шаблон проектирования

[/code]
avatar

sortarray sortarray

sortarray sortarray, python как-то особо не помогает думать как computer scientist. Скорее книга о том, как стоит подходить к написанию программ, на примере питона, что на самом деле стоит за некоторыми языковыми конструкциями. Книжка начального уровня и не претендует на какое-то всеобъемлющее изложение, но мне она понравилась своим подходом и позволила переписать маленькую программу более кратко и самое главное более понятно.

avatar

Михаил

А конечная цель какая? Стать data scientist или роботы? Или для души? Спрашиваю потому, что тоже учил, но в РФ куча всего на си Шарп.
avatar

shprots

shprots, у меня есть неспешная инвестиционная стратегия на базе Excel, которая по существу сводится к статанализу данных. Хочу, отчасти для души, переписать ее на Питоне и автоматизировать загрузку части данных. Нет задачи автоматизировать торговлю. Стратегия даёт сигналы на несколько процентов перетряхнуть портфель раз в месяц — это не сложно и руками сделать. 
avatar

Михаил

знания должны быть бесплатны (ENG):
https://rutracker.org/forum/viewtopic.php?t=5340980
avatar

vito2000

vito2000, не уверен. У авторов снижается мотивация чего-либо публиковать. Предпочитаю на Амазоне покупать. 
avatar

Михаил

питон лучший язык для начала изучения программироания, на западе это давно стандарт дефакто для обучения студентов. так же это фактический стандарт, для датсайнса, нейросеток и кучи другого ресеча. естественно микросекунды на нем не повертишь, но написать коннектор на C/C++ к нему много мозгов не надо. про стабильность выше вобще какую-то чушь написали, к языку программирования она никакого отношения не имеет, у вас что интерпретатор питона падает, лол?
avatar

vlad1024


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW