Задать вопрос
  • Как создавать связанный текст из данных на питон?

    Перво-наперво надо остановиться и не изобретать велосипед из костылей, а ознакомиться с уже сделанным другими людьми; затем надо понять, интересно ли вам что-то из сделанного другими людьми, и если интересно - примкнуть к ним; если считаете, что можете сделать лучше, только тогда начинайте делать по-своему.
    Судя по вопросу, вы не пробовали ничего из сказанного.
  • Python + aiogram почему у меня не скачивать фото?

    phaggi
    @phaggi Куратор тега Python
    Очень рекомендую для работы с путями использовать pathlib.Path - создаёт удобные объекты, которые стыкуются через / и обладают множеством удобных методов и атрибутов.
  • Python + aiogram почему у меня не скачивать фото?

    phaggi
    @phaggi Куратор тега Python
    Здесь запрещено выкладывать код в виде скриншотов. См.п.3.8 правил. Настоятельно рекомендую во всех случаях, когда вы выкладываете информацию, которую можно отобразить в виде текста, выкладывать её текстом.
  • Как решить задачу?

    phaggi
    @phaggi Куратор тега Python
    Эээ… по-моему, это не функция. Это винегрет с колбасой.

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

    Я бы рекомендовал вам рефакторить это и прийти с читаемым кодом, без вот этих клонов х и каунтеров а…
    Не, возможно, найдутся любители разобраться. Но если вы переработаете, будет и проще искать ошибки, и шансы найти отвечающего существенно вырастут.
  • Как боту telegram предоставить доступ к Google Sheets?

    phaggi
    @phaggi Куратор тега Python
    Arkadyu_bot, так исправь вопрос таким образом, чтобы не выглядело как заказ «сделайте мне красиво».
  • Где лучше купить аккумулятор на Macbook? Оригинальные вообще можно встретить?

    Вздулся левый аккум, который ставили в типа сервисе; аккум блокировал тачпад. Заменил сам аккум, 3 месяца полёт нормальный. Уверенности нет, за уверенность платить надо.
    Если недорого - поищи parts direct, большой выбор и относительно недорого. Ясно, что это китай-китай, но альтернатива - полцены ноута. Я не готов.
  • Как правильно настроить бот на python?

    phaggi
    @phaggi Куратор тега Python
    Liza_Lob, надо обернуть код тегом code для корректного отображения.
    Очень рекомендую прочесть правила ресурса.
  • Как в Python Datetime сделать так, чтобы менялся год и месяц?

    phaggi
    @phaggi Куратор тега Python
    Мне кажется, timedelta должна помочь. Поищите.
  • Как получить данне с сайта с помощью BeautifulSoup?

    phaggi
    @phaggi Куратор тега Python
    Василий Шешунов, у меня 38.9, ща я накомментирую :) ковид поймал… чуть приду в себя, добавлю комменты.
  • Что это за ошибка при загрузке пдф?

    Ruslan Mordovanech, извини, брат, меня накрыл омикрон :/ 38.2 :/ мозг тупит сильнее обычного. До выздоровления. Береги себя и окружающих.
  • Что это за ошибка при загрузке пдф?

    Ruslan Mordovanech,
    PDF = f'file:///file:///blank-f-119.pdf'
    это точно должно быть так? Выглядит как ошибка.
  • Что это за ошибка при загрузке пдф?

    Ruslan Mordovanech, стопудово это сообщение, переданное от модуля, который взаимодействует на относительно низком уровне с системой, о том, что он не может в системе совершить действие, так как ему не хватает прав в системе.
  • Что это за ошибка при загрузке пдф?

    Ruslan Mordovanech, это же не вся ошибка? Приведите полный traceback
  • Что это за ошибка при загрузке пдф?

    Permission denied означает «недостаточно прав». Вопрос явно где-то вне python, где-то в области прав системы windows.
  • Логика столкновения kivy python?

    phaggi
    @phaggi Куратор тега Python
    У птицы вы сделали метод delete_birds. И сделали метод bird, который чего-то делает (рисует анимацию?), а в конце дергает метод delete.
    Т.е. формально у вас объект сначала рисуется, анимируется а потом проверяется на необходимость удаления.
    Тут сразу несколько вопросов:
    • А метод удаления сам по себе тестировали? Он корректно работает?
    • А в методе bird что происходит? Рекомендую переименовать метод так, чтобы было понятно, что он делает. И потестировать и убедиться, что он это таки делает. И всё, что к этому не относится, из метода убрать.

    И хорошо бы показать, как вы создаёте объект класса и что и как с ним потом делается.
  • Что делать если в python не работает match case?

    phaggi
    @phaggi Куратор тега Python
    Что делать? Читать документацию.
    См.п.3.1, 3.8
  • Как получить данне с сайта с помощью BeautifulSoup?

    phaggi
    @phaggi Куратор тега Python
    Василий Шешунов, я тут потыкался, не знаю, то ли вам надо, но вот что натыкал:
    Тык-тык
    data = '''<div class="catalog-grid catalog-grid_unpadding-mobile catalog-grid_by3 rightside ">
                    <div class="catalog-grid__item"><article class="product-snippet"itemscope itemprop="itemListElement" itemtype="http://schema.org/Product" >
        <button class="product-snippet__favorite product-card__favorite product-card__favorite"
                data-id="124852">
    
            <span>
    <svg width="24" height="24">
        <use xlink:href="/static/local/assets/sprite.svg?v=4#heart"></use>
    </svg>
    </span>        <span class="product-card__favorite_bin">
    <svg width="24" height="24">
        <use xlink:href="/static/local/assets/sprite.svg?v=4#bin"></use>
    </svg>
    </span>    </button>
    
        <!-- TOP PART -->
        <div class="product-snippet__top">
    
            <div class="product-snippet__right">
                <meta itemprop="sku" content="124852">                            <span itemprop="brand" itemscope itemtype="http://schema.org/Brand">
                        <meta itemprop="name" content="Colterenzio">                </span>
    
                <!-- ID -->
                <div class="product-snippet__id" data-value-group-id="132655"
                     data-value-id="108038">
                    <span>Артикул:</span>
                    124852            </div>
                <!-- #ID -->
                <!-- RATINGS -->
            <div class="product-snippet__ratings">
            <!-- STARS -->
                        <div class="product-snippet__ratings-item">
    
    <svg width="12" height="12">
        <use xlink:href="/static/local/assets/sprite.svg?v=4#star"></use>
    </svg>
                    <span>4.8</span>
                </div>
    
    
                    <!-- #STARS -->
    
            <!-- GREEN SELECTIONS -->
                    <!-- #GREEN SELECTIONS -->
    
    
                </div>
    <!-- #RATINGS -->
    
                <!-- NAME -->
                <a href="/catalog/product/colterenzio_pfefferer_2020_075/"
                   data-page="1"
                   data-value-group-id="132655"
                   data-value-id="108038"
                   class="product-snippet__name js-dy-slot-click">
                    Вино Pfefferer, Colterenzio, 2020&nbsp;г.            </a>
                <meta itemprop="name" content="Вино Pfefferer, Colterenzio, 2020&nbsp;г.">            <!-- #NAME -->
                                <!-- DESC -->
                    <div class="product-snippet__desc">
                        <a href="/catalog/vino/filter/country-italiya/">Италия</a>, <a href="/catalog/vino/filter/color-beloe/">белое</a>, <a href="/catalog/vino/filter/sugar_type-polusukhoe/">полусухое</a>, <a href="/catalog/vino/filter/volume-0_75/">0.75&nbsp;л.</a>                </div>
                    <!-- #DESC -->
                            <!-- DETAIL -->
                <div class="product-snippet__detail">
    
    
                                        <div class="tag-stock product-snippet__stock-part">
                            <div class="tag-stock__buy-price-sale-link">
                                <div class="tag-stock__icon-wrap">
                                    <span class="tag-stock__buy-price-sale-icon">
    <svg width="19" height="19">
        <use xlink:href="/static/local/assets/sprite.svg?v=4#sale"></use>
    </svg>
    </span>                                <div class="tag-stock__alert">
                                                                            <div class="tag-stock__alert-title">Вы обратились по адресу: у нас такого много</div>
                                        <p class="tag-stock__alert-descr">
                                                                                </p>
                                                                                <div class="tag-stock__alert-link-wrap">
                                                <a class="tag-stock__alert-link" href="/stock/vy-obratilis-po-adresu-u-nas-takogo-mnogo/"
                                                    >
                                                    Подробнее</a>
                                            </div>
                                                                        </div>
                                </div>
                                <span class="tag-stock__buy-price-sale-text">Участвует в акции</span>
                            </div>
                        </div>
    
    
                                        <!-- INFO -->
                        <div class="product-snippet__info">
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Страна:</span>
    
                                                                                                        <a href="/catalog/vino/filter/country-italiya/">Италия</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Цвет:</span>
    
                                                                                                        <a href="/catalog/vino/filter/color-beloe/">белое</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Сахар:</span>
    
                                                                                                        <a href="/catalog/vino/filter/sugar_type-polusukhoe/">полусухое</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Объем:</span>
    
                                                                                                        <a href="/catalog/vino/filter/volume-0_75/">0.75&nbsp;л.</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Виноград:</span>
    
                                                                    <a href="/catalog/vino/filter/grape-muskat_zheltyy/">мускат желтый 100%</a>                                                            </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Производитель:</span>
    
                                                                                                        <a href="/catalog/vino/filter/manufacturer-colterenzio/">Colterenzio</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Регион:</span>
    
                                                                                                        <a href="/catalog/vino/filter/region-trentino_alto_adidzhe/">Трентино-Альто Адидже</a>
                                                                </div>
                                                        <div class="product-snippet__info-item">
                                    <span class="product-snippet__info-title">Стилистика:</span>
    
                                                                                                        белое - яркое, из ароматических сортов винограда                                                            </div>
                                                </div>'''
    
    from bs4 import BeautifulSoup
    
    soup = BeautifulSoup(data, 'html5lib')
    product_data = soup.find(class_="product-snippet__info")
    
    title = []
    for number, item in enumerate(product_data):
        product_tds = item.find("a")
        if hasattr(product_tds, 'text'):
            title.append(product_tds.text)
    print(' '.join(title))

    Может, из этого что-нибудь будет полезное...
  • Pandas, Python. Есть отрывок кода индикатора RSI с использованием pandas, есть список, куда его притулить?

    mkone112, кстати, там где не поддерживается pathlib, порой срабатывает pathlib2. Так что костыль придумать можно… но да, это печально.
  • Pandas, Python. Есть отрывок кода индикатора RSI с использованием pandas, есть список, куда его притулить?

    mkone112, виноват - мне нравится Path своим механизмом, удобством и простотой; и я его стараюсь применять всюду; а в примерах на тостере ещё и для того, чтобы начинающие обратили на него внимание. Маленькая реклама :))
  • Pandas, Python. Есть отрывок кода индикатора RSI с использованием pandas, есть список, куда его притулить?

    Не вдаваясь в математику, набросал пример для работы с приведенной функцией. Не уверен, что оно выдает то, что ожидается, но что-то оно таки выдает.
    код примера

    import json
    
    import numpy as np
    import pandas as pd
    
    from pathlib import Path
    
    #  тут я формирую тестовый файл json со списком длиной 50
    n = 50
    list_for_json = [i for i in range(n)]
    my_json_file = Path('myjson.json')
    with open(my_json_file, 'w') as myfile:
        json.dump(fp=myfile, obj=list_for_json)
    
    #  тут открываю этот файл, создаю из него dataframe Pandas и именую колонку с данными 'close', 
    #  так как такое имя используется в приведенной вами функции.
    with open(my_json_file, 'r') as myfile:
        df = pd.read_json(myfile)
    df.rename(columns={0: 'close'}, inplace=True)
    print(df.head())
    
    #  собственно функция без изменений
    def rsi_tradingview(ohlc: pd.DataFrame, period: int = 14, round_rsi: bool = True):
        """ Implements the RSI indicator as defined by TradingView on March 15, 2021.
            The TradingView code is as follows:
            //@version=4
            study(title="Relative Strength Index", shorttitle="RSI", format=format.price, precision=2, resolution="")
            len = input(14, minval=1, title="Length")
            src = input(close, "Source", type = input.source)
            up = rma(max(change(src), 0), len)
            down = rma(-min(change(src), 0), len)
            rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
            plot(rsi, "RSI", color=#8E1599)
            band1 = hline(70, "Upper Band", color=#C0C0C0)
            band0 = hline(30, "Lower Band", color=#C0C0C0)
            fill(band1, band0, color=#9915FF, transp=90, title="Background")
        :param ohlc:
        :param period:
        :param round_rsi:
        :return: an array with the RSI indicator values
        """
    
        delta = ohlc["close"].diff()
    
        up = delta.copy()
        up[up < 0] = 0
        up = pd.Series.ewm(up, alpha=1/period).mean()
    
        down = delta.copy()
        down[down > 0] = 0
        down *= -1
        down = pd.Series.ewm(down, alpha=1/period).mean()
    
        rsi = np.where(up == 0, 0, np.where(down == 0, 100, 100 - (100 / (1 + up / down))))
    
        return np.round(rsi, 2) if round_rsi else rsi
    
    #  ну а дальше просто вызываю функцию и передаю в неё dataframe и печатаю, что она возвращает. #  Насколько это вменяемо внутри функции, не знаю.
    
    print(rsi_tradingview(ohlc=df))