You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:56:47