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

问题描述 投票:-1回答:4

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

python string-length negative-number
4个回答
1
投票

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

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

1
投票

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


1
投票

一旦你在整数周围加上引号,比如-2,它就不再是整数。它变成了一个字符串文字,所以-2被认为是字符,就像'a','b'等。

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

abs(int(kappa))

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")
© www.soinside.com 2019 - 2024. All rights reserved.