当前位置 主页 > 网站技术 > 代码类 >

    详解Python中的format格式化函数的使用方法

    栏目:代码类 时间:2019-11-20 15:04

    format函数实现字符串格式化的功能

    基本语法为:

    通过 : 和 {} 来控制字符串的操作

    一、对字符串进行操作

    1. 不设置指定位置,按默认顺序插入

    ①当参数个数等于{}个数的时候

    str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢")
    print(str_1)

    运行结果:

    在这里插入图片描述

    ②当参数个数大于{}个数的时候

    str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢", "也不喜欢", "更不喜欢")
    print(str_1)

    运行结果:

    在这里插入图片描述

    ③当参数个数习小于{}个数的时候

    str_1 = "小明{}小美,可是小美{}小明".format("喜欢")
    print(str_1)

    运行结果:

    程序会报错:越界

    在这里插入图片描述

    由此可以得出,当我们不指定参数位置的时候,format函数会帮我们按顺序将其接收到的参数,填入到{}中。

    2. 设置指定位置

    当format接收到的参数个数大于{}或者我们想将不同{}替换为相同字符串的时候,我们可以在{}内指定接收第几个参数。format接收的参数,从0开始。

    str_1 = "小明{1}小美,可是小美{3}小明,小美{0}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
    print(str_1)

    在这一句代码中,分别为不同的{}指定了接收的参数位置。
    运行结果:

    在这里插入图片描述

    很显然,如果我们的{}的个数小于format的参数也是OK的。

    str_1 = "小明{1}小美,可是小美{3}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
    print(str_1)

    运行结果:

    在这里插入图片描述

    由此我们得出结论:

    在使用format()函数的时候,我们给format()的个数是不限的,如果我们并没有在{}中指定位置,那么format()会自动按顺序将参数填入{},而如果我们为{}指定了位置,那么format()就会把指定位置的参数填入对应的{}中。

    3.设置format()参数的值①直接在format()中进行赋值

    str_1 = "博主:{name}, 博客地址:{url}".format(name="KaiSarH", url="https://blog.csdn.net/KaiSarH")
    

    运行结果:

    在这里插入图片描述

    ②通过传递多值参数向format传递参数进而对{}进行赋值

    关于多值参数,可以看一下Python学习笔记之函数的参数和返回值

    - 使用**传递字典。

    在Python中,使用**可以传递一个字典参数,我们可以使用键名进行匹配,进而进行赋值

    dict_1 = {"name": "KaiSarH",
         "url": "https://blog.csdn.net/KaiSarH"}
    str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

    运行结果:

    在这里插入图片描述

    我们向format()传递的字典参数,所包含的键值对,必须包含所有的{}名。只能多(正确),不能少(报错)。

    dict_1 = {"name": "KaiSarH",
         "url": "https://blog.csdn.net/KaiSarH",
         "login": "login information"}
    str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
    print(str_2)
    dict_1 = {"name": "KaiSarH",
         "key": "https://blog.csdn.net/KaiSarH",
         "login": "login information"}
    str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1)
    print(str_4)