Python中1_000、100_000的含义及与1,000的区别咨询
Python中数字里的下划线(比如
1_000)是什么意思? 嘿,这个问题问得好!很多刚接触Python的同学都会疑惑这个下划线的用法,我来给你掰扯清楚:
1. 1_000和1000完全等价吗?
是的,完全等价。在Python中,1_000就是整数1000的另一种写法,它们在内存中的存储、运算逻辑没有任何区别。你可以自己测试验证:
print(1_000 == 1000) # 输出 True print(type(1_000) == type(1000)) # 输出 True
2. 为什么要写成1_000?
这是Python 3.6版本引入的数字分隔符语法,核心目的就是提升大数字的可读性。比如:
100_000_000一眼就能看出是1亿,而100000000得慢慢数位数才看得清;0x_FF_FF_FF_FF比0xFFFFFFFF更容易识别是4个字节的最大值;- 就连浮点数也能用,比如
1_234.567_89,读起来直观很多。
Python解释器在处理时会自动忽略这些下划线,不会对数字本身产生任何影响。
3. 它有没有1000没有的特殊功能?
完全没有!这只是个语法糖,仅仅是为了让人类更容易读数字,对Python解释器来说,1_000和1000是一模一样的,没有任何额外功能。
4. 注意别和逗号混淆
你提到的1,000在Python里和1_000完全不是一回事!1,000会被解析成一个元组(包含整数1和0),比如:
print(1,000) # 输出 1 0 print(type(1,000)) # 输出 <class 'tuple'>
如果不小心把[None] * 1_000写成[None] * 1,000,会得到一个元组而不是你想要的列表,这一点一定要注意。
和__name__里的下划线区别
你提到的if __name__ == '__main__'里的下划线,属于Python的命名规范(蛇形命名法),用来分隔单词或者表示特殊内置变量,和数字里的下划线用途完全不同,两者没有关联。
内容的提问来源于stack exchange,提问作者Shaken_not_stirred.
相关产品推荐
相关产品推荐

