我一直在用 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,但它总体上显示了我正在寻找的内容。我想知道是否有任何有效的布尔字符串格式表达式,与上面类似。
经过一番搜索后,我找不到任何与条件字符串格式化相关的内容。我确实找到了几篇关于一般格式字符串的帖子,但这不是我要找的。
如果确实存在这样的东西,那将非常有用。我也愿意接受可能建议的任何替代方法。
你的代码实际上is如果删除逗号和冒号这两个字符,则有效的 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."
其中 format 的参数可以是dict
您可以按照自己喜欢的复杂程度进行构建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)