Python если проблема с анализом чисел, если число до положительное или отрицательное? - PullRequest
0 голосов
/ 17 января 2020

поэтому моя цель состоит в том, чтобы создать программу, которая сканирует числа, и если число до нуля отрицательное, а число после нуля положительное, оно печатает «Ноль положителен» и, если напротив, «Ноль отрицательно». Проблема в том, что каждый раз, когда я ввожу числа, он всегда печатает только «Ноль отрицателен», так как программа должна работать только с 1 нулем и 2 числами, но позже я буду тратить. Вот мой код:

number = input("Enter Numbers: ")
lists = []
lists = number.split()
print(lists)
z = 0
y = 0
x = 0
indexes = [index for index, element in enumerate(lists) if element == "0"]
print(indexes)

pos = indexes[0] - 1
neg = indexes[0] + 1
zero = indexes[0]

if(int(neg) < zero and zero > int(pos)):
   print("Zero is postive")
else:
   print("Zero is negative")

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Как уже было сказано, вы должны сравнивать значения в списке, а не номера индексов.

Кроме того, в этом операторе if(int(neg) < zero and zero > int(pos)): есть логическая ошибка, он фактически проверяет, являются ли оба значения neg и both меньше zero.

И, возможно, более ясно, если neg указывает предыдущее значение zero и pos следующее.

Я изменил немного ваш код, и я думаю, что он работает правильно:

number = input("Enter Numbers: ")
lists = []
lists = number.split()
print(lists)
z = 0
y = 0
x = 0
indexes = [index for index, element in enumerate(lists) if element == "0"]
print(indexes)

neg = int(indexes[0] - 1)
pos = int(indexes[0] + 1)
zero = int(indexes[0])

if lists[neg] < lists[zero] < lists[pos]:
    print("Zero is postive")
else:
   print("Zero is negative")
0 голосов
/ 17 января 2020

Если я правильно понимаю формулировку проблемы, вам нужно сравнить элементы списка по индексам, но сравнивать индексы. Таким образом, условие в if должно быть изменено с:

if(int(neg) < zero and zero > int(pos)):

на что-то вроде этого (обратите внимание, что скобки в python * if не нужны):

if list[neg] > list[zero] > list[pos]:
...