Изучаю Python, попалась такая задача: «Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка.
Например, если на вход подаётся список «1 3 5 6 10», то на выход ожидается список «13 6 9 15 7″ (без кавычек). Если на вход пришло только одно число, надо вывести его же.» В моём варианте пишет, что ошибка в строке 8, мол, не знает числа с таким индексом. Подскажите, пожалуйста, что я делаю не так, в чём ошибка?
a = [int(x) for x in input().split()] b = [] i = 0 if len (a) == 1: print(a) else: for c in a: b.append(int(a[i — 1]) + int(a[i + 1])) i = i + 1 print(b)
Отслеживать
845 7 7 серебряных знаков 23 23 бронзовых знака
задан 28 июн 2016 в 19:34
161 1 1 золотой знак 2 2 серебряных знака 6 6 бронзовых знаков
Насчёт вывода строки я разберусь.
2.5 Списки. Соседи. Программирование на Python. Курс Stepik
Пусть сейчас на выходе будет список — ладно. Просто хочу понять, в чём ошибка. Заранее спасибо!
28 июн 2016 в 19:35
Как я понял, во время того, когда в цикле for обрабатывается последний элемент списка, то он обращается к индексу [последний индекс + 1]. Видимо, в этом ошибка? Только как это исправить?
Источник: ru.stackoverflow.com
Программа должна вывести список состоящий из сумм соседних чисел
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
main
Создать тег $
Создать ветку $
python / sum_of_two.py
# На вход программе подается натуральное число, а затем n целых чисел. Напишите программу, которая создает из указанных чисел список, состоящий из сумм соседних чисел (0 и 1, 1 и 2, 2 и 3 и т.д.). Программа должна вывести список, состоящий из сумм соседних чисел. |
n = int ( input ( ) ) |
txt = [ int ( input ( ) ) for i in range ( n ) ] |
spis = [ txt [ i ] + txt [ i + 1 ] for i in range ( n — 1 ) ] |
print ( spis ) |
Источник: codeberg.org
Python-сообщество
12 Списки и операции над ними Python
- Начало
- » Центр помощи
- » Программа должна для каждого элемента списка вывести сумму двух соседних элементов.
#1 Ноя. 20, 2014 20:14:06
Программа должна для каждого элемента списка вывести сумму двух соседних элементов.
Вот условия(это просто…):
Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список “1 3 5 6 10”, то на выход ожидается список “13 6 9 15 7” (без кавычек).
Если на вход пришло только одно число, надо вывести его же.
Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.
#2 Ноя. 20, 2014 20:29:26
Программа должна для каждого элемента списка вывести сумму двух соседних элементов.
string = input(‘Vvedite chisla razdelyaya ih probelami: ‘) a = string.split(‘ ‘) # Пусть будет так 🙂 res = [a[i-1] + a[i+1] if i len(a) — 1 else a[i-1] + a[0] for i, x in enumerate(a)] if len(a) > 1 else a print(‘ ‘.join(res))
Отредактировано botinag (Ноя. 20, 2014 20:41:55)
Источник: python.su