为什么“-1”的 python len() 命令是 2?

why python len() command for "-1" is 2?

对于任何负数,它也将“-”计为一个字符,即使它是该数字的一部分。 我试着先把我的数字变成字符串,但它不会改变结果,它总是对所涉及的实际字符数 +1。

代码:

def cube(num):
    return str(num*num*num)
kappa=(cube(-5))
if len(kappa)<4:
    print(kappa)
elif len(kappa)>=4 and len(kappa)>=0:
    print(kappa + "   ,your number is bigger than 999")

结果:

-125 ,你的号码大于999

len 正在检查字符串 "-2" 的长度,该字符串有两个字符。

因为您计算的是字符串的长度,所以减号被保留;这是合乎逻辑的事情,为什么我们要删除它?如果您对位数感兴趣,只需在计算字符数之前删除减号:

n = '-125'
len(str(abs(int(n))))
=> 3

一旦你用引号括起一个整数,比如 -2,它就不再是整数了。它成为一个字符串文字,所以 -2 被认为是字符,就像 'a'、'b' 等

要获得绝对整数值,请执行:

abs(int(kappa))

我不知道你什么意思。但是这里有一个简单的比较程序。

def cube(num):
    return str(num*num*num)

kappa=int(cube(-5))

if kappa<4:
    print(kappa)
elif kappa>=4:
    print(kappa + " ,your number is bigger than 4")