Python 中的常见 格式化符号

Python013

Python 中的常见 格式化符号,第1张

Python 认识格式化输出 中的 格式化符号

在前面的文章里我们早早就接触过Python中的输出的函数prinnt(),它的作用顾名思义就是输出,也就是程序输出内容给用户看。现在这篇文章不再说这么简单的print()输出,而是格式化输出。格式化输出含义:就是程序输出一种带格式的数据给用户。

输出:prinnt()

利用 print函数 返回结果是一个数字30,但是这个返回的数据30别人并不知道是30岁还是30年还是附有其他含义的一个数字。假如这里有一个需求:输出‘今年我的年龄是30岁’,这样的话那么这个需求里的30是不是就是取到我们上面的age = 30变量里存储的数据呢,这种操作就是格式化输出.

格式化输出

格式化输出含义:所谓的格式化输出就是按照一定的格式输出内容。

下面通过两点来讲解格式化输出。

1.1 格式化符号

这里是Python当中一些内置好的格式符号,大家不用全部背诵下来,只要着重学习前三个常用的就可以了,其他的等用到再把这篇笔记拿出来查一下就ok。

%s:是格式化字符串的,%s中的s代表str字符串类型的缩写,这样方便记忆。

%d:代表有符号对的十进制整数,有符号呢表示整数前面有正号或负号,有符号表示正负号都可以有。%u表示无符号的十进制整数,也就是只包含正整数,在与没用的时候我们一般用%d更全面一些。

%f:数据类型浮点数float缩写的前面字母f

1. python 字符与数字如何转换

python中字符与数字相互转换用chr()即可。

python中的字符数字之间的转换函数

int(x [,base ]) 将x转换为一个整数

long(x [,base ]) 将x转换为一个长整数

float(x ) 将x转换到一个浮点数

plex(real [,imag ]) 创建一个复数

str(x ) 将对象 x 转换为字符串

repr(x ) 将对象 x 转换为表达式字符串

eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s ) 将序列 s 转换为一个元组

list(s ) 将序列 s 转换为一个列表

chr(x ) 将一个整数转换为一个字符

unichr(x ) 将一个整数转换为Unicode字符

ord(x ) 将一个字符转换为它的整数值

hex(x ) 将一个整数转换为一个十六进制字符串

oct(x ) 将一个整数转换为一个八进制字符串

chr(65)='A'

ord('A')=65

int('2')=2

str(2)='2'

扩展资料:

python数字转换为字符串主要包括两种形式:第一种是str(),将值转换为用户便于阅读的形式;另一种是repr(),将值转换为合法的python表达式。

>>>print repr("Hello, world!")

'Hello, world!'

>>>print repr(10000L)

10000L

>>>print str("Hello, world!")

Hello, world!

>>>print str(10000L)

2. python怎么实现字符串和数字的转换

#py3

from functools import reduce

DIGITS={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}

def char2num(s): #单个字符转数字

return DIGITS[s]

def str2int(s):#整数字串转化整数,不支持浮点数.浮点数得另写一个

if s[0]=='-': #要判断一下该数字有没有符号

return -reduce(lambda x,y:10*x+y,map(char2num,s[1::])) #返回负数

else:

return reduce(lambda x,y:10*x+y,map(char2num,s)) #返回正数

a='-123'

print(100+str2int(a))

3. 关于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中最常用的数据类型,我们一般使用引号来创建字符串,创建字符串很简单,只要为变量分配一个值即可,后面 python入门教程 还会学到关于字符串的下标、切片、常用操作方法。

注意:控制台显示结果为<class 'str'>,即数据类型是str(字符串)

以前我们只是简单的用了一下字符串,比如最早学的过程中我们用了一个input()函数,它是用来接收用户输入的数据的,收到的数据的数据类型就是字符串。只要在Python开发环境当中,接收到的数据数据类型都是字符串类型,用户输入了数据就代表我们后期会使用到它,所以就要控制接收到的字符串数据,所以字符串是Python当中最常用的数据类型。

可能仅仅一个input说明不了什么问题,后期会学到用Python语言来控制文件对的读写操作,在文件当中读取写入的数据类型都是字符串类型,所以字符串在文件这里也是常见的类型。可能将来要学习爬虫,要从网页中爬取到我们想要的数据,爬取对的数据的类型本身也是字符串类型,所以字符串类型数据来源是多方多面的,之所以数据能够获取来是代表我们的程序要去控制它,所以避免不了要学习字符串的一些常见操作。

1、一对引号字符串(单引号或双引号)

2、三引号字符串

返回结果:

3、单引号、双引号和三引号之间的区别

区别:三引号形式的字符串支持换行,并且不会添加额外的字符

如果想打印出 I’m Python这种格式的英文,怎么做?两种方法

执行结果: