Python返回无效的语法错误

根0x

我在树莓派上编写了一个简单的python程序,而我对python编程还是很陌生。我定义了一个名为GetMessage的函数,该函数没有任何参数,并且返回一个我称为数据的变量,但是出现了一个错误,指出

文件“ Raspberry_pi.py”,第39行

不退还

    ^

SyntaxError:语法无效

import os
import glob
import time
import RPi.GPIO as GPIO
from math import *
from bluetooth import *
from RPIO import PWM

os.system('sudo hciconfig hci0 pisca')
os.system('sudo hciconfig hci0 name "De Quadcoptur"')
servo = PWM.Servo()
StartSpin()

server_sock=BluetoothSocket( RFCOMM )
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)

port = server_sock.getsockname()[1]

GetMessage()
DecodeInput()

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
def GetMessage():
    advertise_service( server_sock, "XT1032", #phone bluetooth name
        service_id = uuid,
        service_classes = [ uuid, SERIAL_PORT_CLASS ],
        profiles = [ SERIAL_PORT_PROFILE ],
        #protocols = [ OBEX_UUID ]
        )
    client_sock, client_info = server_sock.accept()

    try:
            data = client_sock.recv(1024)
            if len(data) == 0: break
            print "received [%s]" % data
            client_sock.close()
            server_sock.close()
    except IOError:
        pass

        break
    return data


def StartSpin():
    # Set servo on GPIO17 to 1200µs (1.2ms)
    servo.set_servo(17, 1000)
    servo.set_servo(18, 1000)
    servo.set_servo(19, 1000)
    servo.set_servo(20, 1000)
    time.sleep(1)
    servo.stop_servo(17)
    servo.stop_servo(18)
    servo.stop_servo(19)
    servo.stop_servo(20)
    #Check if more pulses is faster
    time.sleep(2000)
    PWM.add_channel_pulse(0, 17, start = 1000, width = 100)
    PWM.add_channel_pulse(0, 17, start = 1000, width = 100)
    PWM.add_channel_pulse(0, 17, start = 1000, width = 100)
    PWM.add_channel_pulse(0, 17, start = 1000, width = 100)
    PWM.add_channel_pulse(0, 17, start = 1000, width = 100)
    servo.stop_servo(17)
    servo.stop_servo(18)
    servo.stop_servo(19)
    servo.stop_servo(20)
    return None

def DecodeInput():
    data = GetMessage()
    if(data == 'start')
        StartSpin()
        return 0
    else if(data[0] == 'U')
        data.strip('U')
        UpPower = int(data)
        SetUpPower(UpPower)
    else if(data[0] == 'P')
        data.strip('P')
        PitchPower = int(data)
        SetPitchPower
    else
        data.strip('P')
        RollPower = int(data)
    SetPower(UpPower, PitchPower, RollPower)
    return None

def SetPower(UpPower, PitchPower, RollPower):
    #Make Arbitrary Values
    Motor1Power = UpPower #Front Left
    Motor2Power = UpPower #Front Right
    Motor3Power = UpPower #Back  Left
    Motor4Power = UpPower #Back  Right
    PitchPower = PitchPower /2
    RollPower = RollPower /2
    if(PitchPower < 25)
        Motor1Power = Motor1Power + abs(25-PitchPower)
        Motor2Power = Motor1Power + abs(25-PitchPower)
    else
        Motor3Power = Motor3Power + (PitchPower-25)
        Motor4Power = Motor4Power + (PitchPower-25)
    if(RollPower < 25)
        Motor1Power = Motor1Power + abs(25-RollPower)
        Motor3Power = Motor3Power + abs(25-RollPower)
    else
        Motor2Power = Motor2Power + (RollPower - 25)
        Motor4Power = Motor4Power + (RollPower - 25)

是什么导致此错误,我该如何解决?

编辑:我已将数据定义为全局变量,并且现在的错误是

文件“ Raspberry_pi.py”,第39行

返回数据

    ^

SyntaxError:语法无效

布莱克金

您的代码中存在许多语法问题。由于SyntaxError异常的性质(当解释器不理解代码语法时会引发异常),错误消息可能无法将正确的行标识为问题的根源。

我看到的第一个语法错误是您breakGetMessage函数中使用它而没有陷入循环中。一条break语句仅在forwhile内有用,而在其他地方(except在这种情况下块)使用一个语句是语法错误。

下一组错误与缺少冒号有关。每个在有条件的分行DecodeInput,并SetPower需要有一个冒号的条件之后:if condition1:elif condition2:else:

使用else if而不是使用它也是一个错误elif(如果在后面添加冒号,换行符和额外的缩进级别else:,然后使用单独的if语句,可以使其起作用,但这会浪费空间)。

还有一些其他问题,但这不是语法错误。例如,您要在定义顶层函数之前从顶级代码中调用函数,并且该函数DecodeInput的一行带有裸表达式SetPower该表达式不会做任何有用的事情(您可能希望SetPower使用某些参数进行调用)。

希望这能使您走上正确的道路。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python返回无效的语法错误

来自分类Dev

无效的Python语法错误

来自分类Dev

无效的语法错误python

来自分类Dev

Python - 无效的语法错误

来自分类Dev

python语法错误无效语法

来自分类Dev

Python函数抛出无效语法错误

来自分类Dev

Python 3.3.2无效语法错误

来自分类Dev

Python-如果或无效语法错误

来自分类Dev

Python:语法错误:无效的令牌

来自分类Dev

无效的语法错误python 2.7

来自分类Dev

Python-“语法错误:语法无效”或 FileNotFoundError 或(unicode 错误)

来自分类Dev

python中的奇怪语法错误:无效语法

来自分类Dev

返回语法错误

来自分类Dev

MySQL无效的语法错误

来自分类Dev

循环的无效语法错误

来自分类Dev

IIF()-无效的语法错误

来自分类Dev

“打印”在Python 3中引发无效的语法错误

来自分类Dev

带有'end'参数的Python无效语法错误

来自分类Dev

为什么这是Python中的无效语法错误?

来自分类Dev

Python dynamodb ExpressionAttributeValues包含无效的键:语法错误;键:

来自分类Dev

第7行的Python无效语法错误

来自分类Dev

无效的语法错误-Python 3.5.2 Django 1.10

来自分类Dev

无效的语法错误,但我无法发现?(Python)

来自分类Dev

Python尝试除了最后无效的语法错误

来自分类Dev

为什么 <= 在 Python 中抛出无效的语法错误

来自分类Dev

在python 3.7中获取无效的语法错误

来自分类Dev

小python txt文件写入程序的无效语法错误

来自分类Dev

打印减少语法错误:语法无效

来自分类Dev

Python的语法错误