python中字符串可以使用len_在字符串中使用len()

在为字符串赋值之前,不能计算字符串的长度,因此在进行替换之前,请先这样做,然后用简单的数学计算出结果的长度:POWERS_OF_TEN = {10**n for n in range(7)} # handle strings over 10M chars long

string = "This is a sentence and it has %d characters"

length = len(string) - len('%d') + len("%d" % len(string))

correction = len(string)+1 in POWERS_OF_TEN

string %= length+correction

print(string) # This is a sentence and it has 43 characters

上面的计算正确地处理了结果的长度与包含"%d"的原始字符串的长度不同的情况。在

下面的测试代码说明了这一点,该代码显示原始字符串及其长度,然后是结果字符串及其实际长度和计算长度(对于不同大小的输入),如您所见,后两个值始终匹配,包括在特殊情况下,添加一个字符会使结果字符串变长两个字符:

^{pr2}$

输出:'%d', len: 2 -> '1', length actual: 1 vs computed: 1

'A%d', len: 3 -> 'A2', length actual: 2 vs computed: 2

'AB%d', len: 4 -> 'AB3', length actual: 3 vs computed: 3

'ABC%d', len: 5 -> 'ABC4', length actual: 4 vs computed: 4

'ABCD%d', len: 6 -> 'ABCD5', length actual: 5 vs computed: 5

'ABCDE%d', len: 7 -> 'ABCDE6', length actual: 6 vs computed: 6

'ABCDEF%d', len: 8 -> 'ABCDEF7', length actual: 7 vs computed: 7

'ABCDEFG%d', len: 9 -> 'ABCDEFG9', length actual: 8 vs computed: 8

'ABCDEFGH%d', len: 10 -> 'ABCDEFGH10', length actual: 10 vs computed: 10

'ABCDEFGHI%d', len: 11 -> 'ABCDEFGHI11', length actual: 11 vs computed: 11

'ABCDEFGHIJ%d', len: 12 -> 'ABCDEFGHIJ12', length actual: 12 vs computed: 12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值