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

18 篇文章 3 订阅
4 篇文章 1 订阅

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]
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值