【发布时间】:2021-10-04 04:04:20
【问题描述】:
当我在这段代码中输入一个负数时,我试图找出一个 valueerror。我试图让它说出一个数字是正数、负数、奇数还是偶数,或者是否是正方形。所有数字都有效,但负数会从我的( if isqrt(num) * isqrt(num) == 0 )返回一个值错误,因为它只会读取正值,但我如何输入它必须是的最后几行非负测试 isqrt 函数?
from math import isqrt
num = int(input("enter a number: "))
if num > 0:
print(num, "is positive")
elif num == 0:
print(num, "is zero")
else:
print(num, "is negative")
if num % 2 == 0:
print(num, 'is even')
else:
print(num, 'is odd')
if isqrt(num) * isqrt(num) == num:
print(num, 'is square')
else:
print(num, 'is not square')
【问题讨论】:
-
为什么不在 sqrt 测试之前先检查一下?喜欢
if num >= 0 and isqrt(num) * isqrt(num) == num:? -
isqrt的输入不能为负数。 -
Python中的math.isqrt()方法用于获取给定非负整数值n的整数平方根
标签: python valueerror