@SAS1997

Функции в питоне. Как избавиться от None?

На вход подается список из целых чисел. Ваша задача — определить, сколько чисел в этом списке являются положительными, сколько отрицательными и сколько из них равны нулю. Вам нужно вывести не сами числа, а их количество в каждой категории.
Решить задачу мне удалось, однако после необходимого вывода, я получаю None, мне необходимо с этим разобраться, откуда он появился и как от него избавиться.
def procces(input_string):
    i=0
    index=0
    count=count1=count2=0
    lens=len(input_string)
#print(input_string)\
    for i in range(0,lens):
        if input_string[i]>0:
            count+=1
            i+=1
        elif input_string[i]<0:
            count1+=1
            i+=1
        elif input_string[i]==0:
            count2+=1
            i+=1 
    s=print("Ниже нуля:", count1,'Выше нуля:',count,'Равно нулю',count2)
    return s

input_string = [int(x) for x in input().split()]
output_string=procces(input_string)
print(output_string)
  • Вопрос задан
  • 207 просмотров
Решения вопроса 2
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Что возвращает функция print()?
# s=print("Ниже нуля:", count1,'Выше нуля:',count,'Равно нулю',count2)
s = f"Ниже нуля: {count1}, Выше нуля: {count}, Равно нулю: {count2}"

https://stackoverflow.com/questions/28812851/why-i...
https://stackoverflow.com/questions/7053652/why-is...
Ответ написан
@Everything_is_bad
1. отформатируй код через тег code

s=print("Ниже нуля:", count1,'Выше нуля:',count,'Равно нулю',count2)
2. объясни зачем ты s присваиваешь результат работы функции print, какой в этом смысл?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@SAS1997 Автор вопроса
Удалось решить, спасибо за помощь итоговый код получился примерно таким:
def process(input_string: str) -> str:
i=0
input_string1 = [int(x) for x in input_string.split()]
index=0
count=count1=count2=0
lens=len(input_string1)
for i in range(0,lens):
if input_string1[i]>0:
count+=1
i+=1
elif input_string1[i]<0:
count1+=1
i+=1
elif input_string1[i]==0:
count2+=1
i+=1
str1 = f"выше нуля: {count}, ниже нуля: {count1}, равна нулю: {count2}"
return str1

input_string = input()
output_string = process(input_string)
print(output_string)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы