проанализируй как я сломался python - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в Python. Сказав это, я удивлен, что мне удалось взломать sh мой код, взяв раздел и поместив его на некоторое время l oop. Ошибка возникает как в Windows, так и в Linux. В обоих случаях не сообщается об ошибке, код просто останавливается. Диспетчер задач windows указывает на очень высокое энергопотребление (красным), а объем используемой памяти медленно увеличивается (у меня много). Код в предложении while добавляет небольшое текстовое поле к графике c. В приведенном ниже фрагменте кода это предложение while docline. когда docline = False, код выполняется нормально. Предыдущая версия, в которой код «while claused» был просто встроенным, выполняется нормально. Я подозреваю, что это изменение просто обнаруживает некоторый предыдущий недостаток в моем коде, который проявляется только с этим небольшим изменением. Я понятия не имею, как его найти; таким образом, этот запрос. Фрагмент кода, создающего обломки, показан ниже. Я думаю, что мой вопрос о том, какие инструменты помогут найти недостаток.

    ax1.plot(vals2[0],vals2[3],'-.', label=\
             str(roll_l)+' days rolling')
    if gspc_ref==True:
        t=datetime.strptime(ref_date, '%Y-%m-%d')
        date1=t.strftime("%m/%d/%y")
        slimy=fig.axes[0].get_ylim()
        v=np.where((vals2[0] >= ref_date)==True)[0][0]
        ax1.plot([vals2[0][v],vals2[0][v]],\
                 [slimy[0],slimy[1]],'-',c='lightblue',\
                     lw=6,zorder=1,alpha=0.33)
        while docline:
            minloc=np.argmin(abs(vals2[0]-t))
            cline=(vals2[1][-1]/vals2[1][minloc])*100
            textb='RelVal='+f'{cline:.0f}%'
            Afont = {'family': 'serif',\
                     'backgroundcolor': 'lightblue',\
                     'color':  'red','weight': 'bold','size': 6,}
            at2 = AnchoredText(textb,
                       loc='lower left', prop=Afont,\
                           frameon=True,
                       bbox_to_anchor=(-0.04, 1.),
                       bbox_transform=ax1.transAxes
                       )
            at2.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
            ax1.add_artist(at2)
    ax1.set_xlabel('Date')
    ax1.set_ylabel('Close($)')
    ax1.legend()
    ax2.set_xlabel('Date')
    fig.autofmt_xdate()
    ax2.plot(self.beta, 'k', label=r'$\beta_{roll}$ - <100 day>')
...