Python中的异常处理(尝试...除外)

时间:2014-04-10 14:08:01

标签: python exception exception-handling try-except

我正在尝试将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)

1 个答案:

答案 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...
相关问题