Python条件string格式

我一直在用Python编写一个基于文本的游戏,并且遇到了一个我想根据一组条件对string进行格式化的实例。

具体来说,我想显示描述房间内物品的文字。 我希望在房间的描述中显示这个,当且仅当有问题的项目对象在房间对象的项目列表中。 它的设置方式,我觉得简单地连接基于条件的string不会输出,因为我想要的,最好有一个不同的string为每个案件。

我的问题是,是否有任何pythonic方法基于布尔条件的结果格式化string? 我可以使用for循环结构,但我想知道是否有更容易的东西,类似于生成器expression式。

我正在寻找类似这样的stringforms

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,但它显示,一般来说,我在找什么。 我想知道是否有任何有效的expression式布尔string格式,类似于上面。 在search了一下之后,我无法find与条件string格式有关的任何东西。 一般来说,我在格式string中find了几个post,但这不是我正在寻找的。

如果这样的事情确实存在,那将是非常有用的。 我也打开任何可能build议的替代方法。 预先感谢您提供的任何帮助。

你的代码实际上有效的Python,如果你删除两个字符,逗号和冒号。

 >>> gender= "male" >>> print "At least, that's what %s told me." %("he" if gender == "male" else "she") At least, that's what he told me. 

虽然更现代的风格使用.format

 >>> s = "At least, that's what {pronoun} told me.".format(pronoun="he" if gender == "male" else "she") >>> s "At least, that's what he told me." 

格式的论据可以成为你喜欢的任何复杂性的dict

Python中有一个条件expression式

 A if condition else B 

你的例子可以很容易地通过省略两个字符变成有效的Python:

 print ("At least, that's what %s told me." % ("he" if gender == "male" else "she")) 

我经常select的另一种方法是使用字典:

 pronouns = {"female": "she", "male": "he"} print "At least, that's what %s told me." % pronouns[gender]