恐怕这是一个基本的python问题,但我找不到合适的答案。 我想在占位符前面添加一个填充空间。在
这是我的例子:
user = 'Jhon'
'Hi {u}!'.format(u=user if user else '')
# result
'Hi Jhon!'
现在一切正常,直到我的user
var为空或为false,在这种情况下,这是上面的结果
相反,我想要'Hi!'
作为结果。在
现在我尝试了format()
填充选项,比如{:>1}
,但是ofc不起作用,因为它将添加足够的填充来达到字符长度1。在
最后我做了这样的事情:
'Hi{u:>{p}}!'.format(u=user if user else '', p=1+len(user))
上面的方法很好,但我觉得这有点老套,我现在想知道是否有一种内在的方法可以做到这一点。在
谢谢你!在
以下是我在评论中发布的解决方案:
您在问题中发布的解决方案不太管用,但可以通过将填充长度计算更改为
^{pr2}$bool
函数确定它的参数是True ish还是False ish,并分别返回True
或{True
和{下面的代码演示了各种解决方案,其中包括一对使用文本字符串插值(也称为f-strings)的代码,它们在python3.6+中可用。在
输出
有关f字符串的信息,请参见Python官方文档中的Formatted string literals。另请参见PEP 498 Literal String Interpolation和PEP 536 Final Grammar for Literal String Interpolation。在
相关问题 更多 >
编程相关推荐