почему команда python len () для "-1" равна 2? - PullRequest
0 голосов
/ 04 марта 2019

для любого отрицательного числа, он также считает «-» как символ, хотя и является частью этого числа.Сначала я попытался сделать строку чисел, но это не изменит результат, он всегда дает +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 голосов
/ 04 марта 2019

Я не знаю, что вы имеете в виду.Но вот простая программа сравнения.

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")
0 голосов
/ 04 марта 2019

Поскольку вы берете длину строки, знак минуса сохраняется;это логичная вещь, почему мы хотим ее удалить?Если вас интересует количество цифр, просто удалите знак минус перед подсчетом числа символов:

n = '-125'
len(str(abs(int(n))))
=> 3
0 голосов
/ 04 марта 2019

После того, как вы заключили в кавычки целое число, скажем -2, оно больше не является целым числом.Он становится строковым литералом, поэтому - и 2 считаются символами, точно так же, как 'a', 'b' и т. Д.

Чтобы получить абсолютное целочисленное значение, выполните:

abs(int(kappa))
0 голосов
/ 04 марта 2019

len проверяет длину строки "-2", которая состоит из двух символов.

...