python图片显示英文字符_python 格式化带中文等字符与纯英文显示串位的问题

讨论了一个关于字符串处理的问题,涉及到ASCII码的判断,字符串填充与截断,以及在不同长度限制下的处理策略。对话中提到了自定义函数的实现,以及在大量数据处理时的效率考虑,还涉及到不同语言中字符串格式化的差异。
摘要由CSDN通过智能技术生成

匿名用户

1级

2014-07-24 回答

对字符串中的每个字符判断一下是不是ascii码就是了,如果不是很大量的数据,效率也还好啦,

像这样的用string.rjust string.ljust比较好吧

追问:

包括较大数据量的情况,判断ascii的我想到了,感觉不是特别的好,而且,除了要计算前面的长度,还要计算长了截断的,比如,我一个%-10s的,如果数据超过10的话,就要取9位然后加~,这时候也不能简单的判断了,因为一个汉字显示的时候占了2位,也就是如果纯汉字,只能显示4个加个~,有没有其他的方法。

追答:

这不就是简单的判断吗?很复杂吗

追问:

感觉这样封装非常的不灵活,而且适用性不强,每条数据都要处理格式化这个,感觉也不好。想找通用的方法。如果这样,我现在都实现完了,我就是感觉这样实现不好,所以发贴求更好的方法来的。

追答:

你说的通用的方法不也是一种封装吗,python本身没有内置这个函数,那任何第三方库提供的方法不也是一种封装吗,而且你也知道实现很简单,那还找第三方干吗,自己随便写个函数就可以了,至于灵活不灵活,本身又不是什么功能很复杂的东西,需要那么灵活干吗,要这样那些很简单的内置命令也个个都要考虑做得很复杂,最好一堆参数,这样就更灵活了?

追问:

俄按你说的封个函数,二个参数全是列表,第一个列表是*(5,-5...)第二个是*("aa","bb"...)这样的吧,如果有%-5s或是%5s,那还要区分正负啊,只能是数个全要加个正负,然后要根据正负来处理不同的情况,另外,也就得亏python这样所有的都可以用%s要是以后换语言%d啥的不能用%s的,这个还是个事,这类的,还要全在外面给转成字符串变成%s的,感觉不像原始的那样方便。

追答:

...你封装的方法不太好吧,给你一个参考下把:

def t(in_str,limit_len,fill_char='~'):

out_str=''

out_len=0

for i,v in enumerate(in_str):

out_str+=v

out_len+=(ord(v)>256)+1

if out_len==limit_len+1:

if ord(v)>256:

return out_str[:-1]+fill_char

else:

return out_str[:-2]+fill_char*(1+(ord(v)>256))

if out_len==limit_len+2:

return out_str[:-2]+fill_char*(1+(ord(v)>256))

return out_str

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值