Форум сайта python.su
0
Дана последовательность 5 натуральных чисел. Надо определить, есть ли одинаковые рядом стоящие числа, и если есть, вывести порядковые номера первой пары.
Вот какой код у меня получился(сильно не пинайте, осваивал питон в процессе написания)
A = [] print("Задайте последовательность натуральных чисел") for k in range(1,6): x = int(input("A[" + str(k) + "]= ")) A.append(x) for i in A: if A[i] == A[i+1]: p1 = i p2 = i+1 break if p1 != p2: print("Порядковые номера чисел: " + str(p1+1) + " и " + str(p2+1)) else: print("Нет таких чисел")
IndexError: list index out of range
if A[i] == A[i+1]:
range(1,6)
Отредактировано sw0rl0k (Июнь 2, 2014 21:45:41)
Офлайн
88
Офлайн
857
>>> def f(lst): ... for i in range(len(lst) - 1): ... if lst[i] == lst[i + 1]: ... return i + 1, i + 2 ... >>> f([1, 2, 3, 4, 5]) >>> f([1, 1, 3, 4, 5]) (1, 2) >>> f([1, 2, 2, 2, 5]) (2, 3) >>> f([1, 1, 3, 4, 4]) (1, 2) >>> f([1, 2, 3, 4, 4]) (4, 5) >>>
sw0rl0kПользователя может и не быть за компьютером. Данные могут прийти по сети.print("Задайте последовательность натуральных чисел")
Офлайн
88
def neighbours(l): for i, (a, b) in enumerate(zip(l[:-1], l[1:])): if a == b: return i, i + 1
Офлайн