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

CoP*_*PHP 1 python exception-handling exception 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)
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 5

请求原谅 -将输入的值转换为float并处理ValueError

try:
    s = float(input("Enter a numerical value: "))
except ValueError:
    print("Non numberrical value...")
else:
    print(getSqrt(s))
Run Code Online (Sandbox Code Playgroud)

演示:

>>> try:
...     s = float(input("Enter a numerical value: "))
... except ValueError:
...     print("Non numberrical value...")
... 
Enter a numerical value: s4
Non numberrical value...
Run Code Online (Sandbox Code Playgroud)