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

时间:2019-03-04 16:49:29

标签: python string-length negative-number

对于任何负数,即使它是该数字的一部分,它也会将“-”视为字符。 我尝试先将数字设为字符串,但这不会改变结果,它总是使实际涉及的字符数为+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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

一旦您将引号放在整数周围,例如-2,它就不再是整数。它变成了字符串文字,因此-2被视为字符,就像'a','b'等。

要获取绝对整数值,请执行以下操作:

abs(int(kappa))

答案 3 :(得分:0)

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

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")