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]