我正在使用Python开发一个基于文本的游戏,并且遇到了一个情况,我想根据一组条件以不同的格式来显示字符串。
具体而言,我想在描述房间时显示描述房间中物品的文本,但仅当所讨论的物品对象在该房间对象的物品列表中时才显示。按照现有的方式,我认为仅仅基于条件串联字符串并不能输出我想要的结果,最好为每种情况设置不同的字符串。
我的问题是,是否有一种Pythonic的方法可以根据布尔条件的结果来格式化字符串?我可以使用for循环结构,但我想知道是否有更简单的方法,类似于生成器表达式。
我正在寻找类似于这样的字符串格式:
num = [x for x in xrange(1,100) if x % 10 == 0]
作为我所说的一个一般性例子:
print "At least, that's what %s told me." %("he" if gender == "male", else: "she")
我知道这个例子不是有效的Python代码,但它展示了我正在寻找的一般思路。我在想是否存在任何适用于布尔类型字符串格式化的有效表达式,类似于上面的示例。 经过一番搜索,我发现没有关于条件字符串格式化的专门内容。我确实找到了几篇有关通用格式化字符串的文章,但那不是我要寻找的。
如果确实存在这样的东西,那将非常有用。我也愿意接受可能建议的任何其他方法。