python如何进行格式化输出变量_Python变量格式化输出实现原理解析
print() 函数使用以 % 开头的转换说明符对各种类型的数据进行格式化输出。
转换说明符(Conversion Specifier)只是一个占位符(也称为格式化操作符),它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。
转换说明符
解释
%d、%i
转换为带符号的十进制整数
%o
转换为带符号的八进制整数
%x、%X
转换为带符号的十六进制整数
%e
转化为科学计数法表示的浮点数(e 小写)
%E
转化为科学计数法表示的浮点数(E 大写)
%f、%F
转化为十进制浮点数
%g
智能选择使用 %f 或 %e 格式
%G
智能选择使用 %F 或 %E 格式
%c
格式化字符及其 ASCII 码
%r
使用 repr() 函数将表达式转换为字符串
%s
使用 str() 函数将表达式转换为字符串
%%
输出%
在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。
中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。
当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符,多个表达式必须使用小括号( )包围起来。
举例
name = '小明'
print("我的名字叫 %s,请多多关照!" % name)
# 我的名字叫 小明,请多多关照!
student_no = 1
print("我的学号是 %06d" % student_no)
# 我的学号是 000001
scale = 0.2
print("数据比例是 %.02f%%" % (scale * 100))
# 数据比例是 20.00%
指定最小输出宽度
当使用转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置):
%10d 表示输出的整数宽度至少为 10
%20s 表示输出的字符串宽度至少为 20
n = 1234567
print("n(10):%10d." % n)
print("n(5):%5d." % n)
url = "https://www.baidu.com/python/"
print("url(35):%35s." % url)
print("url(20):%20s." % url)
执行结果为:
n(10): 1234567.
n(5):1234567.
url(35): https://www.baidu.com/python/.
url(20):https://www.baidu.com/python/.
从执行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。
指定对齐方式
默认情况下,print() 输出的数据总是右对齐的。
当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。
Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python支持的标志如下。
标志
说明
-
指定左对齐
+
表示输出的数字总要带着符号;整数带+,负数带-。
0
表示宽度不足时补充 0,而不是补充空格。
几点说明:
对于整数,指定左对齐时,在右边补0是没有效果的,因为这样会改变整数的值。
对于小数,以上三个标志可以同时存在。
对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。
例子:
n = 123456
# %09d 表示最小宽度为9,左边补0
print("n(09):%09d" % n)
# %+9d 表示最小宽度为9,带上符号
print("n(+9):%+9d" % n)
f = 140.5
# %-+010f 表示最小宽度为10,左对齐,带上符号
print("f(-+0):%-+010f" % f)
s = "Hello"
# %-10s 表示最小宽度为10,左对齐
print("s(-10):%-10s." % s)
执行结果
n(09):000123456
n(+9): +123456
f(-+0):+140.500000
s(-10):Hello .
指定小数精度
对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。
精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:
%m.nf
%.nf
m 表示最小宽度,n 表示输出精度,. 是必须存在的。
请看下面的代码:
f = 3.141592653
# 最小宽度为8,小数点后保留3位
print("%8.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0
print("%08.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0,带符号
print("%+08.3f" % f)
运行结果:
3.142
0003.142
+003.142
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: Python变量格式化输出实现原理解析
本文地址: http://www.cppcns.com/jiaoben/python/331359.html
python如何进行格式化输出变量_Python变量格式化输出实现原理解析相关推荐
- python格式化输出多个变量_Python变量的格式化输出
print() 函数使用以 % 开头的转换说明符对各种类型的数据进行格式化输出. 转换说明符(Conversion Specifier)只是一个占位符(也称为格式化操作符),它会被后面表达式(变量.常 ...
- python定义int变量_Python变量以及常用数字类型(上)
好好学习,天天向上.又到了齐小猴写笔记的时间,今天的内容是python 变量以及常用数字类型,废话不多说,撸起袖子开始写 变量 1.说到变量,先回顾上一篇说过的标识符,自己定义,自己命名,由字母,下划 ...
- c语言调用python变量_Python变量
在编程语言中,变量是一个必不可少的词,大家也可以把变量理解成名字,也可以理解为一个标签. 举个例子来讲解一下变量,比如我们购买了一套名为"dotcpp"的房子,我们在"d ...
- python怎么定义int变量_Python 变量类型 | 菜鸟教程
Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...
- python的常量和变量_python变量和常量
变量 什么是变量? 变量,是用于在内存中存放程序数据的容器 计算机的最核心功能就是"计算", 计算需要数据源,数据源要存在内存里,比如我要把小明的姓名.身高.年龄信息存下来,后面程 ...
- python保存变量_python | 变量-保存与命名规则
1 变量生成 python中生成变量无须事先声明,系统会根据赋值或表达式运算结果值,自动推断变量类型.在python中,变量生成的语法如下:变量名 = 数据或表达式 x = 123 type(x) # ...
- python定义一个整数变量_Python变量与常量
1.什么是变量 a=1,其中 a 就是变量名称,1 就是它的值.在程序运行过程中,变量的值一般都会发生改变,内存中会专门开辟一段空间,用来存放变量的值,而变量名将指向这个值所在的内存空间.与变量相对的 ...
- python输出名片_Python的格式化输出--制作名片
效果图 代码如下: name = input("Your name:") age = int(input("Your age:")) job = input(& ...
- python字符串操作符结果没显示_Python字符串格式化 (%操作符)
在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出.Python中内置有对字符串进行格式化的操作%. 模板 格式化字符串时,Python使用一个字符串作为模板.模 ...
最新文章
- c语言spi发送12位数据,【51单片机】普通I/O口模拟SPI口C语言程序
- jmeter 逻辑控制器
- mysql数据备份mysqldump
- linux识别新加存储盘,Linux下新加磁盘
- 【Boost】系列03:内存管理之shared_ptr智能指针
- 拉文大学计算机科学,拉文大学
- Hello Android
- RocketMQ源码解析:Message存储
- 【023】翼辉信息于南京召开国产嵌入式信息产业前沿技术交流会暨SylixOS新版发布会
- 数据结构第七次作业·第四题·北京地铁线路查询Dijkstra算法
- 双硬盘双系统安装win10和centos7
- 补遗篇之单行道标志const
- CMAQ5.3安装笔记
- 【Unity2D入门教程氵篇】简单制作一个弹珠游戏之制作场景④(设置不可破坏砖块,发布游戏设置)
- 中国剩余定理(CRT)
- Intel opencl sdk下载安装
- 程序猿要知道的:如何精心打造产品的“开始一公里”
- 排序算法——十大排序算法总结与对比
- 百度、阿里、小米决战智能音箱
- Linux网络环境配置 虚拟机网络环境配置
热门文章
- 07 | 链表(下):如何轻松写出正确的链表代码?
- leetcode 701 二叉搜索树的插入操作 C++ 递归和迭代
- [给ASP.NET 初学者的话]不要练功练了三年,才发现自己必须「砍掉重练」!....学习ASP.NET之前,请先把自己杯中的水倒掉...
- 神经网络中使用Batch Normalization 解决梯度问题
- 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)
- 解决Firefox已阻止运行早期版本Adobe Flash
- SQLite For .Net 已经整合了32位和64位
- hdu 3308 线段树
- 第八章方差分析以及线性回归(2)
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]44在ECC密码学方案中基本的防御方法