【发布时间】:2012-11-08 21:02:54
【问题描述】:
在 Python 3.3 中有没有一种方法可以只为字符串排除 ValueError ?如果我在 k 中输入一个字符串,我希望打印“无法将字符串转换为浮点数”,而不是“不能取负数的平方根”。
while True:
try:
k = float(input("Number? "))
....
except ValueError:
print ("Cannot take the square root of a negative number")
break
except ValueError:
print ("Could not convert string to float")
break
【问题讨论】:
-
为什么除了
ValueError之外还有2个? -
你没有在代码的任何地方取平方根,那么为什么第一个
except ValueError根本就在那里? -
我是 Python 的初学者,所以我可能做得不对。我需要打印两条单独的消息,一条用于负数,一条用于字符串。除了一个例外,我不知道该怎么做。
-
您也可以只打印异常。对于字符串,您会得到
ValueError: count not convert string to float: 'fdsdfsd'。对于负数,您会得到ValueError: math domain error。