文章目录

  • 1、什么是格式化输出
  • 2、Python格式化输出的五种方式
    • 方式1:字符串之间用+号拼接
    • 方式2:`print()`函数可同时输出多个字符串
    • 方式3:占位符方式
      • 常用格式化符号
      • 示例:
      • 拓展示例
    • 方式4:f格式化方式(推荐)
    • 方式5:`format()`函数方式
      • `format()`函数对齐方式说明
      • 示例:
  • 3、`print( )`函数结束符
    • `sep`参数
    • `end`参数:结束符

1、什么是格式化输出

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

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

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

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

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

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

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

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

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

方式3:占位符方式

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

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

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

示例:
"""
占位符格式化输出分为两个步骤
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))
# 说明在给占位符赋值的时候是可以进行运算的。
拓展示例
# 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

方式4: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

方式5: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))
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}.
示例:
# 输出结果
# 姓名是: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)。

sep参数

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

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

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="***")

参考:https://blog.csdn.net/luomanluoland/article/details/80630006

【无为则无心Python基础】— 18、Python字符串的格式化输出相关推荐

  1. python123子字符串输出_【无为则无心Python基础】— 13.字符串的格式化输出(一)...

    五.Python字符串的格式化输出 1.什么是格式化输出 数据按照某种特殊的要求输出,假如字符串中有各种格式的数据,要拼接输出: 如果输入一个整数,希望整数按照十六进制,八进制输出. 如果输入一个小数 ...

  2. python基础语法手册format-python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

  3. python按年月日输出字符串_python日期时间转为字符串或者格式化输出的实例

    python日期时间转为字符串或者格式化输出的实例 如下所示: 年月日时分秒 >>> print datetime.datetime.now().strftime("%Y- ...

  4. day 05 多行输出与多行注释、字符串的格式化输出、预设创建者和日期

    msg="hello1 hello2 hello3 " print(msg) 显示结果为: #  "  "只能进行单行的字符串 多行字符串用'''   ''', ...

  5. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  6. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  7. 【数据分析】python基础必修2—字符串/列表/元组/集合/字典

    目录 1.字符串 2.列表 list 2.1list操作练习 3.元组 tuple 4.集合 set 4.1集合间的运算 5.字典 1.字符串 声明一个字符串 # 声明一个字符串# 单引号声明 s = ...

  8. 视频教程-扣丁学堂Python基础视频教程-Python

    扣丁学堂Python基础视频教程 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即订阅 扫码下载「CSD ...

  9. python - 字符串的格式化输出

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...

  10. 二十一. Python基础(21)--Python基础(21)

    二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性:     #类.属性: 调用的就是类中的属性     #对象.属性: 先从自己的内存空间里找名 ...

最新文章

  1. matlab padarray函数详解
  2. android源码包下载
  3. 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)
  4. org.apache.axis.ConfigurationException: No service named ldapOperate is available解决方法
  5. 一览众山小的上一句是什么,怎么理解一览众山小的意思?
  6. 如何在苹果Mac更改通知显示的时长?
  7. 扩展ScriptBundle,支持混淆加密javascript
  8. mac设置多个屏幕显示的问题
  9. 在手机上共享屏幕,更专业的远程协助软件
  10. 程序员必会10种算法
  11. 小车|PID算法 闭环控制 带有 霍尔编码器 的电机
  12. Android肝帝战纪之字体图标库(iconify)的简单使用
  13. AES128加密算法的实现(C/Java/C#)
  14. 6-1 数一数每个数据出现多少次,挑出出现次数最多的那一个
  15. android升级失败,开机logo后卡住,无限重启
  16. Pandas中的appy和applymap
  17. Linux九阴真经之大伏魔拳(zabbix 监控)
  18. WebSocket连接wss链接
  19. java_JSP_1
  20. vue中使用cube-ui实现横向滚动

热门文章

  1. 中国有些东西不是给人吃的,劝大家都看看,为自己为家人
  2. 异步电机变压变频控制(Asynchronous VVVF)-恒压频比控制Simulink仿真
  3. PDF在线预览插件touchPDF.js:手机端预览
  4. 【编程练习】小强去春游
  5. 按下鼠标中键跳转新的页面
  6. 服务器维修故障诊断思路大全
  7. WebView的简单介绍和Android使用WebView无法显示网页
  8. elm and halogen
  9. 自动驾驶入门技术(4)—— 摄像头
  10. 20190829王老师发的面试题1、有一个日志文件access.log,内容如下