现在才知道, Python 里的数字还能用下划线分开 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hehheh
V2EX    Python

现在才知道, Python 里的数字还能用下划线分开

  •  
  •   hehheh 2020-05-15 17:56:29 +08:00 5319 次点击
    这是一个创建于 2020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家可以试试 print(5_0 + 5000_0)

    43 条回复    2020-05-16 18:08:05 +08:00
    ClericPy
        1
    ClericPy  
       2020-05-15 18:02:23 +08:00
    cookbook 里有提过, 其他挺多书里也有...
    Kamiyu0087
        2
    Kamiyu0087  
       2020-05-15 18:04:43 +08:00
    Java 也可以,还蛮方便的
    yazoox
        3
    yazoox  
       2020-05-15 18:10:20 +08:00
    不懂,这是啥意思?
    hehheh
        4
    hehheh  
    OP
       2020-05-15 18:10:54 +08:00
    @ClericPy 666,我没系统学过 python,就是网上看过两个教程就开始写了。
    hehheh
        5
    hehheh  
    OP
       2020-05-15 18:13:16 +08:00
    @yazoox 意思就是在 Python 里 5000 和 5_000 是一个东西。
    hehheh
        6
    hehheh  
    OP
       2020-05-15 18:14:58 +08:00
    @Kamiyu0087 写 Python 快 5 年了,现在才知道 之前都没见过(或者说我没注意),今天 YouTube 上看视频发现有个人这么写
    tmrQAQ
        7
    tmrQAQ  
       2020-05-15 18:17:29 +08:00
    ruby 也可以
    YUX
        8
    YUX  
    PRO
       2020-05-15 18:19:07 +08:00
    为了大数好读还挺有用的
    TimePPT
        9
    TimePPT  
    PRO
       2020-05-15 18:19:21 +08:00 via Android
    @hehheh 没记错的话 3.6 开始加的
    bnm965321
        10
    bnm965321  
       2020-05-15 18:21:07 +08:00
    看过 PEP,为方便金融业加入的
    CreSim
        11
    CreSim  
       2020-05-15 18:32:14 +08:00 via iPhone
    Rust 也可以
    ClericPy
        12
    ClericPy  
      2020-05-15 18:52:54 +08:00
    @hehheh #4
    进阶读物:
    《 Python 进阶》( Intermediate Python 中文版)

    流畅的 Python

    Python cookbook

    Python 最佳实践指南! The Hitchhiker’s Guide to Python

    稍微看了看就感觉到 Python 里面的语法糖世界多么神奇了, 各种神设计
    hehheh
        13
    hehheh  
    OP
       2020-05-15 19:00:00 +08:00
    @YUX 非常方便啊,其实只要是超过三位的数字,这么写都能让格式准确度和易读性提高。
    xg4
        14
    xg4  
       2020-05-15 19:00:41 +08:00
    js, ts 也可以
    hehheh
        15
    hehheh  
    OP
       2020-05-15 19:01:28 +08:00
    我刚才搜了下,发下那个 cookbook 我是看过的,而且是看了两遍,怎么就完全不记得有这么一个特性了?如果不用的话看过就忘啊
    hehheh
        16
    hehheh  
    OP
       2020-05-15 19:04:14 +08:00
    @TimePPT 我最早接触 python 还是 3.4 好像,啊啊啊啊啊。那个时候 3 用的还少,开始两年很多项目都用的 2. 我记得那个时候还和其他人讨论以后这么多 2 的项目到 2020 年 2 不支持了怎么办。。。结论是到时候再说。

    没想到这么快就到了。。。
    hehheh
        17
    hehheh  
    OP
       2020-05-15 19:05:20 +08:00   1
    @ClericPy 我刚才搜了下,发下那个 cookbook 我是看过的,而且是看了两遍,怎么就完全不记得有这么一个特性了?如果不用的话看过就忘啊
    Greatshu
        18
    Greatshu  
       2020-05-15 19:06:38 +08:00
    Java7 开始就可以了,可以在数字中任意位置加任意数量的下划线。二、八、十、十六进制表示的整数、小数、指数都行。
    hehheh
        19
    hehheh  
    OP
       2020-05-15 19:08:47 +08:00
    @bnm965321 666,15 年的 pep 8 可能是没有这个,要不就是我忘性太厉害
    yukiloh
        20
    yukiloh  
       2020-05-15 19:13:44 +08:00
    java7 开始有的,据说是为了区分千分位
    cmdOptionKana
        21
    cmdOptionKana  
       2020-05-15 19:25:30 +08:00
    现在各种语言特性互相借鉴,连 Go 都可以了。
    hehheh
        22
    hehheh  
    OP
       2020-05-15 19:42:37 +08:00
    @cmdOptionKana 啥时候 C++也能借鉴一下其他语言更多的好特性?哭
    gkiwi
        23
    gkiwi  
       2020-05-15 19:43:07 +08:00
    @cmdOptionKana #21 node 就不行!
    puilu
        24
    puilu  
       2020-05-15 19:46:53 +08:00
    就像我今年才发现 JS 有人这么写 new Date(2019,12,11) ,不过好想有兼容问题。
    puilu
        25
    puilu  
       2020-05-15 19:46:59 +08:00
    好像
    nightwitch
        26
    nightwitch  
       2020-05-15 19:48:40 +08:00
    @hehheh C++14 以后也支持这样的语法,用引号隔开. int i = 1'000'000'000;
    hehheh
        27
    hehheh  
    OP
       2020-05-15 19:51:55 +08:00
    @nightwitch 吐血,每次来都能学到新东西
    hehheh
        28
    hehheh  
    OP
       2020-05-15 20:09:01 +08:00
    @nightwitch 刚想测试一把,发现自己的电脑是 c++11,公司的编译器是 vs2010 的半支持 c++11 的编译器。。。我。。。算了还是找了个 online compiler 试一试。。。
    jmc891205
        29
    jmc891205  
       2020-05-15 20:10:16 +08:00 via iPhone
    因为老外数数是 3 位 3 位数的
    1,234,567,890
    AV1
        30
    AV1  
       2020-05-15 20:22:33 +08:00
    js 也支持了,chrome80 已经原生支持。
    12_3456_7890
    yanqiyu
        31
    yanqiyu  
       2020-05-15 21:27:52 +08:00
    Verilog 也能, 写很长的二进制可以这么做
    0010_1110_0010'b
    为了方便阅读
    agagega
        32
    agagega  
       2020-05-15 21:45:43 +08:00
    大部分常用语言都可以的
    TransAM
        33
    TransAM  
       2020-05-16 02:03:25 +08:00 via Android
    114_514_1919_810
    mostkia
        34
    mostkia  
       2020-05-16 09:09:27 +08:00
    不是,问题是这样写有什么好处吗?
    huntcool001
        35
    huntcool001  
       2020-05-16 10:14:03 +08:00
    @mostkia 10_000_000 一眼可以看出来是一千万
    0d
        36
    0d  
       2020-05-16 10:26:43 +08:00 via Android
    verilog 也可以这样写!
    24bit
        37
    24bit  
       2020-05-16 11:07:06 +08:00
    现在高级语言一般都支持这个特性吧
    redeyesovo
        38
    redeyesovo  
       2020-05-16 11:42:38 +08:00
    @TransAM 良いよ、来いよ
    JCZ2MkKb5S8ZX9pq
        39
    JCZ2MkKb5S8ZX9pq  
       2020-05-16 17:38:45 +08:00
    @hehheh #15 其实不会用到的特性,我看的当时就默认 [不用记] ……
    hehheh
        40
    hehheh  
    OP
       2020-05-16 17:55:26 +08:00
    @mostkia 出错率低
    hehheh
        41
    hehheh  
    OP
       2020-05-16 17:59:59 +08:00
    @JCZ2MkKb5S8ZX9pq 很多特性知识,就算记住了用过时间太久也会忘干净。我若干年前用过 qt 写过不少东西,前段时间需要用 qt,有些问题用谷歌搜,发现搜出来的结果是我若干年前自己上 qt.io 论坛问的或者是我自己回答别人的。结果我自己已经忘干净了 感觉像是自己做了时光机看以前的自己一样
    ggjjl1
        42
    ggjjl1  
       2020-05-16 18:01:02 +08:00
    hehheh
        43
    hehheh  
    OP
       2020-05-16 18:08:05 +08:00
    @ggjjl1 对,楼上有人说好像是 3.6 以后才支持的。我自己最早也是写 2 的,那个时候也没见过这种写法。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2283 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:03 PVG 00:03 LAX 08:03 JFK 11:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86