『无为则无心』Python基础 — 10、Python字符串的格式化输出
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字符串的格式化输出的更多相关文章
- 『无为则无心』Python基础 — 12、Python运算符详细介绍
目录 1.表达式介绍 2.运算符 (1)运算符的分类 (2)算数运算符 (3)赋值运算符 (4)复合赋值运算符 (5)比较运算符 3.逻辑运算符 拓展1:数字之间的逻辑运算 拓展2:Python中逻辑 ...
- 『无为则无心』Python基础 — 4、Python代码常用调试工具
目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...
- 『无为则无心』Python基础 — 6、Python的注释
目录 1.注释的作用 2.注释的分类 单行注释 多行注释 3.注释的注意事项 4.什么时候需要使用注释 5.总结 提示:完成了前面的准备工作,之后的文章开始介绍Python的基本语法了. Python ...
- 『无为则无心』Python基础 — 7、Python的变量
目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...
- 『无为则无心』Python序列 — 24、Python序列的推导式
目录 1.列表推导式 (1)快速体验 (2)带if的列表推导式 (3)多个for循环实现列表推导式 2.字典推导式 (1)创建一个字典 (2)将两个列表合并为一个字典 (3)提取字典中目标数据 3.集 ...
- 『无为则无心』Python函数 — 29、Python变量和参数传递
目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...
- 『无为则无心』Python函数 — 33、高阶函数
目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...
- 『无为则无心』Python日志 — 64、Python日志模块logging介绍
目录 1.日志的作用 2.为什么需要写日志 3.Python中的日志处理 (1)logging模块介绍 (2)logging模块的四大组件 (3)logging日志级别 1.日志的作用 从事与软件相关 ...
- python基础之常用模块以及格式化输出
模块简介 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
随机推荐
- Java_常用类API之一
Math类 Math类中包含一些对数据进行数学运算的方法,而该类中的方法全都是静态的.像这样的类称之为工具类. 1 public static int abs(int a) 2 对一个数据求绝对值 3 ...
- Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
selenium + java + mac + idea 报错分析: 网上搜的教程,配置selenium 自动化测试环境,都是只让导入 client-combined-3.141.59-sources ...
- Mac 无密码 SSH 登录服务器
Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...
- 关于.NET微服务最热门的问题解答
在我们最近让我们一起学习.NET的微服务专场活动中,我们收到了一些很好的问题.我们在现场已经回答很多问题,但我们想继续回答一些在会议中出现的最热门的问题.如果你错过了现场直播,不要担心,因为你可以按需 ...
- [设计模式] 设计模式课程(十二)-- 门面模式(Facade)
概述 也称外观模式 按目的属于结构型模式,按封装属于接口隔离模式 在组件构建过程中,某些接口之间的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口 ...
- Linux_配置本地YUM源(RHEL8)
[RHEL8] Linux-RHEL8配置本地YUM 源,按照之前传统的配置本地YUM的方法肯定不行,在RHEL8版本的软件源发生了变化,在RHEL8版本的软件仓库分成了两部分:[AppStream] ...
- Python基础之变量、输入、输出
一.Hello World程序 在Windows终端执行python C:\Users\renyz02>python Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 2 ...
- Java 将Excel转为SVG的方法
本文以Java示例展示如何将Excel文档转为SVG格式.通过本文中的方法,在将Excel转为SVG时,如果sheet工作表中手动设置了分页,则将每个分页的内容单独保存为一个svg文件,如果sheet ...
- 删除win10系统下文件默认打开方式的关联-win10配置
现象 文件默认打开方式错误 链接到老的打开软件 无法图形化重定义关联软件 文件图标关联异常 1. 打开注册表编辑器 win + R regedit 2. 修改注册表 找到以下注册表路径,找到指定的文件 ...
- Windows 10, version 21H1 ARM64
请访问原文链接:https://sysin.org/article/windows-10-arm/,查看最新版.原创作品,转载请保留出处. Windows 10, version 21H1 (rele ...