1、什么是格式化输出

数据按照某种特殊的要求输出,假如字符串中有各种格式的数据,要拼接输出:

  • 如果输入一个整数,希望整数按照十六进制,八进制输出。
  • 如果输入一个小数,希望小数保留后面2位数然后输出。
  • 以科学计数法的方式来输出小数。
  • 字符串的输出希望在十个格子内输出,或者左对齐,居中等等

即所谓的格式化输出就是需要按照一定的格式输出内容。

2、Python格式化输出的五种方式

Python的字符串变量有五种输出方式,下面我们分别来介绍一下。

方式一:字符串之间用+号拼接

# 字符串之间也可以进行加法运算
# 如果将两个字符串进行相加,则会自动将两个字符串拼接为一个字符串
a = 'abc' + 'haha' + '哈哈'
print("a = "+ a) # a = abchaha哈哈 # 字符串只能和字符串之间用+号进行拼接,
# 不能和其他的类型进行加法运算,如数值型变量。
# 如果做了会出现异常 TypeError: must be str, not int
a = 123
print("a = "+a) # 报错
# 这种写法在Python中不常见

方式二:print()函数可同时输出多个字符串

# print()函数可同时输出多个字符串
print("hello","ptyhon") # hello ptyhon # 这种写法无论a是什么类型变量,
# 都能进行拼接字符串输出了。
a = 123
print('a =',a) # a = 123
b = 18
print("我今年",b,"岁") # 我今年 18 岁
# 注意:这种输出方式拼接的字符串,拼接的位置会有空格。
# 这种方式在实际开发中也不常用。

方式三:占位符方式

表示在创建字符串时,可以在字符串中指定占位符。

1)常用格式化符号

格式符号 转换
%s(常用) 字符串
%d(常用) 有符号的十进制整数
%f(常用) 浮点数
%c 字符
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写ox
%X 十六进制整数(大写OX
%e 科学计数法(小写e
%E 科学计数法(大写E
%g %f%e的简写
%G %f%E的简写

我们常用的格式化符号是前三个,剩下的不用去死记硬背,以后用到的时候可以来笔记中查询即可。

2)示例

"""
占位符格式化输出分为两个步骤
1. 准备数据(定义输出变量)
2. 格式化符号输出数据(执行输出)
""" # 1. 今年我的年龄是x岁 -- 整数 %d
# 结果:今年我的年龄是18岁
age = 18
print('今年我的年龄是%d岁' % age) #如果占位符没有添加内容,则原样输出占位符。
#结果:今年我的年龄是%d岁
print('今年我的年龄是%d岁') # 2. 我的名字是x -- 字符串 %s
# 结果:我的名字是TOM
name = 'TOM'
print('我的名字是%s' % name) # 3. 我的体重是x公斤 -- 浮点数 %f
# 结果:我的体重是75.500000公斤
weight = 75.5
print('我的体重是%f公斤' % weight)
# 说明%f默认显示小数点后6位 # %.xf,表示小数点后显示的小数位数。
# 结果:我的体重是75.50公斤
print('我的体重是%.2f公斤' % weight) # 4. 我的学号是x -- %d
# 结果:我的学号是1
stu_id = 1
print('我的学号是%d' % stu_id) # %03d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出
stu_id2 = 1000
print('我的学号是%03d' % stu_id) # 001
print('我的学号是%03d' % stu_id2) # 1000 # 5. 我的名字是x,今年x岁了
# 把前边的占位符,按顺序在()小括号内进行赋值,用逗号分隔。
# 结果:我的名字是TOM,今年18岁了
print('我的名字是%s,今年%d岁了' % (name, age)) # 我的名字是x,明年x岁了
# 结果:我的名字是TOM,今年19岁了
print('我的名字是%s,明年%d岁了' % (name, age + 1))
# 说明在给占位符赋值的时候是可以进行运算的。

3)拓展示例

# 接上面练习
# 6. 我的名字是x,今年x岁了,体重x公斤
# 结果:我的名字是TOM,今年18岁了,体重75.50公斤
name = 'TOM'
age = 18
weight = 75.5
print('我的名字是%s,今年%d岁了,体重%.2f公斤,学号是%06d' % (name, age, weight)) # 拓展
# 因为最终结果是以字符串输出完整句子
# 那字符串中所有的数据都可以用字符串进行占位输出
# 我的名字是x,今年x岁了,体重x公斤
# 结果:我的名字是TOM,今年18岁了,体重75.5公斤
print('我的名字是%s,今年%s岁了,体重%s公斤' % (name, age, weight))
# 总结:如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串。 # 7、%d占位符,如果传入的是小数,只保留整数部分
print('hello %d' % 123.95) # hello 123 # 8、%3.5s字符串的长度限制在3-5之间,多了截取,少了补空格
print('hello %3.5s' % 'abcdefg') # hello abcde
print('hello%3.5s' % 'abc') # helloabc
print('hello%3.5s' % 'ab') # hello ab # 9、左对齐、右对齐
# 右对齐,取20位,不够则空格补位
print('%20s' % 'hello python') # 左对齐,取20位,不够则空格补位
print('%-20s' % 'hello python')
# 上面两句代码执行结果如下
hello python
hello python

方式四:f格式化方式(推荐)

格式化字符串除了%s,还可以写为f'{表达式}'

f格式化字符串是Python3.6中新增的格式化方法,该方法更简单易读,性能更高效。

# 在f格式化字符串中可以直接嵌入变量,{ }内就是变量的名称,也可以进行运算赋值。
age = 18
name = 'TOM' # 我的名字是TOM,明年19岁了
# 结果:我的名字是TOM,明年19岁了
print('我的名字是%s,明年%d岁了' % (name, age + 1)) # 我的名字是TOM,明年19岁了
# 结果:我的名字是TOM,明年19岁了
print(f'我的名字是{name},明年{age + 1}岁了') # 注意:
# 在格式化字符串中,所引用的变量一定是被定义过的。
# 如果引用的变量没有被定义,就会报错NameError: name 'xx' is not defined
print(f'我的名字是{name},明年{age + 1}岁了,体重{weight}公斤')
# NameError: name 'weight' is not defined

方式五:format()函数方式

通过字符串的format()方法进行格式化输出。

# 1、顺序填坑:{} 占位符
# 输出结果:姓名是Tom,年龄是20
print('姓名是{},年龄是{}'.format('Tom',20)) # 2、下标填坑(自定义顺序匹配):
# format方法里参数的脚标从0开始。
# 输出结果:姓名是:Tom,年龄是:20
print('姓名是:{1},年龄是:{0}'.format(20,'Tom')) # 3、变量填坑(键值匹配):
# 占位符中的变量名和参数中定义的变量名一一对应。
# 输出结果:姓名是:Tom,年龄是:20
print('姓名是:{name},年龄是:{age}'.format(name='Tom',age=20))

1)format()函数对齐方式说明

数字 格式 输出 描述
5 {:0>2} 05 数字补零 (靠右填充左边, 宽度为2)
5 {:x<4} 5xxx 补x (靠左,填充右边, 宽度为4)
10 {:x^4} x10x 补x (居中填充, 宽度为4)
13 {:10} 13 右对齐 ( 宽度为10),默认对齐方式
13 {:<10} 13 左对齐 (宽度为10)
13 {:^10} 13 中间对齐 (宽度为10)

说明:

  • 对齐方式直白语法(1):(2)补全的内容(符号)(3)补全方向 (4)字符串总宽度
  • (1)冒号:固定写法
  • (2)补全的内容(符号):自己定义,就是长度不够的时候,可以补0或者*等。
  • (3)补全方向:<填充右边,>填充左边,也就是口向哪边,就向哪个方向填充,^表示居中。
  • (3)字符串总宽度:就是占位符变量的字符长度,字符长度不够总宽度,按方向补全(2)定义的符号。
  • 冒号前可定义上边所说的下标{1:x<4},也可以是变量名{name:x^4}.

2)示例

# 输出结果
# 姓名是:Tom********
# 年龄是:*********20
print('姓名是:{0:*<11}\n年龄是:{1:*>11}'.format('Tom',20)) # 输出结果
# 姓名是:****Tom****
# 年龄是:****20*****
print('姓名是:{0:*^11}\n年龄是:{1:*^11}'.format('Tom',20))

3、print()函数结束符

如果设置了print()函数的结束符号,我们可以控制格式化输出数据的各种展示方式。

print()是Python的一个内置函数,它有哪些具体的参数呢?

如下图所示:

简单说明:

  • print()函数的作用:打印相应的内容。
  • print()函数的返回值为None。(None的内容可以看之前的总结)
  • file参数:原始的sys.stdout指向控制台。(其他的看表中描述,更多的自己去扩展。)
  • flush参数:flush值为True或者False,默认为Flase。表示是否立刻将输出语句输入到参数file指向的对象中(默认是sys.stdout)。

(1)sep参数

sep参数用来间隔多个对象,默认值是一个空格。

# 使用print()函数,同时输出多个参数,多个参数之间是默认用空格分隔的。
# 输出结果:
# hello python
print("hello","python") # 输出结果:
# hello***python
# www.baidu.com
print("hello","python",sep="***")
print("www","baidu","com",sep=".")

(2)end参数:结束符

想一想,为什么两个print()函数之间会换行输出?

在Python中print()函数, 默认自带end="\n"这个换行结束符,所以导致每两个print()函数之间直接会换行展示,用户可以按需求更改结束符。

总结:end =什么就会在输出的末尾添加什么,默认值是换行符\n,我们可以换成其他字符串。

# print()函数默认结束符end="\n"
# 输出结果:
# hello
# python
print("hello",end="\n")
print("python",end="\n") # end参数可以换任何符号,如制表符或者自定义符号
# 输出结果:
# hello python***
print("hello",end="\t")
print("python",end="***")

4、补充:Python的输入函数input()

(1)Python的输入说明

  • 在Python中,程序接收用户输入的数据的功能即是输入。
  • input()函数是Python中的一个内置函数。
  • Python3.x input()函数接受一个标准输入数据,返回为 String 类型数据。

提示:如何查看Python的内置函数

我们安装好Python的解释器就在本地有一份官方文档了。

官方文档位置:[开始] —> [所有程序] —> [ Python 3.7] —> [Python 3.7 Manuals (64-bit)]

打开文档:[The Python Standard Library] —> [Built-in Functions] 即可查看

如下图所示:

跳转界面就能够看到,如下图:

(2)输入的语法

使用input()函数接收用户输入的信息。

# input()函数中可以设置一个字符串作为参数,
# 这个字符串将会作为提示文字显示。
input("input函数给用户的提示信息")

(3)输入的特点

  • 当程序执行到input()函数的时候,需要等待用户输入,输入完成回车之后才继续向下执行。
  • 在Python中,input()函数接收用户输入后,一般存储到变量,方便使用。
  • 在Python中,input()函数会把接收到的任意用户输入的数据都当做字符串处理,进行返回。

(4)示例

# 用password变量接收键盘输入的值
password = input('请输入您的密码:') # 输出接收到的数据到控制台查看
print(f'您输入的密码是{password}') # 查看接到的收数据的数据类型
print(type(password))

控制台输出结果如下图:

『无为则无心』Python基础 — 10、Python字符串的格式化输出的更多相关文章

  1. 『无为则无心』Python基础 — 12、Python运算符详细介绍

    目录 1.表达式介绍 2.运算符 (1)运算符的分类 (2)算数运算符 (3)赋值运算符 (4)复合赋值运算符 (5)比较运算符 3.逻辑运算符 拓展1:数字之间的逻辑运算 拓展2:Python中逻辑 ...

  2. 『无为则无心』Python基础 — 4、Python代码常用调试工具

    目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...

  3. 『无为则无心』Python基础 — 6、Python的注释

    目录 1.注释的作用 2.注释的分类 单行注释 多行注释 3.注释的注意事项 4.什么时候需要使用注释 5.总结 提示:完成了前面的准备工作,之后的文章开始介绍Python的基本语法了. Python ...

  4. 『无为则无心』Python基础 — 7、Python的变量

    目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...

  5. 『无为则无心』Python序列 — 24、Python序列的推导式

    目录 1.列表推导式 (1)快速体验 (2)带if的列表推导式 (3)多个for循环实现列表推导式 2.字典推导式 (1)创建一个字典 (2)将两个列表合并为一个字典 (3)提取字典中目标数据 3.集 ...

  6. 『无为则无心』Python函数 — 29、Python变量和参数传递

    目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...

  7. 『无为则无心』Python函数 — 33、高阶函数

    目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...

  8. 『无为则无心』Python日志 — 64、Python日志模块logging介绍

    目录 1.日志的作用 2.为什么需要写日志 3.Python中的日志处理 (1)logging模块介绍 (2)logging模块的四大组件 (3)logging日志级别 1.日志的作用 从事与软件相关 ...

  9. python基础之常用模块以及格式化输出

    模块简介 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

随机推荐

  1. python爬虫——拉钩网python岗位信息

    之前爬取的网页都是采用"GET"方法,这次爬取"拉勾网"是采取了"POST"的方法.其中,"GET"和"POS ...

  2. 设置vue全局配置

    全局配置 创建全局配置文件 vue.config.js 添加配置项

  3. HTML中的全局属性

    一.全局属性和局部属性 每种元素都有自己规定的属性,这种属性成为局部属性.还有另外一种属性,他可以用来配置所有元素的共有行为,这种属性成为称为全局属性.全局属性可以用在任何一个元素身上,但是不一定会带 ...

  4. 【转载】kvm迁移

    https://www.jianshu.com/p/60132085a3c9 kvm分静态和动态迁移,静态就是关机迁移,比较简单,动态迁移就是不关闭服务器进行迁移.静态迁移:确定虚拟机关闭 https ...

  5. centos 7 启动和关闭zabbix 服务

    systemctl start zabbix-server  启动服务端 systemctl stop zabbix-server  停止服务端 systemctl start zabbix-agen ...

  6. linux服务器市场特性高可用高性能 (集群上体现)安全

    https://www.linuxprobe.com/chapter-00.html 1 linux安全 更安全 对比windows  代码漏洞 及时修补 全世界看到源代码 2 linux 可以卸载图 ...

  7. nginx 的三种虚拟主机配置方法

    nginx三种虚拟主机配置的方法. 基于端口 在生产环境中一般使用端口或者域名. [root@web01 /etc/nginx/conf.d]# cat web01.conf server { lis ...

  8. 11.16-18 lsci、ipcs、ipcrm:清除ipc相关信息

    lspci:显示所有PCI设备 lspci命令用来显示系统中的所有PCI总线设备或是连接到该总线上的所有设备. lspci命令的参数选项及说明 -v     显示详细信息 -vv    显示更详细的信 ...

  9. 2.1PyCharm 的初始设置

    PyCharm 的初始设置(知道) 目标 恢复 PyCharm 的初始设置 第一次启动 PyCharm 新建一个 Python 项目 设置 PyCharm 的字体显示 PyCharm 的升级以及其他 ...

  10. 彻底弄懂HTTP缓存机制及原理【转载】

    前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能.但是对于很多前端同 ...