Определить знак введенного числа, затем сложить положительные числа
a = int(input()) #пользователь вводит число от (-бесконечность;бесконечность)
b = int(input()) #пользователь вводит число от (-бесконечность;бесконечность)
c = int(input()) #пользователь вводит число от (-бесконечность;бесконечность)
if 0 < a:
plus1 = a
elif 0 > a:
minus1 = a
elif 0 < b:
plus2 = b
elif 0 > b:
minus2 = b
elif 0 < c:
plus3 = c
elif 0 > c:
minus3 = c #цикл определяет знак числа
else:
plus1 = a
plus2 = b
plus3 = c
print(plus1 + plus2 + plus3) #сложение положительных чисел
Проблема в том, что когда я ввожу цифры, то числа не складываются.
Ответы (2 шт):
a = int(input())
b = int(input())
c = int(input())
nums = [a,b,c]
count = 0
for n in nums:
if n > 0:
count += n
print(count)
можно как-то так(наверное)
Проблема вашей программы заключается в том, что когда ваше первое введенное число (a) будет например положительным, выполнится только первая команда (plus1 = a) и весь остальной код будет проигнорирован.
Почему проигнорирован?
Потому, что вся ваша программа состоит только из ветвей одного и того-же самого if, и во всяком случае может исполниться только код одной ветви.
Как это исправить?
Для всякого введенного числа (
a,b,c) используйте отдельныйif, т.к. эти числа независимы друг от друга.Переменные
minus1,minus2,minus3совсем не нужны, нонужно сначала переменным
plus1,plus2,plus3присвоить нуль.Ваше заключительное
elseнадо тем самым удалить.
plus1 = plus2 = plus3 = 0
if 0 < a:
plus1 = a
if 0 < b:
plus2 = b
if 0 < c:
plus3 = c
print(plus1 + plus2 + plus3) #сложение положительных чисел