Python3.2官方文档教程---格式化输出

2024-03-02 20:48

本文主要是介绍Python3.2官方文档教程---格式化输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个程序的输出有好多种方式,数据既可以用人们读懂的形式打印出来或者写入到文件以便将来使用。这章就讨论这些问题。

5.1 格式化输出

目前我们已经接触了两种输出值方式: 表达式语句和print()函数。(第三种就是使用file对象中的write()方法;标准的文件输出可参考sys.stdout库文件)

 

常常你会想控制输出格式化的数据而不是简单用空格分隔的字符。这里有两种方式用来格式化你的输出数据。第一种方式就是由你自己处理所有的字符串,用字符串中的切分或者链接操作你可以创建任何你想要是的字符。标准模块string包含一些将字符串填充到指定列宽度的有用操作,随后将会讨论这些。第二种方法就是使用str.format()方法。

 

String模块中包含一个template类,它提供另一种方法来将值转化为字符串形式。当然存在一个问题:你如何把值转化为字符串? 幸运的是,python已经提供了任何值转化为字符串的各种方法:把值传给方法repr()或者str();

 

Str()函数用来返回一个更方便人读的形式。而repr()方法用来产生一个解释器方便的形式。(如果没有相等的语句就会产生syntaxerror)。对于一个没有可以提供可供人方便读的特殊形式,str()返回值与repr()返回值相同。对于更多的值例如数字或者类似于列表和字典的结构, 都用这两种方法可以产生同样的表现形式。 特别地,字符串有两个不同的表现实现。

例如:

>>> s = Hello, world.

>>> str(s)

Hello, world.

>>> repr(s)

"Hello, world."

>>> str(1/7)

0.14285714285714285

>>> x = 10*3.25

>>> y = 200*200

>>> s = The value of x is ’ + repr(x) + , and y is ’ + repr(y) + ...

>>> print(s)

The value of x is 32.5, and y is 40000...

>>> # The repr() of a string adds string quotes and backslashes:

... hello = hello, world\n

>>> hellos = repr(hello)

>>> print(hellos)

hello, world\n

>>> # The argument to repr() may be any Python object:

... repr((x, y, (spameggs)))

"(32.5, 40000, (spameggs))"

 

这有两种方法来输出平方和立方的表格:
>>> for x in range(1, 11):

... print(repr(x).rjust(2), repr(x*x).rjust(3), end=’ ’)

... # Note use of end’ on previous line

... print(repr(x*x*x).rjust(4))

...

1 1 1

2 4 8

3 9 27

4 16 64

5 25 125

6 36 216

7 49 343

8 64 512

9 81 729

10 100 1000

 

>>> for x in range(1, 11):

... print({0:2d} {1:3d} {2:4d}.format(x, x*x, x*x*x))

...

1 1 1

2 4 8

3 9 27

4 16 64

5 25 125

6 36 216

7 49 343

8 64 512

9 81 729

10 100 1000

(注意在第一个例子中,用方法print()在每列中添加了空格:它也可以会在参数之间添加空格)

 

在例子的方法描述了字符串类中的str.rjust()方法应用。它通过在字符串左侧填充指定宽度的空格以致右对齐。还有两个类似的方法:str.ljust()str.center()、这些方法不是用来写任何数据,它们会返回一个新的字符串。如果输入的字符串太长,它们不会截断它,而是原样返回。这也许是你的列表局混乱,但是比截断更好,那样会输出错误的值(如果你想截断,你总会可以使用切片操作,如x.ljust(n)[:n]

还有一个方法:zfile(),使用零在数字字符串左侧填充(到指定宽度)。它可以理解正负号。

>>> 12.zfill(5)

00012

>>> -3.14.zfill(7)

-003.14

>>> 3.14159265359.zfill(5)

3.14159265359

Str.format()方法的基本用法就像下面一样:

>>> print(We are the {} who say "{}!".format(knightsNi))

We are the knights who say "Ni!"

 

括号以及包含的字符(称为格式域)会被传入str.format()的对象所替代。在括号中的数据

指代传递给格式化方法对象的位置。

>>> print({0} and {1}.format(spameggs))

spam and eggs

>>> print({1} and {0}.format(spameggs))

eggs and spam

如果关键字参数在str.format()方法中使用时,它们的值通过参数名指定。 

>>> print(This {food} is {adjective}..format(

... food=spam, adjective=absolutely horrible))

This spam is absolutely horrible.

位置和关键字参数可以随意结合使用。

>>> print(The story of {0}, {1}, and {other}..format(BillManfred,

other=Georg))

The story of Bill, Manfred, and Georg.

!a’ (apply ascii()), !s’ (apply str()) and !r’ (apply repr())这些方法可以用来在格式化前转化数值。
>>> import math

>>> print(The value of PI is approximately {}..format(math.pi))

The value of PI is approximately 3.14159265359.

>>> print(The value of PI is approximately {!r}..format(math.pi))

The value of PI is approximately 3.141592653589793.

字符名称后面可以跟一个可选的“:”符号和格式化分类符,这也是如何更好的控制格式化值得方法。下面的实例将PI小数点后截取为三位。 

>>> import math

>>> print(The value of PI is approximately {0:.3f}..format(math.pi))

The value of PI is approximately 3.142.

在“:”后传递一个整数将会设置这个字符宽度的最小字数。这个对美化表格很有用途。

>>> table = {Sjoerd: 4127, Jack: 4098, Dcab: 7678}

>>> for name, phone in table.items():

... print({0:10} ==> {1:10d}.format(name, phone))

...

Jack ==> 4098

Dcab ==> 7678

Sjoerd ==> 4127

如果你有一个比较长的格式化字符,但是你不想把它分开, 使用名称代替位置来引用被各式化的变量将更好,这可以简单通过传递一个字典,并且使用方括号‘【】’访问所有的主键。

>>> table = {Sjoerd: 4127, Jack: 4098, Dcab: 8637678}

>>> print(Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; 

Dcab: {0[Dcab]:d}.format(table))

Jack: 4098; Sjoerd: 4127; Dcab: 8637678

通过用“**”把表作为关键字参数来实现这个功能,例如

>>> table = {Sjoerd: 4127, Jack: 4098, Dcab: 8637678}

>>> print(Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}.format(

**

table))

Jack: 4098; Sjoerd: 4127; Dcab: 8637678

这在与新的内置函数vars()结合时尤为有用,它返回一个包含所有本地变量的字典,字符串格式化方法str.format()的完成介绍请参考Format String Syntax

5.1.1 旧式字符串格式化

 

%操作符也可以用来格式化字符串,它像:cfunc:’sprintf-’格式化字符串风格一样解释左参数并作用于右参数,并且从该格式化操作中返回字符串结果,例如:

>>> import math

>>> print(The value of PI is approximately %5.3f.’ % math.pi)

The value of PI is approximately 3.142.

由于str.format()是新增方法,python的许多代码仍然用%操作符。但是,由于这个旧格式化风格最终会从语言中移除掉。Str.format就会普遍应用。 

更多的信息请查看旧式字符串格式化 部分。

这篇关于Python3.2官方文档教程---格式化输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767382

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.