即使在使用except和try之后也会出现意外的unindent

2024-04-19 03:07:29 发布

您现在位置:Python中文网/ 问答频道 /正文

意料之外的独裁者

for param in pdq:
    for param_seasonal in seasonal_pdq:
        try:
            mod = sm.tsa.statespace.SARIMAX(y,
                                            order=param,
                                            seasonal_order=param_seasonal,
                                            enforce_stationarity=False,
                                            enforce_invertibility=False)
            results = mod.fit()
print('ARIMA{}x{}12 - AIC:{}'.format(param, param_seasonal, results.aic))
        except:
            continue

Tags: inmodfalseforparamorderresultssm
2条回答

缩进表示代码块。使用缩进,Python将做出决策。在您的问题中,打印语句属于哪个块?试块还是除块?Python是如何做决定的?所以它是抛出错误。要解决这个问题,print语句应该和try块中的其他语句具有相同的缩进,如下代码所示。你知道吗

for param in pdq:
    for param_seasonal in seasonal_pdq:
        try:
            mod = sm.tsa.statespace.SARIMAX(y,
                                            order=param,
                                            seasonal_order=param_seasonal,
                                            enforce_stationarity=False,
                                            enforce_invertibility=False)
            results = mod.fit()
            print('ARIMA{}x{}12 - AIC:{}'.format(param, param_seasonal, results.aic))
        except:
            continue

您需要将print与命令try:的缩进相同

例如:

for param in pdq:
    for param_seasonal in seasonal_pdq:
        try:
            mod = sm.tsa.statespace.SARIMAX(y,
                                            order=param,
                                            seasonal_order=param_seasonal,
                                            enforce_stationarity=False,
                                            enforce_invertibility=False)
            results = mod.fit()
            print('ARIMA{}x{}12 - AIC:{}'.format(param, param_seasonal, results.aic))
        except:
            continue

相关问题 更多 >