可能在字符串中添加额外的句子/单词

2024-04-20 11:57:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾多次创建类似的代码:

if condition():
    word = " not"
else:
    word = ""

print "A five ounce bird could{0} carry a one pound coconut".format(word)

我已经把问题分解到它的核心,在“实践”中,"A""five""bird""a""one",和{}的变量,这样它们可能都会发生变化,并与它们一起添加复数的s-es和其他。在

我总觉得这不太令人满意。在"not"之前需要额外的空间,而{0}之前缺少一个空格,这两个问题都令人讨厌,但既然word是空的,我就不想有其他方法了。在

创建两个单独的消息时使用DRY中断,有时甚至不可行,因为可能的组合太多。在

有没有更优雅的方式来做这个?在


Tags: 代码ifnotconditiononeelsewordcould
3条回答

创建一个单词列表,必要时插入,然后' '.join(words)它们。在

如果有逗号/句点,建立一个句子结构:

[['If', 'there', 'are', 'periods'], ', ', ['build', 'a', 'sentence', 'structure'], '.']

在interfunction中使用相应的空格(逗号后的空格,括号前的空格,…),然后' '.join()组内的单词,''.join()单独的组。(感谢@Alfe提出的用不同方式连接单词和组的建议)。在

Creating two separate messages breaks with DRY

如果您关心i18n,那么创建两个独立的消息可能是唯一合理的方法。在

对于" not"的情况,请保持简单:

print "A five ounce bird could{0} carry a one pound coconut".format(" not" if condition() else "")

相关问题 更多 >