Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2016 15:36:18

Dorum
Зарегистрирован: 2016-11-26
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки

FishHook
Вопрос аналогичный “как сделать ничего”.
- Если анализы будут положительными, то я застрелюсь.
- А если отрицательными?
- Ничего не буду делать.
Пример потрясающий. Решение найдено.
 list = []
while len(list) != 5:
    list1 = int(input("Введите число = "))
    list.append(list1)
print(list)
a = []
for i in range(len(list)):
    if list[i] > 0 and list[i - 1] > 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
    elif list[i] < 0 and list[i - 1] < 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
    if len(a) != 0:
        print(a[0], a[1], sep=" и ")
    elif len(a) == 0:
        pass
Спасибо Вам за уделенное время

Отредактировано Dorum (Ноя. 26, 2016 15:36:35)

Офлайн

#2 Ноя. 26, 2016 19:03:09

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Списки

все намного проще

 li_st = [int(i) for i in input().split()]
for i in range (len(li_st)-1):
    if li_st[i]*li_st[i+1]>0:
        print(li_st[i],li_st[i+1])
        break

Офлайн

#3 Ноя. 26, 2016 20:15:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Списки

Все еще гораздо проще, причем дает все пары, а не только первую

 l = [1, 4, -2, 3, -1, -1, 0, 78, 8, -7, 0, 2]
print([x for x in zip(l, l[1:]) if x[0] * x[1] > 0])



Отредактировано FishHook (Ноя. 26, 2016 20:17:34)

Офлайн

#4 Ноя. 26, 2016 20:33:50

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Списки

FishHook
Все еще гораздо проще, причем дает все пары, а не только первую
согласен. но согласно полному условию требуется только первая
“Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет — не выводите ничего. Если таких пар соседей несколько — выведите первую пару.”

Офлайн

#5 Ноя. 29, 2016 00:08:26

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Списки

Простите, но чтото здесь я затупил

 for i in range(len(list)):
    if list[i] > 0 and list[i - 1] > 0 and i != 0:

ведь list(i - 1) на первом же проходе должно выдавать “аут оф боундс”

ЗЫ. ПОЧИНИТЕ квадратные скобки в тексте.

Отредактировано Iskatel (Ноя. 29, 2016 00:31:38)

Офлайн

#6 Ноя. 29, 2016 06:10:28

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Списки

Iskatel
Простите, но чтото здесь я затупил
А индекс -1 вас чем смущает?

Офлайн

#7 Ноя. 30, 2016 19:35:16

Dorum
Зарегистрирован: 2016-11-26
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки

Iskatel
ведь list(i - 1) на первом же проходе должно выдавать “аут оф боундс”
Во-первых, -1 индекс - это последний элемент моего списка, а во-вторных, мое условие исключает первый, а он же 0 индекс, то есть i не должен равняться 0.

Офлайн

#8 Ноя. 30, 2016 21:57:53

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Списки

Да дошло уже, С++ меня еще не отпустил

Офлайн

#9 Дек. 2, 2016 20:37:46

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Списки

FishHook
l =
print([x for x in zip(l, l) if x * x > 0])

Не пинайте строго, но подразумевая разделение переменных из элементов массива, не чище ли писать типа что-то около:
 print([(x,y) for x,y in zip(l, l[1:]) if x*y > 0])[/quote]
?



Офлайн

#10 Дек. 2, 2016 20:46:45

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Списки

Iskatel
Да дошло уже, С++ меня еще не отпустил
Переходите лучше на D.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version