Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2021 09:12:32

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

sum

Здравствуйте.
Есть такая задачка:
Напишите следующую программу. Пользователь вводит список целочисленных значений, а также верхнюю границу для вычисления суммы.
Программа вычисляет сумму натуральных чисел, но за исключением тех, которые входят в список. Например, если пользователь ввел список: 2,5,6 и 10 в качестве верхней границы суммы, то программа должна
вычислить сумму чисел от 1 до 10, но без учета чисел 2, 5 и 6.

Помогите разобраться, не могу понять. Основное все работает, а вот сумму чисел не получается вывести.
Вот мой код:
sp = eval(input('введите список целочисленных значений: ‘))
gr = eval(input(’введите границу списка: ‘))
for i in range(gr):
k = set(str(i)) - set(str(sp))
for s in k:
print(’'.join(s), end=', ')

Отредактировано AleksandrM (Дек. 4, 2021 09:15:12)

Офлайн

#2 Дек. 4, 2021 10:28:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

sum

  
>>> def f():
...     numbers = set(map(int, input('numbers: ').split()))
...     maximum = int(input('maximum: '))
...     out = 0
...     for i in range(1, maximum + 1):
...         if i not in numbers:
...             out += i
...     print(out)
... 
>>> f()
numbers: 2 5 6
maximum: 10
42
>>>

  
>>> def f():
...     numbers = set(map(int, input('numbers: ').split()))
...     maximum = int(input('maximum: '))
...     out = sum(i for i in range(1, maximum + 1)
...               if i not in numbers)
...     print(out)
... 
>>> f()
numbers: 2 5 6
maximum: 10
42
>>>



Отредактировано py.user.next (Дек. 4, 2021 10:30:21)

Офлайн

#3 Дек. 4, 2021 11:27:26

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

sum

У меня почему то Ваш код выдает ошибку.

Прикреплённый файлы:
attachment 2021-12-04_142509.png (52,4 KБ)

Офлайн

#4 Дек. 4, 2021 11:50:01

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

sum

Спасибо, разобрался.
Не надо ставить запятые.
А как написать этот код попроще:

 out = sum(i for i in range(1, maximum + 1)
              if i not in numbers)

Офлайн

#5 Янв. 3, 2024 19:02:20

Yurii_Mikhailovich
Зарегистрирован: 2024-01-03
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

sum

Я нашёл варинат, при котором пользователь может вводить числа без пробела:
numbers = list(input(“Введите числа: ”))
numbers_str = ‘ ’.join(number)
maximum = int(input(“Введите максимум: ”))
number_list = list(map(int, number_str.split()))
ans = 0
for i in range(1, maximum + 1):
if i not in number_list:
ans += i
else:
ans += 0

print(ans)

Отредактировано Yurii_Mikhailovich (Янв. 3, 2024 19:02:59)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version