为何Python中带下划线的数值(如100_200)类型为int?
Python里数值下划线的小秘密:不是连接,是可读性神器!
为什么会有这个现象?
其实这是Python 3.6+官方引入的**数字分隔符(digit separator)**特性,下划线在这里完全是视觉上的分隔标记——Python解释器在解析代码时会直接忽略这些下划线,不会对数值的类型和实际值产生任何影响。
举几个实际例子验证一下:
# 整数案例 x = 100_200 print(type(x)) # 输出 <class 'int'> print(x) # 输出 100200 # 浮点数案例 y = 123_456.78 print(type(y)) # 输出 <class 'float'> print(y) # 输出 123456.78 z = 12.34_56 print(type(z)) # 输出 <class 'float'> print(z) # 输出 12.3456
说白了就是Python团队想让程序员写大数字的时候更轻松——比如你写1000000可能得数半天零,写成1_000_000一眼就知道是一百万,完全不影响代码运行。
怎么合理用好这个特性?
这个特性的核心价值就是提升代码可读性,推荐在这些场景下使用:
- 大额数值/长ID:比如财务金额
1_500_000.50、用户ID1234_5678_9012,比纯数字好读太多 - 进制数分组:写二进制(
0b1010_1100)、十六进制(0x1A_3F_8C)时,按4位或8位分组,方便快速看位段 - 避免数字混淆:比如
100000和1000000很容易看错,加下划线100_000和1_000_000就清晰了
不过要注意几个使用限制,不然会报语法错误:
- 下划线不能放在数字的开头或结尾,比如
_100、100_都是非法的 - 不能连续放多个下划线,比如
100__200会报错 - 不能放在小数点的前后边缘,比如
._100、100_.都是不允许的
内容的提问来源于stack exchange,提问作者Henry Tsao
相关产品推荐
相关产品推荐

