<p>就像一个小小的<em>复活节彩蛋</em>,我想我也应该把这个小宝石作为一个选择,如果只是因为你的问题:</p>
<blockquote>
<p>How can I return nothing if my string doesnt contain rr? Is there anyway of just pass or return nothing?</p>
</blockquote>
<p>使用布尔运算符,可以将<code>if</code>行从<code>check()</code>中完全去掉。你知道吗</p>
<pre><code>def check(text, dont_want='rr', want='r'):
replacement = text.replace(dont_want, want)
return replacement != text and replacement or None
#checks if there was a change after replacing,
#if True: returns replacement
#if False: returns None
test = "differrence"
check(test)
#difference
test = "difference"
check(test)
#None
</code></pre>
<p>考虑一下这个<code>un-pythonic</code>与否,这是另一个选择。再加上这是他的问题。你知道吗</p>
<p><em>“如果字符串不包含rr,则返回none”</em></p>
<p>对于那些不知道这是如何工作或为什么工作的人,<em>(和/或喜欢学习很酷的python技巧但不知道这一点)</em>下面是<a href="https://docs.python.org/2.0/ref/lambda.html" rel="nofollow noreferrer">docs</a>页,解释布尔运算符。你知道吗</p>
<p><strong>附言</strong></p>
<p>从技术上讲,它是<code>un-pythonic</code>,因为它是<code>ternary</code>操作。这确实违背了“Python的禅”~ <a href="https://www.python.org/dev/peps/pep-0020/#id3" rel="nofollow noreferrer">^{<cd6>}</a>,但是来自<code>C</code>风格的语言,我喜欢它们。</em></p>