当前位置 博文首页 > python中print格式化输出的问题

    python中print格式化输出的问题

    作者:痴月熊 时间:2021-07-07 18:48

    前言

    福宝们,下午好啊。改版后的第4.5章阅读量有点少呀,不知道是不是拖更了一天的缘故。呜呜呜,以后一定要做个不拖更的好熊,所以今天继续爆肝第五章:print格式化输出。在写第三章的时候用到过其中一种: " f … {} " 的组合。之前的评论下面有小伙伴疑惑,那今天就来详细讲解一下这个东西,另外还有其他格式化的方式。那我们开始今天的学习吧。

    提示:以下是本篇文章正文内容,下面案例可供参考

    一、f-String格式化

    所谓格式化输出,就是创建一个可以嵌入变量内容的字符串。如果不进行格式化,变量名就会被直接打印出来,发挥不了他的作用。所以我们现在开始讲之前用到的:f-String格式化。这个上面也说过,格式: f" … {} … ",其中你要在字符串里调用变量,需要把变量写在 " { } " 中,字符串的开头还要写个 " f " 。f 就代表着format,也就是格式化的意思。这个组合是固定的,缺一不可,你写出了 " f ",就相当于告诉了python,这是一个已经格式化的字符串。python就会去看那些变量,当然你要是前面写了f,中间没有写中括号,也是可以正常执行的。只不过没有去调用变量。

    name = "痴月熊"
    name2 = "憨憨熊"
    age = 18
    age2 = 19
    print(f"{name}:下午好各位,我是{name},{age}的文艺小青年。这是我铁子{name2},他{age2},请多关照")
    print(f"{name2}:嗷嗷嗷~")

    RUN:

    痴月熊:下午好各位,我是痴月熊,18的文艺小青年。这是我铁子憨憨熊,他19,请多关照
    憨憨熊:嗷嗷嗷~

    二、占位符

    首先还是看个表,常见的占位符号

    符号 意义
    %d 整数
    %f 浮点数
    %s 字符串

    占位符,顾名思义。就是在一段字符串中占一个位置,然后引用变量插进来。具体格式是 print("…%d…" % (变量)),下面还是直接通过练习来看一下效果。

    name = "憨憨熊"
    once = 1
    num = 4.2
    print("%s 最喜欢的事情就是打游戏,他最擅长的还是动作冒险类" % name)
    print("魂斗罗他甚至只需要 %d 条命就可以通关" % once)
    print("即使他两个眼睛都已经%f度了,还是不能放下游戏机" %num)

    RUN:

    憨憨熊 最喜欢的事情就是打游戏,他最擅长的还是动作冒险类
    魂斗罗他甚至只需要 1 条命就可以通关
    即使他两个眼睛都已经4.200000度了,还是不能放下游戏机

    效果就是这样啦,当然也可以放在一起试一下。

    name = "憨憨熊"
    once = 1
    num = 4.2
    print("""
    %s 最喜欢的事情就是打游戏,他最擅长的还是动作冒险类.
    魂斗罗他甚至只需要 %d 条命就可以通关.
    即使他两个眼睛都已经%f度了,还是不能放下游戏机
    """ % (name,once,num))

    RUN:

    憨憨熊 最喜欢的事情就是打游戏,他最擅长的还是动作冒险类.
    魂斗罗他甚至只需要 1 条命就可以通关.
    即使他两个眼睛都已经4.200000度了,还是不能放下游戏机

    使用占位符的时候,一定要想好变量的数据类型,如果你写了个%d,结果你放了个字符串进去就会报错。当然数字也可以作为字符串,你写成%s也可以执行。不过为了方便浏览,最好根据数据类型填入相应的占位符。另外如果你占位符是%d,你放了个浮点型进去,他就会给你强制转换为整数,反之也是一样的。如下:

    num1 = 4.2
    num2 = 4
    print("%d" % num1)
    print("%f" % num2)

    RUN:

    4
    4.000000

    三、format格式化

    第三种就是利用format函数,在python里也叫方法。基本语法是在字符串中写入 " {} ",最后再字符串的末尾调用.format方法,将变量插入到{}。看起来是不是像f-string格式化,format格式化是在python2.6更新的,而f-string是在python3.6。当然个人认为这个用起来不太舒服,还是上面两个好用点。有很多时候,想要插入变量,都要在后面写一大堆参数。好麻烦! 以下就是效果啦。

    name1 = "痴月熊"
    name2 = "憨憨熊"
    time = 12
    num = 2
    print("此时半夜{}点:\"呜呜呜, {}.\"".format(time,name1))
    print("{name2},大晚上{time}点的,你在瞎叫啥".format(time=time, name2=name2))
    print("我居然花了{}条命才过这个关卡".format(num))
    print(f"{name1}心里独白:这玩意能一条命就过去的才不是正常熊吧。".format(name1=name1))
    print("<玛丽奥制造>....")

    RUN:

    此时半夜12点:"呜呜呜, 痴月熊."
    憨憨熊,大晚上12点的,你在瞎叫啥
    我居然花了2条命才过这个关卡
    痴月熊心里独白:这玩意能一条命就过去的才不是正常熊吧。
    <玛丽奥制造>....

    总结

    我个人很喜欢用f-string格式化,不过还是得带大家了解一下。今天这章是和4.5是一块写的,一起收集的资料和练习来着。总结的话,我可以把上一章总结复制过来嘛,好的吧,那今天的总结就是奥利给!又是充满激情的一天,溜了溜了~

    jsjbwy
    下一篇:没有了