【发布时间】:2020-09-25 02:58:06
【问题描述】:
我有一些函数,例如范围数 n 的 sumssqure,如果 n 是整数,它应该返回总和值。如果 n 不是整数,应该返回一些字符串。它必须使用 raise ValueError("对不起,n 必须是整数!"). 我的代码可以很好地处理任何整数 n,但是当 n 不是整数时会出现问题。我不知道如何解决它。非常感谢。
def sumsquares(n):
try:
return sum(i**2 for i in range(0,n+1))
except ValueError as ve:
err = str(ve)
assert err == "Sorry, n must be a whole number!"
sumsquares(2.2)
【问题讨论】:
-
assert不起作用。如果没有错误,则err未设置,尝试比较时会出错。如果有错误,err将是错误消息,而不是您要比较的字符串。 -
你为什么不简单地测试输入看它是否是一个整数?
-
except 和 assert 部分来自指令,看来我必须在里面添加这些代码。也许我添加不正确?失去理智。
-
如果其中一个答案解决了您的问题,请accept it;这样做不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。尽管您只能接受一个答案,但您可以选择对您认为有帮助的人进行投票。 (如果仍有问题,您可能需要编辑您的问题并提供更多详细信息。)(请也返回您的其他问题并提供答案。谢谢!)
标签: python