<p>我尝试添加两个数字,即使它们包含“-”或“.”,但如果我的命令有误,代码如下:</p>
<pre><code>def add():
print "\nAddition"
print " "
print "What is your first number?"
preadd1=raw_input(prompt)
print "What is your second number?"
preadd2=raw_input(prompt)
if preadd1.isdigit() and preadd2.isdigit():
add1=int(preadd1)
add2=int(preadd2)
add_answer= add1+add2
print " "
print add_answer
add()
elif preadd1=="pike" or preadd2=="pike":
pike()
elif "-" 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():
add1=float(preadd1)
add2=float(preadd2)
add_answer=add1+add2
print ""
print add_answer
add()
else:
print "\nPlease enter two numbers."
add()
add()
</code></pre>
<p>当我输入像“-sf”这样的非数字时,它返回错误:</p>
<pre><code>ValueError: could not convert string to float: -sf
</code></pre>
<p>这对我来说毫无意义,因为这是一个确定的<code>preadd1.replace("-","").isdigit() and preadd1.replace(".","").isdigit() and preadd2.replace("-","").isdigit() and preadd2.replace(".","").isdigit()</code></p>
<p>请帮忙。你知道吗</p>