在 if 语句中检测到 Python 语法错误 [关闭]

Posted

技术标签:

【中文标题】在 if 语句中检测到 Python 语法错误 [关闭]【英文标题】:Python Syntax errors detected on an if statement [closed] 【发布时间】:2020-02-20 23:07:21 【问题描述】:

我正在尝试运行我的代码,但我因语法错误被困了好几个小时。我尝试了不同的 if 语句级别、重写部分等......没有任何变化。有人有什么想法吗?谢谢

我也使用过在线破解器,但没有结果。 我使用 Python 3 运行代码,无法使用旧版本运行。

这部分代码的所有行都发生了错误:

if alarmdown == 1:
        bright = bright - 1
        pixels.fill((brightmaxred, 0, bright)
        if bright == 10:
                alarmdown = 0
elif alarmdown == 0:
        bright = bright + 1
        pixels.fill((brightmaxred, 0, bright)
        if bright == brightmaxblue:
                alarmdown = 1

这是完整的代码,它是一个 RGB 条形计时器

import time
import board
import neopixel
pixels = neopixel.NeoPixel(board.D18, 24)


#variables
terminate = 0
startup = 1
bright = 1
selectpix = 0
goblue = 0
pixelstart = (0, 0, 100)
order = 1
timerexpired = 0
alarmdown = 1

brightmaxblue = 20
brightmaxred = 30

currentlow = 0
currenthigh = 23

#set timer speed
totaltime = 15 #how many seconds? approximation
timetotal = totaltime / (brightmaxred * 30)

#set a clean board
pixels.fill((0, 0, 0))

#if til true
while terminate == 0:
        if startup == 1:
                goblue = goblue + 1
                pixels.fill((0, 0, goblue))
                time.sleep(timetotal)
                if  goblue == brightmaxblue:
                        startup = 0
                        timer = 1
        elif startup == 0:
#start from the pixel no. 0 - 23 - 1 - 22 - ...
                while timer == 1:
                        pixels[selectpix] = (bright, 0, brightmaxblue)
                        bright = bright + 1
                        time.sleep(timetotal)
                        if  bright == brightmaxred:
                                if currentlow == 12:
                                        timer = 0
                                        timerexpired = 1
                                elif selectpix == currentlow:
                                        selectpix = currenthigh
                                        currentlow = currentlow + 1
                                elif selectpix == currenthigh:
                                        selectpix = currentlow
                                        currenthigh = currenthigh - 1
                                bright = 0
                if timerexpired == 1:
                        if alarmdown == 1:
                                bright = bright - 1
                                pixels.fill((brightmaxred, 0, bright)
                                if bright == 10:
                                        alarmdown = 0
                        elif alarmdown == 0:
                                bright = bright + 1
                                pixels.fill((brightmaxred, 0, bright)
                                if bright == brightmaxblue:
                                        alarmdown = 1

【问题讨论】:

您多次提到“错误”。请添加完整的 Traceback - 它告诉我们很多比“发生错误”更多。 如果您是 Python 新手(或一般编程)。 使用合适的 IDE(例如 PyCharm 或 VS.Code)而不是文本编辑器。他们将帮助您捕获诸如此类的错误。 【参考方案1】:
pixels.fill((brightmaxred, 0, bright)

你有两个左括号,只有一个右括号。

【讨论】:

以上是关于在 if 语句中检测到 Python 语法错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

捕捉打字稿语法错误:if 语句和类方法调用

JavaScript原生错误及检测

为啥在我的 Postgres 函数中使用 IF 语句时出现语法错误?

Python的 if .else.elif语句详解

Python 21 异常处理

如何在python中制作长“ IF语句”?