format()基本用法

1、 %号

%号格式化字符串的方式从Python诞生之初就已经存在,
目前,Python官方没有弃用这种方式,但也不推荐这种方式。

print (‘我叫%s, 身高%scm’ % (name,height)) ** 传入的值为元组,依次填充
%s :占位符 str()
%d-:十进制 整数
%x : 十六进制
%f :浮点型

指定长度:
%5d 右对齐,不足左边补空格
%-5d - 代表左对齐,不足右边默认补空格
%05d 右对齐,不足左边补0

浮点数:
%f 默认是输出6位有效数据, 会进行四舍五入
指定小数点位数的输出 %.2f—保留小数点后2位
‘%4.8f’ 4代表整个浮点数的长度,包括小数,只有当字符串的长度大于4位才起作用.不足4位空格补足,可以用%04.8使用0补足空格

1.格式化的字符串(%s)与被格式化的字符串(传入的值)必须按照位置一一对应。

print('my name is %s and my age is %s' % ('Bob', '18'))
# my name is Bob and my age is 18

2.可以通过字典方式格式化,打破位置带来的限制和困扰

print('my name is %(name)s and my age is %(age)s' % {'age': '18', 'name': 'Bob'})
# my name is Bob and my age is 18

2、 str.format

该format方法实在Python2.6中引入的是字符串类型的内置方法。
因为str.format的方式在性能上和使用的灵活程度上都比%更胜一筹,所以推荐使用。

2.1、使用位置参数

按照位置顺序一 一对应

str = 'my name is {} and my age is {}'.format('Bob', '18')
print(str)
# my name is Bob and my age is 18

2.2、 使用索引

使用索引获取对应的值

str = 'my name is {1} and my age is {0}'.format('18', 'Bob')
print(str) # my name is Bob and my age is 18

2.3、使用关键字参数或者字典

通过关键字参数或者字典方式可视化,打破位置带来的限制和困扰

str = 'my name is {name} and my age is {age}'.format(name='Bob', age=18)
print(str)  # my name is Bob and my age is 18
dict1 = {'name': 'Bob', 'age': 18}
str1 = 'my name is {name} and my age is {age}'.format(**dict1)  # 使用**解包操作
print(str1)  # my name is Bob and my age is 18

2.4、通过变量赋值

print('姓名是:{name},年龄是:{age}'.format(name='Tom',age=20))
输出:
姓名是:Tom,年龄是:20变量中使用
name = Ada
age = 20
print('Name is {name},age is {age}'.format(name=name,age=age))

2.5、 填充与格式化

先取到值,然后再冒号后设定填充方式:[填充方式][对齐方式][宽度]
{:5} 指定输出长度=50
字符串 {:50}–左对齐
数值 {:50}–右对齐
使用 > < 可以避免字符串/数值对齐方法不一致
右对齐,不足的长度用表示
< 左对齐,不足的长度用
表示
^ 中间对齐, 不足的长度用*表示
: 号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

*<50 ,左对齐,50个字符,不够的用‘*’填充
print('{0:*<50}'.format('Hello World'))
# Hello World****************************************>50 ,右对齐,50个字符,不够的用‘*’填充
print('{0:*>50}'.format('Hello World'))
# ***************************************Hello World*^50 ,居中显示,50个字符,不够的用‘*’填充
print('{0:*^50}'.format('Hello World'))
# *******************Hello World********************

2.5、 精度与进制

print('{0:.2f}'.format(3.1415926)) # 精确小数点后2位,四舍五入显示 3.14
print('{0:b}'.format(15))  # 以2进制显示 1111
print('{0:o}'.format(15))  # 以8进制显示 17
print('{0:x}'.format(15))  # 以16进制显示 f
print('{0:,}'.format(1000000))  # 千分位格式化 1,000,000

3、 f-Strings

str.format()比%格式化高级了一些,但仍然有着自己缺陷,当传入的字符串过多时,仍然显得十分冗长。
Python3.6中引入了f-Strings,不仅比str.format()方法更简洁,同时性能上也略胜一筹。

3.1、f-string用大括{ }表示被替换字段,其中直接填入替换内容即可。

name = 'Tom'
age = 20
print(f'姓名是:{name},年龄是:{age}')输出结果:
姓名是:Tom,年龄是:20

3.2、 f-string填充

① 什么是填充?
  概念:当我们指定了字符串最终的长度的时候,如果现有的字符串没有那么长,那么我们就用某种
   字符(填充字符)来填满这个长度,这就是“填充”。

② 演示代码如下:默认使用空格填充

name = "Huang Wei"
print(f"{name:>20}")
'           Huang Wei'print(f"{name:<20}")
'Huang Wei           'print(f"{name:^20}")
'     Huang Wei      '

③ 用指定字符进行填充

name = "Huang Wei"
print(f"{name:_>20}")
'___________Huang Wei'print(f"{name:_<20}")
'Huang Wei___________'print(f"{name:_^20}")
'_____Huang Wei______'

注意:填充分为左填充、右填充、居中填充。左填充表示在字符串左侧填充,右填充表示在字符串右侧填充,居中填充表示在字符串左右两侧对称填充。>表示左填充,<表示右填充,^表示居中填充。记忆方法:括号口朝左边,就表示左填充;括号口朝右边,就表示右填充

3.3、 f-string数字符号相关格式描述符:仅针对数值有效


a = 12
b = -25
print(f"{a:+}")
'+12'
print(f"{b:+}")
'-25'print(f"{a:-}")
'12'
print(f"{b:-}")
'-25'print(f"{a: }")
' 12'
print(f"{b: }")
'-25'

3.4、f-string截断与填充的结合使用

当需要格式化的数据类型是“字符串”的时候,才会发生截断。  
截断的含义,以及发生截断的条件,都可以可参考我文章开头提到的文章。

a = "Hello"
# 当发生截断的时候,如果不指定填充符,默认使用空格填充
print(f"{a:10.3}")
'Hel       '
# 在发生截断的时候,使用指定的填充符
print(f"{a:_>10.3}")
'_______Hel'
print(f"{a:_<10.3}")
'Hel_______'

其他格式:

Python基础知识——字符串:format() 字符串的格式化相关推荐

  1. Python基础知识(2): 字符串

    字符串 目录 字符串 字符串的基本特点 字符串的编码 引号创建字符 空字符串和 len()函数 转义字符 字符串拼接 字符串复制 不换行打印 从控制台读取字符串 str()实现数字转型字符串 使用[] ...

  2. c# string 占位符_C# 基础知识系列- 9 字符串的更多用法(一)

    0. 前言 在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作. 1. 创建一个字符串 这部分介绍一下如何创建一个字 ...

  3. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  4. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  5. python基础知识-python基础知识(一)

    最近花时间整理了一下以前学过的python基础知识,语言最多的是使用. 1.1 开发模式 交互模式:简单的调试或者测试 开发流程 创建以.py结尾的python文件 在python文件中输入打印&qu ...

  6. Python基础知识总结(期末复习精简版)

    文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...

  7. python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句

    <python教程:利用python基础知识取出对应诗句>由[张国维博客]于2020年05月09日整理发布! 当今科技蓬勃发展的今天,我们学习一门编程语言是很有必要的.随着人工智能行业的兴 ...

  8. [Python笔记_1] Python基础知识要点

    文章目录 1 Python基础知识要点 2 输入与输出 3 变量 4 运算符 5 分支结构 1 Python基础知识要点 1.编程语言所有标点符号都是在英文状态下 print('hello world ...

  9. 第一节课的Python基础知识

    第一节课的Python基础知识 Python内置的数据类型 1.number 2.string 3.list 4.tuple 5.dict 6.set 其他小结 方法range()的使用 获取一个li ...

  10. 1、Python 基础知识总结

    1.Python 简介 Python 是一门简单易学的,面向对象的,解释型的脚本语言,也是一种开源的.可移植性强的.可扩展性强的高级编程语言,常用于科学计算与人工智能.WEB 开发.金融.云计算等领域 ...

最新文章

  1. 软件可读性和效率取舍_网络通信设计中的一些限制和取舍:摘要
  2. numpy 创建数组
  3. Camera初探(二)
  4. 互联网协议 — TCP — 拥塞控制(网络质量保障)
  5. log4j在javaWeb项目中的使用
  6. python3 配置文件操作库 configparser 读取配置文件后 元组列表转字典
  7. js字符串的操作方法
  8. sqlite 统计每张表的记录数_Excel单页式人事管理表,档案记录,自带查询统计,简单实用...
  9. 技术解析系列 | PouchContainer CRI的设计与实现
  10. python函数count_python中count函数知识点浅析
  11. javacv 人脸检测_使用JavaCV进行手和手指检测
  12. 给APK签名,修改签名
  13. Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞
  14. 安全研究员警告:特斯拉 Backup Gateway 联网存在多种安全风险
  15. 【渝粤教育】国家开放大学2018年春季 0047-21T计算机办公软件应用 参考试题
  16. html文字段落加边框线,html边框样式 怎么用html给文字加边框的?
  17. 根据点度分布情况,拟合线性公式
  18. 计算机绘画小房子教案,小班美术教案小房子
  19. 大数据管理平台助力精准扶贫 “建始经验”将在全省推介
  20. 2021年中国纺织钩环市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. 韦达圆周率c语言,韦达对圆周率的表达式 – 手机爱问
  2. Ubuntu系统将域名指向指定IP
  3. channel java_Java Channel
  4. 关于/etc/hosts文件
  5. 大话数据结构 —— 2.9 算法时间复杂度(合集)
  6. Pycharm使用技巧:Split Vertically/Horizontally(垂直/水平拆分窗口)
  7. 新一代超低功耗STM32U5,到底有啥亮点?
  8. android百度地图清除marker,百度地图去掉marker覆盖物的方法
  9. 0-5V转4-20mA信号隔离器、0-10V转换器、直流模块
  10. react 日期格式 排序