python字符串长度补齐_python用指定字符串指定长度进行字符串右补齐。

字符串右补齐,根本指定的length长度补齐字符串str1到src中.

用函数实现:函数名:strfill(src,length,str1):

输入参数:src原字符串,length是目标字符串长度,str1用来填充的字符串.

示例:

strfill(“ch”,7,“inese”)=> “chinese”

strfill(“abcd”,11,“23”) => “abcd2323232”

strfill(“abc”,5,“0”)=>“abd00”

对于这个题目开始想到while,for循环等,但是不能处理所有的情况,就是函数不通用。后来请教了“先生”原来是如此简单,两行代码搞定。

import math

#lg表示目标字符串的长度

def strfill(src,lg,str1):

#math.ceil是向上取整,这个下面会具体介绍

n = math.ceil((lg-len(src))/len(str1))

newstr = src + str1 * n

return newstr[0:lg]

strfill("abcd",10,"7878") => "abcd787878"

1.这里介绍下,python的向上取整,向下取整,四舍五入,和int。

1.1.python的四舍五入用的round,这个大家可能都比较熟悉

print(round(26/10)) => 3

print(round(21/10)) => 2

1.2.int就是直接取整

print(int(26/10)) =>2

print(int(21/10)) => 2

1.3.对于向上取整和向下取整就要用到math这个模块了

1.3.1、向上取整

import math

print(math.ceil(26/10)) =>3

print(math.ceil(21/10)) =>3

1.3.2、向下取整

import math

print(math.floor(26/10)) =>2

print(math.floor(21/10)) =>2

备注: 这里说的两行代码就是:

n = math.ceil((lg-len(src))/len(str1))

newstr = src + str1 * n

此处用的了向上取整。

当然此题解法很多种,越是简单越好:

def strfill(src,length,str):

#定义一个空的字符串

tem=''

for i in range(length-len(src)):

#i%len(str)取余(其实就是取字符串对应的索引)

tem=tem+str[i%len(str)]

print(src+tem)

strfill('abcd',11,'100')

如果是补充字符是单个字符,这里就比较简单了,可以用ljust,rjust.

1、Python ljust()方法

描述

Python ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法

ljust()方法语法:

str.ljust(width[, fillchar])

参数

width – 指定填充指定字符后中字符串的总长度.

fillchar – 填充的字符,默认为空格。

src = "list"

print(src.ljust(10,"a")) =>"listaaaaaa"

2、Python rjust()方法

描述

Python rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

语法

rjust()方法语法:

str.rjust(width[, fillchar])

参数

width – 指定填充指定字符后中字符串的总长度.

fillchar – 填充的字符,默认为空格。

src = "list"

print(src.rjust(10,"a")) =>"aaaaaalist"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值