• 请不要在回答技术问题时复制粘贴 AI 生成的内容
autumn2018
V2EX  ›  程序员

为什么 Python 里没有 printf ?

  •  
  •   autumn2018 · Dec 4, 2018 · 8256 views
    This topic created in 2893 days ago, the information mentioned may be changed or developed.
    记得刚开始学编程的时候,挺憎恨 printf 的,但用久了才发现好用.
    perl 和 ruby 里都有 printf,  lua 里面没有可以理解,但为什么 python 里也没有呢?
    python 里好像有 s=%d %x 风格的字符串写法,然后 print 出来...

    另外一个问题,有知道的朋友还请告知一下:
    刚才我 google 的时候,看到说不建议在 C++里用 printf,要用 cout,我想起来我学 c++也是很久之前的事情了,后来这些年都用 C 语言,靠近 os 底层工作,C++的许多东西都是触类旁通"顿悟"的,唯独这个 cout 的好处没看到,比 printf 好在哪里呢?是不是跟 C++的哲学有关?
    25 replies  •  2018-12-05 10:14:10 +08:00
    wwqgtxx
    wwqgtxx
    Dec 4, 2018
    1
    print("%d"%5)这样就行了
    ysc3839
    ysc3839
    Dec 4, 2018 via Android❤️1
    2
    这个问题属于开发者个人选择的问题了,开发者不加入所以没有。
    Monad
    Monad
    Dec 4, 2018
    3
    关于 std::cout 的好处 你想一下 ssize_t 应该用%???来 printf 输出
    misaka19000
    misaka19000
    Dec 4, 2018❤️1
    4
    Python 用 format 挺好的
    codechaser
    codechaser
    Dec 4, 2018
    5
    [C++ std::cout vs printf]( https://stackoverflow.com/questions/4781819/printf-vs-stdcout)
    python 里也有字符串格式化`str.format()`吧,这个跟`printf`用法不是差不多吗
    balamiao
    balamiao
    Dec 4, 2018
    6
    为什么 python 里没有 echo,没有 var_dump,没有 snprintf~
    autumn2018
    autumn2018
    OP
    Dec 4, 2018
    7
    @Monad 感谢提醒.我查了一下,c99 里可以用%zd,z 是新引入的 modifier,C++标准里没.
    Monad
    Monad
    Dec 4, 2018
    8
    @autumn2018 #7 嗯 那么 pid_t 呢 然后 off_t 呢 就是为了解决这些麻烦的地方哈=.=
    zjdznl
    zjdznl
    Dec 4, 2018 via Android
    9
    format 函数
    anonymous256
    anonymous256
    Dec 4, 2018 via Android
    10
    python 用过 format 以后,就再也不会想用%s 这种奇怪的东西了。
    crab
    crab
    Dec 4, 2018
    11
    print(f"{}")
    guog
    guog
    Dec 4, 2018 via Android
    12
    Python3 用 f-string 挺好的
    smdbh
    smdbh
    Dec 4, 2018
    13
    python 里有 print,python 里有比没有 printf 更痛苦的事情
    bill361410
    bill361410
    Dec 4, 2018
    14
    其实可以自己写一个 printf,按照自己的要求写一个就好了
    Finest
    Finest
    Dec 4, 2018
    15
    更细化用 string.Template 来做模版处理
    pere
    pere
    Dec 5, 2018
    16
    我看 google 的代码规范,printf 比流更推荐使用啊
    tinkerer
    tinkerer
    Dec 5, 2018
    17
    @guog 是的,这才是解决方案
    Kirscheis
    Kirscheis
    Dec 5, 2018 via Android
    18
    printf 到底哪里好用。。感觉用起来浑身难受啊

    以及 printf 显然比 cout 舒服,所以有人能说说为什么推荐 cout 吗
    cufezhusy
    cufezhusy
    Dec 5, 2018
    19
    看了这么多,只有 @guog 说的靠谱。
    deepreader
    deepreader
    Dec 5, 2018
    20
    f-string 了解一下
    aniven
    aniven
    Dec 5, 2018
    21
    print 就是 printf,而且更强大
    zhiqiang
    zhiqiang
    Dec 5, 2018
    22
    我就喜欢在 C++里用 printf。std::cout 又丑又难用。

    std::cout 号称更安全一点,但只要自己注意点,printf 也没啥,再说现在编译器也能识别出大部分不安全的情况。
    SeaRecluse
    SeaRecluse
    Dec 5, 2018
    23
    刚学 c++的第一堂课,老师就教我们
    include<iostream>
    using namespace std:
    ... ...
    cout << "Hello World" << endl;

    后来就是 Java,C#,python
    所以至今也没用过 printf XD
    www5070504
    www5070504
    Dec 5, 2018
    24
    为什么要有 printf 现有的 print 完全够用啊
    Sasasu
    Sasasu
    Dec 5, 2018❤️2
    25
    cout 输出一个就要进行一次函数调用, 所以大家都建议用 printf.
    不过建议用 https://github.com/fmtlib/fmt, 马上就要变成 std::fmt 了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3640 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 121ms · UTC 04:15 · PVG 12:15 · LAX 20:15 · JFK 23:15
    ♥ Do have faith in what you're doing.