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)

运行结果:

注意:我们可以向format()中传递多个字典,但是不可以含有相同键。

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

运行结果:

- 传递列表
list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]
str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)

运行结果:


除了传递一个列表,我们也可以向format()中传递多个列表,只需保证取值的时候无误就可以。

list_1 = ["ZhangSan","https://blog.csdn.net/KaiSarH"]
list_2 = ["KaiSarH", "http:www.baidu.com"]
str_3 = "博主:{1[0]}, 博客地址:{0[1]}".format(list_1, list_2)

运行结果:

③向format()中传入对象,进行赋值

与列表相同,我们同样可以向format()中传递多个对象,只要在赋值的之后做好对应就可以。

class Dog:def __init__(self, name):self.name = nameclass Mouse:def __init__(self, name):self.name = nametom = Dog("Tom")
jerry = Mouse("Jerry")str_1 = "{0.name} want to eat {1.name}".format(tom, jerry)
print(str_1)

运行结果:

二、对数字进行格式化

对于数字的格式化,我们主要是在{}中进行设置格式化数字的多种方法

  • 1.保留小数点后n位
    格式:{:.nf}
print(" {:.1f}".format(3.1415926535))
print("    {:.3f}".format(3.1415926535))
print("    {:.4f}".format(3.1415926535))
print("    {:.6f}".format(3.1415926535))

运行结果:

  • 2.带符号保留小数点后n位
    格式: {:+.nf}
print(" {:+.1f}".format(3.1415926535))
print("    {:+.3f}".format(-3.1415926535))
print("    {:+.4f}".format(3.1415926535))
print("    {:+.6f}".format(-3.1415926535))

运行结果:

{:.nf} 和 {:+.nf}的区别
负数无区别,整数有无符号。

print(" {:.1f}".format(3.1415926535))
print("    {:+.1f}".format(3.1415926535))
print("    {:.3f}".format(-3.1415926535))
print("    {:+.3f}".format(-3.1415926535))
print("    {:.4f}".format(3.1415926535))
print("    {:+.4f}".format(3.1415926535))
print("    {:.7f}".format(-3.1415926535))
print("    {:+.7f}".format(-3.1415926535))

运行结果:

  • 3.不带小数(只保留整数)
    格式: {:.0f}
print(" {:.0f}".format(3.1415926535))
print("    {:.0f}".format(-3.1415926535))
print("    {:.0f}".format(3.8415926535))

运行结果:

  • 4.如果整数的位数不足n位,在左边进行数字补零。如果已经够了n位,直接输出
    格式: {:0>nd}
print(" {:0>2d}".format(5))
print("    {:0>3d}".format(5))
print("    {:0>5d}".format(123456))

运行结果:

  • 5.如果整数的位数不足n位,在右边进行x补充。如果已经够了n位,直接输出
    格式: {:x<4d}
print("{:x<2d}".format(5))
print("{:x<3d}".format(5))
print("{:x<4d}".format(123456))

运行结果:

很显然,在补充操作中,我们既可以指定在哪一边补充,也可以指定补充的值为什么。
我们也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f}对浮点数进行操作

  • 6.以逗号分隔数字格式,每三位加入一个,
    格式: {:,}
print(" {:,}".format(314156926))

运行结果:

  • 7.百分比格式(在我理解,就是把数字×100,保留两位数字,然后加一个百分号)
    格式: {:.2%}
print("{:.2%}".format(0.27896))

运行结果:

  • 8.指数记法
    格式:{:.2e}
print("{:.2e}".format(100))

运行结果:

  • 9.右对齐(默认宽度为10)
    格式: {:>10d}
print(" {:>10d}".format(100))
print("    {:>10d}".format(2))
print("    {:>10d}".format(12580))

运行结果:

  • 10.左对齐(默认宽度为10)
    格式: {:<10d}
print("{:<10d}".format(100))
print("{:<10d}".format(2))
print("{:<10d}".format(12580))

运行结果:

  • 11.中间对齐(默认宽度为10)
    格式:{:^10d}
print("{:^10d}".format(100))
print("{:^10d}".format(2))
print("{:^10d}".format(12580))

运行结果:

  • 12.进制——b、d、o、x 分别是二进制、十进制、八进制、十六进制。
    格式:
    ‘{:b}’.format(11)
    ‘{:d}’.format(11)
    ‘{:\o}’.format(11)
    ‘{:x}’.format(11)
    ‘{:#x}’.format(11)
    ‘{:#X}’.format(11)
print("{:b}".format(125))
print("{:d}".format(125))
print("{:o}".format(125))
print("{:x}".format(125))
print("{:#x}".format(125))
print("{:#X}".format(125))

运行结果:

当我们在格式化中,传入的参数中包含{}的时候,我们可以用{}进行转义。
当我们直接在format()中对参数进行赋值的时候,我们必须要把对参数的赋值放在最后

print("{name}对应的位置是{{0}},{}对应的位置是{{1}}".format("489", "zhangsan", name="123"))

运行结果:

Python:详解format格式化函数相关推荐

  1. python语言format用法_详解Python中的format格式化函数的使用方法

    format函数实现字符串格式化的功能 基本语法为: 通过 : 和 {} 来控制字符串的操作 一.对字符串进行操作 1. 不设置指定位置,按默认顺序插入 ①当参数个数等于{}个数的时候 str_1 = ...

  2. python input与返回值-Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令 ...

  3. python format函数实例_Python字符串格式化,format格式化函数详细使用

    Python接触比较多的是字符串,那么操作字符串也就多.Python 支持格式化字符串的输出 . 尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的字符串中. 代码 ...

  4. python format 格式化函数的用法 格式化字符串(保留小数{:.2f}、数字补零)

    引用文章:Python format 格式化函数

  5. python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...

    本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...

  6. MaxCompute SQL函数详解 ODPS SQL函数详解---之日期相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解 日期函数 to_date函数 返回类型:datetime 语法:to_date(类型 参数1,类型 参数2);to_date(strin ...

  7. 详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示

    详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示 目录 01-详解函数imread():读取图像文件 02-详解函数imshow():显示图像 03-使用 ...

  8. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解

    PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...

  9. VB中的format格式化函数

    VB Format函数 Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 - - - - - - - - - - - - - - - ...

  10. 你是真的“C”——详解C语言函数模块知识(上篇)

    详解C语言函数模块知识(上篇)

最新文章

  1. buffers与cached的区别
  2. elasticsearch建立索引操作的API
  3. java节假日api--关于节假日想到的
  4. Delphi中类型转换函数
  5. python可以用来整理表格吗_Python将多份excel表格整理成一份表格
  6. linux生成大文件
  7. oracle动态语句打开游标,Oracle动态语句中返回游标
  8. 华为云GaussDB:发挥生态优势,培养应用型DBA
  9. 职业发展加速器,埃森哲智能云服务创新中心热招云人才
  10. 841. 钥匙和房间
  11. 爬虫、请求库requests
  12. 计算机电子表格公式应用和操作,计算机电子表格公式应用常见错误及处理
  13. Qt_17行代码 QString英文字符串转16进制显示
  14. go语言中文乱码gbk转UTF8
  15. 关于杭州电子科技大学毕业论文格式设置
  16. chrome 抓取图片_利用chrome开发工具进行动态网页抓取
  17. SYSAUX表空间占用过大情况下的处理(AWR信息过多)
  18. 读书项目:ePub标准介绍
  19. 记一次查询性能优化,原30s+,现0.5s~20s
  20. vue 使用video加载视频进行展示,视频循环自动播放

热门文章

  1. 95. php 与 xml
  2. 14. jQuery - 添加元素
  3. 18. 分支管理策略
  4. 模态框 (框架引入出现的问题)
  5. [bzoj2002][Hnoi2010]Bounce 弹飞绵羊(LCT)
  6. [2019杭电多校第四场][hdu6614]AND Minimum Spanning Tree(贪心)
  7. 禁止ViewPager滑动
  8. iOS - 数组字典模型根据模型属性key排序
  9. 个人总结OLinux上安装oracle11G Data Guard
  10. 关于web开发的一点理解