如果条件给出语法错误( Python 版本 3.11 )

If Condition Gives Syntax Error ( Python version 3.11 )

提问人:Muhammed Atef 提问时间:1/16/2023 最后编辑:Some programmer dudeMuhammed Atef 更新时间:1/16/2023 访问量:48

问:

我是 Python 的新手,我正在尝试使用 Jython 从 Java 运行 python 代码。

这是给出语法错误的块。


def int_to_16bytesmultiplearray(value):
    """
    Encode an integer into a bytearray whose size will be a multiple of 16 bytes (i.e. 128bits)
    :param value:
    :return:
    """
    # special case. 0 has a zero bit length
    if value == 0:
        return int_to_16bytesarray(0)

    bitlen = value.bit_length()
    min_length = math.ceil(bitlen/8)
    if (rem := (min_length % 16)) > 0:
        extra = 16 - rem
    else:
        extra = 0

    return value.to_bytes(length=min_length+extra, byteorder="big")

我得到的错误是这一行:if (rem := (min_length % 16)) != 0:

Error :  if (rem := (min_length % 16)) != 0:
            ^
SyntaxError: ("no viable alternative at input ':'")

python-3.x 语法错误

评论

0赞 Some programmer dude 1/16/2023
您声称收到的错误与您显示的代码不匹配。请编辑您的问题,向我们展示一个适当的最小可重复示例。并复制粘贴(作为文本)完整和完整的错误输出。
0赞 Muhammed Atef 1/16/2023
@Someprogrammerdude我用完整的错误输出更新了问题
0赞 Some programmer dude 1/16/2023
对不起,它仍然与您显示的代码不匹配。如果您没有显示适当的最小可重现示例,或者代码和错误之间存在不匹配,那么我们如何才能可靠地帮助您?虽然您显示的代码看起来几乎与错误消息中的代码相似,但也许您实际上在未显示的代码部分中完全匹配?所有错误消息都应包含行号,实际错误输出中的行号是否与您显示的代码中的行号匹配?

答: 暂无答案