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 · 4849 次点击
    这是一个创建于 1651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家可以试试 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  
       2020-05-15 18:19:07 +08:00
    为了大数好读还挺有用的
    TimePPT
        9
    TimePPT  
       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
    DOLLOR
        30
    DOLLOR  
       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 一眼可以看出来是一千万
    tinytoadd
        36
    tinytoadd  
       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   ·   实用小工具   ·   4393 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:04 · PVG 09:04 · LAX 17:04 · JFK 20:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.