首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

为什么 Python 里没有 printf ?

  •  
  •   autumn2018 · 351 天前 · 4651 次点击
    这是一个创建于 351 天前的主题,其中的信息可能已经有所发展或是发生改变。
    记得刚开始学编程的时候,挺憎恨 printf 的,但用久了才发现好用.
    perl 和 ruby 里都有 printf,  lua 里面没有可以理解,但为什么 python 里也没有呢?
    python 里好像有 s=%d %x 风格的字符串写法,然后 print 出来...

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

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

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

    后来就是 Java,C#,python
    所以至今也没用过 printf XD
        24
    www5070504   350 天前
    为什么要有 printf 现有的 print 完全够用啊
        25
    Sasasu   350 天前   ♥ 2
    cout 输出一个就要进行一次函数调用, 所以大家都建议用 printf.
    不过建议用 https://github.com/fmtlib/fmt, 马上就要变成 std::fmt 了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1006 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 35ms · UTC 19:40 · PVG 03:40 · LAX 11:40 · JFK 14:40
    ♥ Do have faith in what you're doing.