天天看点

python中字符串及其格式转换技巧python中字符串及其格式转换技巧

目录

  • python中字符串及其格式转换技巧
    • 其他数据转为字符串
    • 字符串的格式化
    • 带格式限定符的格式化
    • 字符串的连接
    • 字符串切片
    • 字符串转换为 ASCII 值

python中字符串及其格式转换技巧

在python语言中,对字符串的处理可以说是在所有编程语言中最灵活的一种,Python字符串可以理解为一个数组,在不引入第三方库的情况下,就可以实现字串的各种处理,下面举例说明

其他数据转为字符串

python中,数字,链表、集合等都可以转换为字符串,也可以指定转换的精度,例如:

数字64转为二进制、十进制、八进制、十六进制字符对应为:

'{:b}'.format(64)    #二进制
           

返回:

'1000000'
           

十进制

'{:d}'.format(64)  #十进制
           

返回:

'64'
           

八进制

'{:o}'.format(64)   #八进制
           

返回:

'100'
           

十六进制

'{:x}'.format(64)   #十六进制
           

返回

'40'
           

分别使用了b、d、o、x的进制标识。

对浮点数,精度可以跟类型f一起使用,

'{:.2f}'.format(321.33345)
           

输出为:

'321.33'
           

如果数字比较大,还可以用 ‘,‘分段,例如:

'{:,d}'.format(123456789)
           

返回:

'123,456,789'
           

字符串的格式化

python字符串格式化通过方法 format()实现,用法为:

S.format(*args, **kwargs) -> str
           

其中:

S:为需要执行格式化的字符串。通常包括{}组成的替换字段、字符串常量和标识符号等,替换字段可以通过{位置}或{关键字}指出。

args:替换字段对应的值。

通过format()方法,可以将字符串格式化为指定的格式,同时将入参值赋值给字符串指定的替换字段,例如:

'welcome {} to {}'.format('zhangsan','beijing')
           

返回字符串为:

'welcome zhangsan to beijing'
           

字符串的format方法接受参数不限个数,位置可以不按顺序,可以不用或者用多次,例如:

'welcome {0},{0}\'father,{0}\'mother to {1}'.format('zhangsan','beijing')
           

返回字符串为:

"welcome zhangsan,zhangsan'father,zhangsan'mother to beijing"
           

唯一区别的是{}中需要加入重复替换的参数序号即可,另外,除了位置替换,也可以使用名称替换,例如:

lsstr='公司名:{name},网站:{web},地址:{add}'
	s=lsstr.format(name='百度',web='www.baidu.com',add='北京')
	print(s)
           

返回为:

‘公司名:百度,网站:www.baidu.com,地址:北京'
           

带格式限定符的格式化

在程序设计中,我们经常需要对字符串进行对齐处理,实现不同长度字符串输出的整齐排列,这就需要进行格式化和补全操作,在python中有丰富的的“格式符”来实现这一点

其语法是{}中带:、^、<、>格式限定符,分别是对应填充符号、居中、左对齐、右对齐,

:号后面带填充的字符,且只能是一个字符,也可以不指定,默认是用空格填充,最后面可以带输出的字符串长度,例如:

'{:>8}'.format('189')
           

返回值为:

'     189'
           

为一个长度为8,左边填充空格的字符串

再比如:

'{:*^8}'.format('189')
           

返回值为:

'**189***'
           

为一个长度为8,189居于中心,两侧填充*的字符串

字符串的连接

python的字符串连接方法也很多,例如通过print等等,如果需要对链表等复杂类型连接,可以通过函数 join进行,用字符串依次连接列表中每一个元素,例如:

str_list = ['I ','am ','an ','engineer']
	a.join(str_list)
           

返回:

'I am an engineer'
           

字符串切片

如果需要获取字符串的某一部分,可以使用

str[beginPosition:endPosition]
           

其中str为需要截取的字符串,beginPosition为需要截取的第一个字符的下标,endPosition为截取字符最后一个的位置,需要注意的是beginPosition和endPosition为下标值,均从0开始,包含beginPosition,不包含endPosition位置的字符,例如:

text = 'asd123456'
	text[1:3]
           

返回为:

'sd'
           

当然,beginIndex,endPosition都可以不写,不写的情况默认第一个或者最后一个,例如:

text[:3] 返回'asd'
	text[5:]返回'3456'
           

字符串转换为 ASCII 值

在python中,一般使用使用 for 循环和 ord() 函数获取字符串的 ASCII值,其中ord()函数来获取字符串的 ASCII 值,函数返回传递字符串的 Unicode。它接受1作为字符串的长度。for循环用于迭代序列,举例如下:

text = 'asd123456'
	ascii_values = [ord(character) for character in text]
	print(ascii_values)
           

返回值为

[97, 115, 100, 49, 50, 51, 52, 53, 54]