python字符串格式化输出字符串(Python如何格式化输出字符串!)

1.Python如何格式化输出字符串!

python一共有两种格式化输出语法,

一种是类似于C语言printf的方式,称为 Formatting Expression

>>>print '%s %d-%d' % ('hello', 7, 1)

'hello 7-1'

另一种是类似于C#的方式,称为String Formatting Method Calls

>>>print '{0} {1}:{2}'.format('hello', '1', '7')

'hello 1:7'

第一种方式可以指定浮点数的精度,例如

>>> print'%.3f' % 1.234567869

'1.235'

运行时动态指定浮点数的精度

但是当代码在运行中如何动态地通过参数来指定浮点数的精度呢?

python的神奇之处在于它又提供了一种非常方便的语法。只需要在 typecode(这里是f)之前加一个 *,浮点数的精度就用它前面的数字来指定。

>>> for i in range(5):

print'%.*f' % (i, 1.234234234234234)

'1'

'1.2'

'1.23'

'1.234'

'1.2342'

通过输出结果可以看出,精度都是在运行时动态指定,这样就省去了格式化字符串的拼凑。

使用 String Formatting Method Calls 可以更简洁地完成功能。

>>> for i in range(5):

print'{0:.{1}f}'.format(1 / 3.0, i)

'0'

'0.3'

'0.33'

'0.333'

'0.3333'

附录是一些常用用法——

python print格式化输出。

1. 打印字符串

print ("His name is %s"%("Aviad"))

2.打印整数

print ("He is %d years old"%(25))

3.打印浮点数

print ("His height is %f m"%(1.83))

4.打印浮点数(指定保留小数点位数)

print ("His height is %.2f m"%(1.83))

5.指定占位符宽度

print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))

6.指定占位符宽度(左对齐)

print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))

7.指定占位符(只能用0当占位符?)

print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))

8.科学计数法

format(0.0015,'.2e')

Python字符串格式化输出的方式包括,python格式化字符串的是,Python中字符串格式化使用的符号

2.关于python的字符串格式化

在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形式为

格式标记字符串 % 要输出的值组

其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:

%cdoe

其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用'%s'来标记。比如:

'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])

它的输出为'1 2.3 ['one', 'two', 'three']',就是按照%左边的标记输出的。虽然第一个和第二值不是string类型,一样没有问题。在这个过程中,当电脑发现第一个值不是%s时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。前面说过还有一个repr()函数,如果要用这个函数,可以用%r来标记。除了%s外,还有很多类似的code:

整型数:%d

无符号整型数:%u

八进制:%o

十六进制:%x %X

浮点数:%f

科学记数法: %e %E

根据数值的不同自动选择%e或%f: %g

根据数值的不同自动选择%E或%f: %G

就跟前面说用\进行转义一样,这里用%作为格式标记的标识,也有一个%本身应该如何输出的问题。如果要在”格式标记字符串“中输出%本身,可以用%%来表示。

上面说的只是格式标记的最简间的形式,来看复杂一点的:

'%6.2f' % 1.235

在这种形式中,在f的前面出现了一个类似小数的6.2它表示的意思是,总共输出的长度为6个字符,其中小数2位。还有更复杂的:

'%06.2f' % 1.235

在6的前面多了一个0,表示如果输出的位数不足6位就用0补足6位。这一行的输出为'001.24',可以看到小数也占用一位。类似于这里0这样的标记还有-、+。其中,-表示左对齐,+表示在正数前面也标上+号,默认是不加的。最后来看最复杂的形式:

'%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}

这种形式只用在要输出的内容为dictionary(一种python的数据类型)时,小括号中的(name)和(score)对应于后面的键值对中的键。前面的例子可以看到,”格式标记字符串“中标记的顺序和"要输出的值组"中的值是一一对应的,有顺序,一对一,二对二。而在这种形式中,则不是,每个格式标记对应哪个值由小括号中的键来指定。这行代码的输出为:'newsim:0009.5'。

有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,那怎么输入呢,当然不能用%%d.%df或%d.%d%f。可以用%*.*f的形式,当然在后面的”要输出的值组“中包含那两个*的值。比如:'%*.*f' % (6, 2, 2.345)就相当于'%6.2f' % 2.345。

这是这本书到此为止看起来最复杂的内容。不过如果记不住,或不想那么耐烦,完全可以全部用%s代替,或者用多个"+"来构造类似的输出字符串。这里的%真有点除法的味道,怪不得设计者会选择用%这个除号。

象C 中的sprintf函数一样,可以用“%”来格式化字符串

Table 3.1. 字符串格式化代码

格式 描述

%% 百分号标记

%c 字符及其ASCII码

%s 字符串

%d 有符号整数(十进制)

%u 无符号整数(十进制)

%o 无符号整数(八进制)

%x 无符号整数(十六进制)

%X 无符号整数(十六进制大写字符)

%e 浮点数字(科学计数法)

%E 浮点数字(科学计数法,用E代替e)

%f 浮点数字(用小数点符号)

%g 浮点数字(根据值的大小采用%e或%f)

%G 浮点数字(类似于%g)

%p 指针(用十六进制打印值的内存地址)

%n 存储输出字符的数量放进参数列表的下一个变量中

字符串,格式化,输出,python

3.python字符串格式化什么意思

python字符串格式化的意思就是用format函数格式化字符串的用法。

用法:它通过{}和:来代替传统%方式。1、使用位置参数要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表>>> li = ['hoho',18]>>> 'my name is {} ,age {}'.format('hoho',18)'my name is hoho ,age 18'>>> 'my name is {1} ,age {0}'.format(10,'hoho')'my name is hoho ,age 10'>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')'my name is hoho ,age 10 hoho'>>> 'my name is {} ,age {}'.format(*li)'my name is hoho ,age 18'2、使用关键字参数要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可>>> hash = {'name':'hoho','age':18}>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)'my name is hoho,age is 19'>>> 'my name is {name},age is {age}'.format(**hash)'my name is hoho,age is 18'3、填充与格式化:[填充字符][对齐方式 <^>][宽度]>>> '{0:*>10}'.format(10) ##右对齐'********10'>>> '{0:*<10}'.format(10) ##左对齐'10********'>>> '{0:*^10}'.format(10) ##居中对齐'****10****'4、精度与进制>>> '{0:.2f}'.format(1/3)'0.33'>>> '{0:b}'.format(10) #二进制'1010'>>> '{0:o}'.format(10) #八进制'12'>>> '{0:x}'.format(10) #16进制'a'>>> '{:,}'.format(12369132698) #千分位格式化'12,369,132,698'5、使用索引>>> li['hoho', 18]>>> 'name is {0[0]} age is {0[1]}'.format(li)'name is hoho age is 18。

4.python字符串格式化什么意思

python字符串格式化的意思就是用format函数格式化字符串的用法。

用法:它通过{}和:来代替传统%方式。

1、使用位置参数

要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

>>> li = ['hoho',18]

>>> 'my name is {} ,age {}'.format('hoho',18)

'my name is hoho ,age 18'

>>> 'my name is {1} ,age {0}'.format(10,'hoho')

'my name is hoho ,age 10'

>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')

'my name is hoho ,age 10 hoho'

>>> 'my name is {} ,age {}'.format(*li)

'my name is hoho ,age 18'2、使用关键字参数

要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

>>> hash = {'name':'hoho','age':18}

>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)

'my name is hoho,age is 19'

>>> 'my name is {name},age is {age}'.format(**hash)

'my name is hoho,age is 18'3、填充与格式化

:[填充字符][对齐方式 <^>;][宽度]

>>> '{0:*>10}'.format(10) ##右对齐

'********10'

>>> '{0:*<10}'.format(10) ##左对齐

'10********'

>>> '{0:*^10}'.format(10) ##居中对齐

'****10****'4、精度与进制

>>> '{0:.2f}'.format(1/3)

'0.33'

>>> '{0:b}'.format(10) #二进制

'1010'

>>> '{0:o}'.format(10) #八进制

'12'

>>> '{0:x}'.format(10) #16进制

'a'

>>> '{:,}'.format(12369132698) #千分位格式化

'12,369,132,698'5、使用索引

>>> li

['hoho', 18]

>>> 'name is {0[0]} age is {0[1]}'.format(li)

'name is hoho age is 18

5.Python格式化输出的理解怎么样

7.1. 格式化输出我们有两种大相径庭地输出值方法:表达式语句 和 print() 函数(第三种访求是使用文件对象的 write() 方法,标准文件输出可以参考 sys.stdout,详细内容参见库参考手册)。

通常,你想要对输出做更多的格式控制,而不是简单的打印使用空格分隔的值。有两种方法可以格式化你的输出:第一种方法是由你自己处理整个字符串,通过使用字符串切割和连接操作可以创建任何你想要的输出形式。

string 类型包含一些将字符串填充到指定列宽度的有用操作,随后就会讨论这些。第二种方法是使用 str.format() 方法。

标准模块 string 包括了一些操作,将字符串填充入给定列时,这些操作很有用。随后我们会讨论这部分内容。

第二种方法是使用 Template 方法。当然,还有一个问题,如何将值转化为字符串?很幸运,Python 有办法将任意值转为字符串:将它传入 repr() 或 str() 函数。

函数 str() 用于将值转化为适于人阅读的形式,而 repr() 转化为供解释器读取的形式(如果没有等价的语法,则会发生 SyntaxError 异常)某对象没有适于人阅读的解释形式的话,str() 会返回与 repr() 等同的值。很多类型,诸如数值或链表、字典这样的结构,针对各函数都有着统一的解读方式。

字符串和浮点数,有着独特的解读方式。

python字符串格式化输出字符串

转载请注明出处编程代码网 » python字符串格式化输出字符串(Python如何格式化输出字符串!)

资讯

python算法精解pdf(python运算)

阅读(9)

本文主要为您介绍python算法精解pdf,内容包括python运算,Python编程的19个资源,已经在网上看了一些python的教材比如abyteofpython,。Python使用与C、Java类似的运算符,支持整数与浮点数的数学运算。同时还支持复数运算与无穷位数(实际受限于

资讯

python第一列数据(python中如何提取一组数据中的第一列数据)

阅读(8)

本文主要为您介绍python第一列数据,内容包括python中如何提取一组数据中的第一列数据,python中如何提取一组数据中的第一列数据,python怎样实现只读文本数据中的第一列?。概述直接提取会报错,把array数组转换成list,即可提取,使用numpy转换步

资讯

python代替excel(python+pandas是否能代替excel+vba)

阅读(11)

本文主要为您介绍python代替excel,内容包括python可以取代excel吗,python+pandas是否能代替excel+vba,python+pandas是否能代替excel+vba。看你需求吧python自由化程度高一点。excel局限性大一点。难度的话,对于小项目而言,我觉得其实差不多,

资讯

python大数据与量化交易pdf(用Python怎么做量化投资)

阅读(9)

本文主要为您介绍python大数据与量化交易pdf,内容包括用Python怎么做量化投资,作为Python程序员怎样入门量化交易,Python如何将字典中的数据存入到文档中。本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略

资讯

pythoninput数组吗(pythoninput()和int(input())有区别吗?)

阅读(11)

本文主要为您介绍pythoninput数组吗,内容包括pythoninput()和int(input())有区别吗?,python3.5中如何用input输入多个数值?用什么分分隔开?还有函数中,python初学者关于input的问题?。python中input()和int(input())是有区别的.input()返回的是

资讯

python重载类方法(python重载方法有哪些特点)

阅读(9)

本文主要为您介绍python重载类方法,内容包括python重载方法特点,Python一种实现类似于重载的方法,*k是什么意思?,python怎么重载in关键字。python 的重载主要包括方法重载和运算符重载。1.python 方法重载: 其他的语言一般对于方法重载的话,

资讯

random.seedpython(在Python代码中random.seed(1)什么意思?)

阅读(11)

本文主要为您介绍random.seedpython,内容包括在Python代码中random.seed(1)什么意思?,在Python代码中random.seed(1)什么意思?,python从random库中导出seed函数的用处,用这个怎么表示时间?O(。seed( ) 用于指定随机数生成时所用算法开始的整

资讯

urlretrievepython2(python)

阅读(11)

本文主要为您介绍urlretrievepython2,内容包括pythonurlretrieve可用于下载什么类型的网页,如何设置python中函数urlretrieve下载文档,5秒没有下载完成就跳出,怎样用python爬取网页。对于所有的网页都可以下载。如果网页内有ajax,则无法获得

资讯

pythonflume(python和flume的联系)

阅读(12)

本文主要为您介绍pythonflume,内容包括python和flume的联系,flume和solr有联系吗,如何理解flume中的avro格式。flume可以用来处理外部API获取的数据。一个可以考虑的应用是利用python将json格式的数据发送给flume的agent(htt

资讯

pythonimap删除邮件(Python收发邮件和删除邮件怎么做到)

阅读(13)

本文主要为您介绍pythonimap删除邮件,内容包括Python收发邮件和删除邮件怎么做到,Python怎么管理邮箱的文件夹,IMAP是什么?怎么用?。邮件传输的SMTP协议,并根据该协议,利用了Python的smtplib和‘email模块,完成邮件的成功发送。简单搭的报警邮

资讯

python中的round函数怎么用(python中round函数怎么用)

阅读(11)

本文主要为您介绍python中的round函数怎么用,内容包括python中round函数怎么用,python中round函数怎么用,python中round(23/5,0)和round(23/5.0)有什么区别。描述round() 方法返回浮点数x的四舍五入值。语法以下是 round() 方法的语法:round(

资讯

python读取tif文件(如何用python读取和写入TIFF文件1)

阅读(12)

本文主要为您介绍python读取tif文件,内容包括如何用python读取和写入TIFF文件1,如何用python读取和写入TIFF文件1,扩展名为TIF文件用什么程序打开?同上。用Python读取TIFF文件,可采用以下代码framedim = [2048,2048]nb_elem = framedim[0]*f

资讯

python写窗口程序(如何用python脚本语言写带窗口程序?)

阅读(12)

本文主要为您介绍python写窗口程序,内容包括如何用python脚本语言写带窗口程序?,python可以编写窗口程序吗,python是如何写界面程序的?。当你想学习一门新的语言时,特别是像Python这样的脚本语言,在你准备充分开始写应用程序的图形化界面之前

资讯

python算法精解pdf(python运算)

阅读(9)

本文主要为您介绍python算法精解pdf,内容包括python运算,Python编程的19个资源,已经在网上看了一些python的教材比如abyteofpython,。Python使用与C、Java类似的运算符,支持整数与浮点数的数学运算。同时还支持复数运算与无穷位数(实际受限于

资讯

python第一列数据(python中如何提取一组数据中的第一列数据)

阅读(8)

本文主要为您介绍python第一列数据,内容包括python中如何提取一组数据中的第一列数据,python中如何提取一组数据中的第一列数据,python怎样实现只读文本数据中的第一列?。概述直接提取会报错,把array数组转换成list,即可提取,使用numpy转换步

资讯

python代替excel(python+pandas是否能代替excel+vba)

阅读(11)

本文主要为您介绍python代替excel,内容包括python可以取代excel吗,python+pandas是否能代替excel+vba,python+pandas是否能代替excel+vba。看你需求吧python自由化程度高一点。excel局限性大一点。难度的话,对于小项目而言,我觉得其实差不多,

资讯

python大数据与量化交易pdf(用Python怎么做量化投资)

阅读(9)

本文主要为您介绍python大数据与量化交易pdf,内容包括用Python怎么做量化投资,作为Python程序员怎样入门量化交易,Python如何将字典中的数据存入到文档中。本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略

资讯

pythoninput数组吗(pythoninput()和int(input())有区别吗?)

阅读(11)

本文主要为您介绍pythoninput数组吗,内容包括pythoninput()和int(input())有区别吗?,python3.5中如何用input输入多个数值?用什么分分隔开?还有函数中,python初学者关于input的问题?。python中input()和int(input())是有区别的.input()返回的是

资讯

python重载类方法(python重载方法有哪些特点)

阅读(9)

本文主要为您介绍python重载类方法,内容包括python重载方法特点,Python一种实现类似于重载的方法,*k是什么意思?,python怎么重载in关键字。python 的重载主要包括方法重载和运算符重载。1.python 方法重载: 其他的语言一般对于方法重载的话,

资讯

pythoneclipse教程(如何在eclipse中安装python)

阅读(10)

本文主要为您介绍pythoneclipse教程,内容包括如何在eclipse中安装python,如何在eclipse中安装python,怎么在eclipse安装python。安装jdk,安装eclipse,这些就不赘述啦~2、安装PyDev插件,方法一:打开Eclipse->help->install new