我正在尝试将try...except
异常处理实现到下面的代码中。当输入类似“s4”的内容时,我希望出现“非数值...”的输出。
我知道哪里出错了?
import string
import math
def getSqrt(n):
return math.sqrt(float(n))
s = input("Enter a numerical value: ")
try:
for i in s:
if (i.isdigit() or i == "."):
sType = "nonstr"
if (sType =="nonstr"):
print(getSqrt(s))
else:
s = "Non numberical value..."
except ValueError as ex:
print(ex)
else:
print(s)
答案 0 :(得分:4)
Ask for forgiveness - 将输入的值转换为float
并处理ValueError
:
try:
s = float(input("Enter a numerical value: "))
except ValueError:
print("Non numberrical value...")
else:
print(getSqrt(s))
演示:
>>> try:
... s = float(input("Enter a numerical value: "))
... except ValueError:
... print("Non numberrical value...")
...
Enter a numerical value: s4
Non numberrical value...