Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » Программа должна для каждого элемента списка вывести сумму двух соседних элементов. [RSS Feed]

#1 Ноя. 20, 2014 20:14:06

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

Вот условия(это просто…):
Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список “1 3 5 6 10”, то на выход ожидается список “13 6 9 15 7” (без кавычек).
Если на вход пришло только одно число, надо вывести его же.
Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.

Офлайн

#2 Ноя. 20, 2014 20:29:26

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

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)

Офлайн

#3 Ноя. 20, 2014 20:37:09

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

Офлайн

#4 Ноя. 20, 2014 20:42:41

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

Stroncy
ошибку выдаёт:
да. я уже поправил.
см. код выше

Офлайн

#5 Ноя. 20, 2014 20:50:07

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

В моём первом посте (в условии): если ввести 1 3 5 6 10, то на выходе будет: 13 6 9 15 7.
а у вас вывод не правильный: 103 15 36 510 61 ((

Офлайн

#6 Ноя. 20, 2014 20:53:41

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

вот так пробуйте:

string = input('Vvedite chisla razdelyaya ih probelami: ')
a = map(int, 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:53:53)

Офлайн

#7 Ноя. 20, 2014 20:57:30

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

Офлайн

#8 Ноя. 20, 2014 21:01:24

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

string = input('Vvedite chisla razdelyaya ih probelami: ')
a = list(map(int, 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 21:02:24)

Офлайн

#9 Ноя. 20, 2014 21:08:18

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

Офлайн

#10 Ноя. 20, 2014 21:10:52

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Программа должна для каждого элемента списка вывести сумму двух соседних элементов.

string = input('Vvedite chisla razdelyaya ih probelami: ')
a = list(map(int, 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(map(str, res)))
пробуйте. посмотрим где я ошибусь в очередной раз…

Отредактировано botinag (Ноя. 20, 2014 21:12:30)

Офлайн

  • Начало
  • » Центр помощи
  • » Программа должна для каждого элемента списка вывести сумму двух соседних элементов.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version