str.format()
方法可以打印没有大写字符串的布尔参数吗?
我不能使用str(myVar).lower()
作为格式的参数,因为我想在myVar
不是布尔值时保留字母的大小写。
请不要通过条件检查变量的值来发布解决方案。
我感兴趣的是写下列内容的可能性:
"Bla bla bla {}".format(myVar)
以便"Bla bla bla true"
时myVar == True
和"Bla bla bla false"
myVar == false
输出变为{{1}}
答案 0 :(得分:6)
你可以使用像这样的表达式
str(myVar).lower() if type(myVar) is bool else myVar
答案 1 :(得分:2)
尝试一个可以调用的lambda:
>>> f = lambda x: str(x).lower() if isinstance(x, bool) else x
>>> 'foo {} {}'.format(f(True), f('HELLO'))
'foo true HELLO'