温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中如何实现字符串格式化

发布时间:2021-12-16 17:23:56 来源:亿速云 阅读:93 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关Python中如何实现字符串格式化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    什么是字符串格式化,为什么需要这样做?

    我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此!
    想必主播通过某种方式把输出转换为读者想看的内容。

    是不是大概懂了什么是格式化和格式化的必要性了!

    仅仅类比,我们程序的格式化,并没有那么过份!1输出还是1,只是人类更好读懂了。

    而不像网络主播那样稍微格式化(工程挺大)从1变成了0。

    毕竟程序不能欺骗开发者。

    必要性:输出为更好的格式化,方便开发者和用户读懂输出。

    程序中都有哪些格式化?

    网上说有三种,四种,未来还可能会增加其他库。

    学委开发过多种语言,大概总结如下两个大类:

    • 字符串占位符替换

    • 字符串关键字替换

    下面看看代码

    占位符格式化

    第一种%占位符格式化

    python中我们最常见的是'%‘ 这类占位符号

    str = "hello"
    "this is a string: %s" % str 
    "this is a string: %s, %s" % (str, str)

    上面我们观察一下,可以发现输出中‘%s'被替换为了'hello';

    另一个是多个‘%s'的替换是用一个元组,按照对应下标来替换。

    格式化基本上都可以使用'%s'来完成。

    好,懂了这个,我们继续看看下面的代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2021/10/30 10:13 上午
    # @Author : LeiXueWei
    # @CSDN/Juejin/Wechat: 雷学委
    # @XueWeiTag: CodingDemo
    # @File : string_format.py
    # @Project : hello
    import sys
    first = "持续学习"
    second = "持续开发"
    slogan = first + second
    print(slogan)
    banner = "*" * 16
    print(banner)
    slice = slogan[2:4]
    print(slice)
    print(""""学习" in slogan : %s""" % ("学习" in slogan))
    print(""""不学习" not in slogan : %s""" % ("不学习" not in slogan))
    print(r"""打印\n换行被当做普通字符输出了!""")
    # 以上我们都可以看到%,很多次代码都有说到这个,但是并没有过多解释
    print("%s" % slogan)  # 最常用了%s 格式化字符串
    # print("%c"%'ccc')#TypeError: %c requires int or char
    print("%c" % 'c')  # %c 通常用来强制检测待输出的字符串必须长度为1
    print("%c" % '雷')  # %c 通常用来强制检测待输出的字符串必须长度为1
    number = 102.40101
    print("%%i 符号整数 %i" % number)
    print("%%i 符号整数:%i" % -number)
    print("%%d 符号整数 %d" % number)
    print("%%d 符号整数 %d" % -number)
    print("%%u 无符号整数:%u" % number)
    print("%%u 无符号整数:%u" % -number)
    #print("八进制 %o" % number)
    print("%%o 八进制 %o" % 102)
    print("%%x16进制 %x" % 102)
    #print("16进制 %X" % 102)
    print("%%e 自然常数 e进制: %e" % number)
    #print("%E" % number)
    print("%%f 浮点数 %f" % number)
    print("%%g 灵活的有效显示:%g" % number) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
    #print("%G" % number)
    print("%%g 灵活的有效显示:%g" % (number*10001)) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
    #下面两种写法需要注意执行顺序
    #print("%g" % number*10001) #注意这种写法
    #print("%g" % number**10) #注意这种写法

    读者可以直接复制运行代码,学委补充了运行效果图:

    Python中如何实现字符串格式化

    这里比较特殊的是‘%u'无符号整型的展示,正负数并无区别。

    那是肯定的,无符号整型跟有符号整型是表示数的两种手段。
    但是无符号的比有符号多了一个位来放数字,所以范围更大。

    上面这段题外话,小白稍微看看或者跳过。我们继续看看其他格式化方式。

    第二种占位符格式化

    跟上面稍微区别就是我们会看到一下明显的下标。

    {0}, {1}, … {n}

    想要留几个替换位,就放几个{}括起来,但要求必须给到n个参数,更多信息参考https://docs.python.org/3/library/string.html

    这个非常简单直接,我们看看代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2021/10/30 10:13 上午
    # @Author : LeiXueWei
    # @CSDN/Juejin/Wechat: 雷学委
    # @XueWeiTag: CodingDemo
    # @File : string_format1.py
    # @Project : hello
    import sys
    slogan = "持续学习持续开发"
    author = "雷学委"
    text = "{0}, {1}".format(slogan, author)
    print("text= %s" % text)

    关键字格式化

    非常好理解就是类似{}一对大括弧中间为待替换的内容。

    这个非常简单直接,我们看看代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2021/10/30 10:13 上午
    # @Author : LeiXueWei
    # @CSDN/Juejin/Wechat: 雷学委
    # @XueWeiTag: CodingDemo
    # @File : string_format2.py
    # @Project : hello
    import sys
    slogan = "持续学习持续开发"
    author = "雷学委"
    text = f"{slogan} , {author}"
    print("text= %s" % text)

    运行效果如下:

    Python中如何实现字符串格式化

    从这里看,关键字格式化比较友好!

    感谢各位的阅读!关于“Python中如何实现字符串格式化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI