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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java json 返回null,[] Spring4 MVC 返回json格式时候 设置不返回null值属性的有关问题...

[求助] Spring4 MVC 返回json格式时候 设置不返回null值属性的问题本帖最后由 bighong0404 于 2015-10-06 12:45:38 编辑背景:使用responseBody设置以json格式返回数据时候. 有时候被返回的对象有些属性是null值, 默认还是会输出. 例如下面代码. 在与移动端交互时候会很浪费流量…

log4j无厘头异常

今天系统升级&#xff0c;是web程序&#xff0c;备份程序之后&#xff0c;替换class下面的com的全部类文件后shutdown tomcat&#xff0c;然后启动程序&#xff0c;startup之后出现 java.lang.NullPointerException at org.apache.log4j.spi.LocationInfo.<init>(Loca…

res_config_mysql和chan_sip模块的加载分析

1. res_config_mysql的模块加载早于chan_sip&#xff0c;他们的加载函数均为load_module 先分析res_config_mysql的load_module函数 parse_config(0); parse_config解析res_config_mysql文件&#xff0c;并用文件中的配置信息填充mysql_conn结构体 我当前的res_config_mysql文件…

如何连接安卓手机_安卓手机如何使用AirPods

苹果公司推出的无线蓝牙耳机AirPods可以说是市面上最好的无线耳机&#xff0c;配合iPhone使用能够给你带来畅快舒适的体验。有很多小米华为oppo&#xff0c;vivo等安卓手机用户也在问了&#xff0c;安卓手机能够支持AirPods呢&#xff0c;答案是肯定的。图片来源&#xff1a;网…

晒一下我的代码生成器

经过最近一段新的尝试【BS架构】,之前的编程一直是CS架构&#xff0c;但也总是在忙那些项目&#xff0c;没法整理出一套符合自己团队的一套编程体系和架构&#xff1b; 新的起点&#xff0c;又是一个新的挑战&#xff0c;现在已经是03年&#xff0c;最早做的时候是07年&a…

discuz viewthread.php,修改discuz论坛的标题header和footer

1、关于去掉DZ论坛标题处的Powered by Discuz!&#xff0c;去掉他的原因是为了使标题更加简洁明了&#xff0c;还有就是不被搜索到导致SPAM&#xff1a;具体的修改方法&#xff1a;打开/templates/default/header.htm&#xff0c;在第五行中直接删除&#xff1a;- Powered by D…

sed命令详解

转载&#xff1a;http://blog.chinaunix.net/u/22677/showart_1076318.html1.简介sed是非交互式的编辑器。它不会修改文件&#xff0c;除非使用shell重定向来保存结果。默认情况下&#xff0c;所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件&#xff08;或输入&#xff…

Oracle中的单值函数

Oracle的函数 Oracle函数可以分为单值函数和分组函数两大类&#xff0c;单值函数又分为字符函数、日期和时间函数、数字函数、转换函数和混合函数&#xff1a;分组函数右count、max、min、avg、sum&#xff0c;都可以和group by 搭配使用。 单值函数 1、 字符函数 l 字符串连…

asterisk账号和拨号方案mysql存储(静态)

asterisk账号和拨号方案的静态存储相对动态的话&#xff0c;比较简单&#xff0c;而且也比较好理解&#xff0c;说白了就是把 sip.conf和extensions.conf文件的内容完完整整的放入到数据库中&#xff0c;不像动态存储那样&#xff0c;不但需要数据库而且还需要 sip.conf和ext…

matlab自动排版,工具方法| Matlab 简单绘图与排版

matlab启动界面 来自百度百科对于很多教师与学生&#xff0c;Matlab是做数值计算很好的一款软件。收集、整理、分析数据十分的方便&#xff0c;我们也可以通过Matlab画出相对比较好看的图。这里简单总结下Matlab的画图方式与排版&#xff0c;供初学者参考、交流。Matlab基本都是…

坦克大战代码_坦克大战系列文章-坦克大战简介

前言本篇主要对坦克大战Robocode做一个简单的介绍&#xff0c;对java最初的人工智能算法演练工具做一个了解坦克大战简介今天我们要谈的是java 最初的基于人工智能算法的仿真模拟坦克大战&#xff0c;全称Robocode。Robocode 是一位IBM的工程师 Mat Nelson 用Java 语言所创造的…

php mongo sort -1出错,mongoDB排序引起的ERROR

mongo 使用过程中遇到了一个问题&#xff0c;需求就是要对mongo 库中数据进行排序查询logger.info("历史采集汇总");// 一天数据calendar Calendar.getInstance();calendar.add(Calendar.HOUR_OF_DAY, -24);cond new BasicDBObject();cond.put("workTime"…

数学_同取对数(HDU_1060)

m n^n > lg(m) lg(n^n) > lg(m) n*lg(n) > m 10^(n*lg(n)) 对于 10^N 10^123.456 10^(1230.456) 10^123 * 10^0.0.456 10^123 的最高位为 1,即 10^N 的最高位取决于 n*lg(n) 的小数部位 #include <stdio.h> #include <string.h> #include &l…

python浮点型数据怎么显示为图片_python数字图像处理(4):图像数据类型及颜色空间转换...

一、图像数据类型及转换在skimage中&#xff0c;一张图片就是一个简单的numpy数组&#xff0c;数组的数据类型有很多种&#xff0c;相互之间也可以转换。这些数据类型及取值范围如下表所示&#xff1a;Data typeRangeuint80 to 255uint160 to 65535uint320 to 232float-1 to 1 …

uboot mkimage使用详解

mkimage使用详解 uboot源代码的tools/目录下有mkimage工具&#xff0c;这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。 mkimage在制作映象文件的时候&#xff0c;是在原来的可执行映象文件的前面加上一个0x40字节的头&#xff0c;记录参数所指定的信息&#xff0c…

php查询文件名,php怎么查询文件名

php查询文件名的方法&#xff1a;可以利用pathinfo()函数来查询。pathinfo()函数以数组的形式返回关于文件路径的信息&#xff0c;包括目录路径、文件名等&#xff0c;如&#xff1a;【print_r(pathinfo("/testweb/test.txt"))】。pathinfo() 函数以数组的形式返回关…

基于live555的视频直播 DM368IPNC RTSP分析

因需要&#xff0c;从个人的理解顺序和需求角度对live555的分析与开发整理&#xff0c;包含RTSP Server与RTSP Client、如何直播H.264流与JPEG流等&#xff0c;均进行了探讨&#xff0c;对live555的初学者有一定的指导意义。 本人习惯使用excel归档&#xff0c;所以本文均为exc…

图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解

点击蓝字关注我们AI研习图书馆&#xff0c;发现不一样的世界风格迁移图像风格化迁移是一个很有意思的研究领域&#xff0c;它可以将一张图的风格迁移到另外一张图像上&#xff0c;由此还诞生了Prisma和Ostagram这样的商业化产品。本文&#xff0c;我们将介绍谷歌大脑团队的一篇…

石子合并问题java,石子合并问题 GarsiaWachs算法

石子合并问题 GarsiaWachs算法目录引入一个较为朴素的算法GarsiaWachs算法引入在一个操场上摆放着一排 \(N\) 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的 \(2\) 堆石子合并成新的一堆&#xff0c;并将新的一堆石子数记为该次合并的得分。试设计一个算法&…

Asterisk NAT

网络结构如下&#xff1a; asterisk(192.168.1.99) <--> 无线路由器&#xff08;公网IP: 55.66.77.88&#xff09; <-----------------------> 无线路由器&#xff08;公网IP: 21.31.41.51&#xff09; <--> eyeBeam(sip软电话: 192.168.12.43) 也就是说ast…