微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python中的异或,SyntaxError,为什么?

如何解决Python中的异或,SyntaxError,为什么?

>>> x = 1101 ^ 0111
  File "<stdin>",line 1
    x = 1101 ^ 0111
                  ^

语法错误:令牌无效

为什么我在 python 中收到这个语法错误?我在网上看到,“^ 按位互斥异或 描述 返回两个整数按位异或的结果。

语法 A^B

A 整数对象。 乙 整数对象。”

所以我想我使用了两个整数。

解决方法

11010111 应该是位吗?要表示位文字,您应该使用 0b11010b0111,否则这些都是整数(并且整数不能以 0

开头 ,

首先,您不能以这种方式使用整数。这是我运行您的代码时遇到的错误:

SyntaxError: leading zeros in decimal integer literals are not permitted;
use an 0o prefix for octal integers

换句话说,你不能给 Python 一个以零开头的整数。这曾经在 Python 2 中工作,但在 Python 3 中不再支持。(参见 https://stackoverflow.com/a/11620174/7583007

我假设您正在尝试使用二进制数?如果是这样,你应该试试这个:https://stackoverflow.com/a/19414115/7583007

,

我相信你想要:

0b1101 ^ 0b0111

通常,您收到的错误是因为您在数字前放置了一个“0”,这是 python 不允许的。如果您尝试这样做,也会发生同样的情况:

078

数字的开头以零开头,通常是特殊的 Python 代码,表示您将提供二进制数、八进制数或十六进制数,它们分别以 0b、0o 或 0x 开头。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。