Найти - Пользователи
Полная версия: нужна помощь
Начало » Python для новичков » нужна помощь
1
dima757
Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет — не выводите ничего. Если таких пар соседей несколько — выведите первую пару.
a = [int(i) for i in input().split()]
for i in range(1, len(a)):
    if a[i] > 0 and a[i - 1] > 0:
        print(a[i - 1], a[i])
    elif a[i] < 0 and a[i - 1] < 0:
        print(a[i - 1], a[i])
как вывести первую пару, если совпадений несколько
Firik
a = [int(i) for i in input().split()]
for i in range(1, len(a)):
    if (a[i] > 0 and a[i - 1] > 0) or (a[i] < 0 and a[i - 1] < 0):
        print(a[i - 1], a[i])
        break
py.user.next
Надо проверять “либо они оба отрицательные, либо нет”. Учесть, что список может быть пустым, а может содержать только одно число.
dima757
Спасибо!!!
if a[i - 1] * a[i] > 0:
оказывается можно чуть короче
py.user.next
dima757
оказывается можно чуть короче
Это ловушка и ты в неё попал. {(0, 0), (0, 1), (1, 0)} - подходящие пары. Не используй там умножение, потому что дальше у тебя будет >= 0 и ты попадёшь на (0, -1).
dima757
py.user.next
Спасибо!!! буду в курсе
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB