I am trying to add two numbers, even if they contain "-" or ".", but my if command is wrong somehow, here is the 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()
when I enter a non-number like "-sf" it returns the error:
ValueError: could not convert string to float: -sf
this makes no sense to me, seeing as a made sure preadd1.replace("-","").isdigit() and preadd1.replace(".","").isdigit() and preadd2.replace("-","").isdigit() and preadd2.replace(".","").isdigit()
Please help.