擅长:python、mysql、java
<h3>你的问题中有太多的代码:</h3>
<p>让我们将您的代码示例简化为您真正关心的内容:</p>
<pre><code>preadd1 = "-sf"
preadd2 = "3"
if "-" in preadd1 or "." in preadd1 or "-" in preadd2 or "." in preadd2 and preadd1.replace("-","").isdigit() and preadd1.replace(".","").isdigit() and preadd2.replace("-","").isdigit() and preadd2.replace(".","").isdigit():
print "Shouldn't get here!"
</code></pre>
<h3>我对你问题的看法:</h3>
<p>以下是您的表达:</p>
<pre><code>if "-" in preadd1 or "." in preadd1 or "-" in preadd2 or "." in preadd2 and preadd1.replace("-","").isdigit() and preadd1.replace(".","").isdigit() and preadd2.replace("-","").isdigit() and preadd2.replace(".","").isdigit():
</code></pre>
<p>字符串中有一个<code>-</code>,所以整个表达式都是真的。你知道吗</p>
<h3>真正的解决方案:</h3>
<p>您应该看看这个问题,寻找各种正确的方法来测试字符串是否可以转换为浮点:<a href="https://stackoverflow.com/questions/736043/checking-if-a-string-can-be-converted-to-float-in-python">Checking if a string can be converted to float in Python</a></p>