Python字符串格式化问题

>>>'%*.s'%(4,'hi')结果为什么是'',该如何理解我的疑问是为什么'hi'没有输出?如何理解?另外,点(.)后如果没有加精度值,机器将如何执行?还有如果输出... >>> '%*.s' % (4,'hi')
结果为什么是' ',该如何理解
我的疑问是为什么'hi'没有输出?如何理解?另外,点(.)后如果没有加精度值,机器将如何执行?还有如果输出的是字符串,但是点(.)的前后都有星号(*),那么此时输出的字符串宽度到底是多少?是以前面一个星号为准还是后面的那个?
展开
 我来答
neosicifore
2014-11-04 · TA获得超过2258个赞
知道小有建树答主
回答量:446
采纳率:66%
帮助的人:494万
展开全部
*,表示输出的字符的宽度,你给的例子,就是4个字符的宽度
又比如
>>> '%.*s%.*s'%(2, "abce", 3, "324223")
'ab324'
>>> '%.*s%*.s'%(2, "abce", 3, "324223")
'ab '
第一个:2个宽度所以只有ab,后面的只有3个宽度,就是324
需要注意. 和 *的先后顺序
第二个:2宽度,也是ab,后面由于.和*的顺序变了,没有输出字符,但给了3个宽度
======================================================================
这么给你说嘛: '%*.*s'%(10,2, "abce")
第一个*表示输出的‘内容’长度为10
第二个*表示‘abce’这个串,只取前两位,你可以理解为精度
s表示是字符串
结果为:8个空格 + ab
==========再来看你的问题=====================================
'%*.s' % (4,'hi')

我的疑问是为什么'hi'没有输出?如何理解?
[ans:没输出因为.后面没有给int值,所以没输出hi]
另外,点(.)后如果没有加精度值,机器将如何执行?
[ans:结果你已经看到了,没给值就不输出]
还有如果输出的是字符串,但是点(.)的前后都有星号(*),那么此时输出的字符串宽度到底是多少?
[ans:*.*,都给了值,第一个是输出字符串的宽度,第二个是取你给的字符串的宽度,上面给你举得例子, '%*.*s'%(10,2, "abce"),输出宽度为10,取 abce的前两个字符]
是以前面一个星号为准还是后面的那个?
[ans:同上]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式