Продолжайте получать неверную синтаксическую ошибку else / elif - PullRequest
0 голосов
/ 18 октября 2019

В настоящее время я пишу код, в котором я хочу запросить значения двигателя у контроллера мотора, используя raspberry pi. Однако мой код добавляет InvalidSyntax Error в операторы else и elif. Я уже читал об операторах if и elif в python, но я не могу понять ошибку самостоятельно. Код ниже:

def motor_values():

  while 1:
      command_1 = '?A '+str(1)+' \r' #Asking first motor current
      command_2 = '?A '+str(2)+' \r' #Asking second motor current
      counter = 0
      #First motor current
      if counter = 0:
        ser.write(command_1.encode()) #string to bytes
        data_1 = ser.readline().decode().strip() #bytes to string
        #Checking if data is received and extracting current value
        if 'A=' in data_1:
            value_1 = int(data_1.split('=')[1])
            print("Motor Current(Channel 1): " + str((value_1) + " Ampers")
            counter += 1
        else:
            print("Message is not received")
      #Second motor current
      elif counter == 1:
        ser.write(command_2.encode()) #string to bytes
        data_2 = ser.readline().decode().strip() #bytes to string
        if 'A=' in data_2:
            value_2 = int(data_2.split('=')[1])
            print("Motor Current(Channel 2): " + str((value_2) + " Ampers")
            counter += 1
        else:
            print("Message is not received")
      else:
        counter = 0

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

вы пропустили закрывающую скобку в функции печати

print("Motor Current(Channel 1): " + str(value_1) + " Ampers")
0 голосов
/ 18 октября 2019

Несколько синтаксических ошибок здесь:

  1. используйте == в условии условия if
      #First motor current
      if counter == 0:  # 
удалить один из двух ( в str((value_2)
print("Motor Current(Channel 1): " + str(value_1) + " Ampers")
print("Motor Current(Channel 2): " + str(value_2) + " Ampers")
...