Python中的异常处理(Try…Except)

Python中的异常处理(Try…Except),python,exception,exception-handling,try-except,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 == "."):

我试图在下面的代码中实现
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)
-将输入的值转换为浮点值,并处理
ValueError

try:
    s = float(input("Enter a numerical value: "))
except ValueError:
    print("Non numberrical value...")
else:
    print(getSqrt(s))
演示:

-将输入的值转换为浮点值,并处理
ValueError

try:
    s = float(input("Enter a numerical value: "))
except ValueError:
    print("Non numberrical value...")
else:
    print(getSqrt(s))
演示:


您需要再次检查NONSR条件。此外,如果您已经在测试字符串,您会遇到什么异常?您需要再次检查NONSR条件。此外,如果您已经在测试字符串,您会遇到什么异常?感谢您的反馈。请原谅我的混淆,但是我如何在上面的代码中实现这一点,以便在输入整数并返回平方根时仍能处理?我应该在我的第一个问题中进一步解释这个问题。@CoPoPHP只需在try/except块之后调用
getSqrt()
。请参阅我已经更新了答案中的代码。@alacxe我现在应该得到一个名称错误吗<代码>名称错误:未定义名称。我不完全理解这个…@CoPoPHP好吧,这取决于你计划在错误中做什么。您可以通过调用
sys.exit()
退出程序,也可以允许用户再次输入号码,直到不会出现
ValueError
:@alacxe谢谢,让我看看链接。基本上,我试图显示平方根或“非数值…”。感谢您的反馈。请原谅我的混淆,但是我如何在上面的代码中实现这一点,以便在输入整数并返回平方根时仍能处理?我应该在我的第一个问题中进一步解释这个问题。@CoPoPHP只需在try/except块之后调用
getSqrt()
。请参阅我已经更新了答案中的代码。@alacxe我现在应该得到一个名称错误吗<代码>名称错误:未定义名称。我不完全理解这个…@CoPoPHP好吧,这取决于你计划在错误中做什么。您可以通过调用
sys.exit()
退出程序,也可以允许用户再次输入号码,直到不会出现
ValueError
:@alacxe谢谢,让我看看链接。基本上,我试图显示平方根或“非数值…”。