Python 为什么在诸如';0b10101000';?
我对Python 为什么在诸如';0b10101000';?,python,Python,我对0b10101000中的前导0感到困惑: 它似乎不是一个符号 In [1]: bin(168) Out[1]: '0b10101000' In [2]: int(bin(168), 2) Out[2]: 168 我认为这应该足够了,而且肯定会更简洁,可以说b10101000 为什么需要开头的0?为什么必须使用def而不是df或class而不是cls?这就是语言语法规定的。它是由语言设计强制执行的。为什么您必须使用def而不是df或class而不是cls?这就是语言语法规定的。它是由语言设
0b10101000
中的前导0
感到困惑:
它似乎不是一个符号
In [1]: bin(168)
Out[1]: '0b10101000'
In [2]: int(bin(168), 2)
Out[2]: 168
我认为这应该足够了,而且肯定会更简洁,可以说b10101000
为什么需要开头的
0
?为什么必须使用def
而不是df
或class
而不是cls
?这就是语言语法规定的。它是由语言设计强制执行的。为什么您必须使用def
而不是df
或class
而不是cls
?这就是语言语法规定的。它是由语言设计来实现的。它会更简洁,但是如果在代码中使用它,Python会将b10101000
解释为变量名,而将0b10101000
解释为二进制数
如果Python向您呈现的值与它期望您在编写的代码中向其呈现的值不同,那么(对您,程序员来说)这会让人困惑 它会更简洁,但是如果在代码中使用
b10101000
,Python会将其解释为变量名,而将0b10101000
解释为二进制数
如果Python向您呈现的值与它期望您在编写的代码中向其呈现的值不同,那么(对您,程序员来说)这会让人困惑 不要将二进制文字与变量混淆 您可以将数字表示为任意基数的文字(例如0b->二进制,0x->十六进制):
如果没有前导0,则会出现问题。Python的变量命名约定是必须以字母字符开头。使用前导0,解释器可以判断它是文本还是变量。不要将二进制文本与变量混淆 您可以将数字表示为任意基数的文字(例如0b->二进制,0x->十六进制):
如果没有前导0,则会出现问题。Python的变量命名约定是必须以字母字符开头。使用前导0,口译员可以判断它是文字还是变量。请参见,参考:“您应该只根据您面临的实际问题提出实际的、可回答的问题”。出于好奇而提出的问题不符合“你所面临的问题”在本网站上的标准……我认为共识/公认答案中的介绍性段落也适用于这个问题:我个人认为这是一个非常酷的问题。这本书写得很好,它探索了一个可能没有被很好理解的语言领域,并且它有可能让人们深入了解这门语言。话虽如此,对于堆栈溢出来说,这不是一个好问题。请参见,参考:“您应该只根据您面临的实际问题提出实际的、可回答的问题”。出于好奇而提出的问题不符合“你所面临的问题”在本网站上的标准……我认为共识/公认答案中的介绍性段落也适用于这个问题:我个人认为这是一个非常酷的问题。这本书写得很好,它探索了一个可能没有被很好理解的语言领域,并且它有可能让人们深入了解这门语言。尽管如此,对于堆栈溢出来说,这不是一个好问题。
0b100
>>>4
0x100
>>>256