布尔值转小写字符串

20 投票
2 回答
38680 浏览
提问于 2025-04-18 17:39

可以用 str.format() 方法打印布尔值,而不把它们变成大写字母吗?

我不能用 str(myVar).lower() 作为格式化的参数,因为当 myVar 不是布尔值时,我想保留字母的大小写。

请不要发带有条件检查的解决方案。

我只想知道能否写出以下内容:

"Bla bla bla {}".format(myVar)

这样当 myVar == True 时输出为 "Bla bla bla true",而当 myVar == false 时输出为 "Bla bla bla false"

2 个回答

3

试试一个可以调用的lambda表达式:

>>> f = lambda x: str(x).lower() if isinstance(x, bool) else  x
>>> 'foo {} {}'.format(f(True), f('HELLO'))
'foo true HELLO'
19

你可以使用这样的表达式

str(myVar).lower() if type(myVar) is bool else myVar

撰写回答