加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何实现条件字符串格式?

发布时间:2020-12-20 10:31:59 所属栏目:Python 来源:网络整理
导读:我一直在用 Python编写基于文本的游戏,我遇到过一个实例,我希望根据一组条件对字符串进行不同的格式化. 具体来说,我想显示描述房间内物品的文字.我希望在房间的描述中显示这个,当且仅当有问题的物品对象位于房间对象的物品清单中时.它的设置方式,我觉得简单
我一直在用 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,但它总体上显示了我正在寻找的东西.我想知道布尔字符串格式是否有任何有效的表达式,类似于上面的.
在搜索了一下之后,我无法找到任何与条件字符串格式有关的内容.我确实在格式字符串上找到了几个帖子,但这不是我想要的.

如果确实存在类似的东西,那将非常有用.我也对可能提出的任何替代方法持开放态度.提前感谢您提供的任何帮助.

解决方法

如果你删除两个字符,逗号和冒号,你的代码实际上是有效的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,你可以用你喜欢的任何复杂性来构建.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读