Python 3, иначе вызывает синтаксическую ошибку - PullRequest
0 голосов
/ 11 мая 2018

Привет всем, поэтому у меня есть этот кусок кода в Python 3:

def spss_script_3tests (dictionary):
inv_test_dict = {v: k for k , v in dictionary.items()}
for i in excel_log_absent['Pupil\nID/Barcode ']:
    pupil_id=(i.split('-'))[2]
    test_no=(i.split('-'))[1]
    #index in spss data of pupil id
    spss_pid_index=spss_pupilid.index[spss_pupilid[('PupilID',)] == pupil_id].tolist()
    # if t1 name in spss = t1 number in excel using dictionary
    if (spss_pupilid[('T1name',)][spss_pid_index] == dictionary[test_no]).iloc[0]:
        print('if PupilID = ',"'",pupil_id,"'",' Attendlog1 = 1',sep='')
        print('if PupilID = ',"'",pupil_id,"'",' testnum1 = ',test_no,sep='')
    else:
        print('if PupilID = ',"'",pupil_id,"'",' Attendlog2 = 1',sep='')
        print('if PupilID = ',"'",pupil_id,"'",' testnum2 = ',inv_test_dict[spss_pupilid[('T2name',)][spss_pid_index[0]]],sep='')
    else:

много бесполезной информации, но последний else: отмечает синтаксическую ошибку, и я понятия не имею, почему. Насколько я знаю, все отступы должны быть записаны, каждый ( и [ учитывается, и оператор print там работает нормально, но условие (иначе, если, while) - нет.

Любая помощь будет очень оценена

1 Ответ

0 голосов
/ 11 мая 2018

У вас могут быть проблемы с идентификацией или просто вы не получите точку else. С помощью простого else все данные, которые не будут введены в ваш первый if, будут вводиться в другом.

Вы можете создать else if в python elif, ваш код должен выглядеть примерно так:

if expression1:
   statement(s)
elif expression2:
   statement(s)
else:
   statement(s)
...