Напишите программу в Python, которая получает ** вход нижнюю и верхнюю границу диапазона...

+345 голосов
5.7m просмотров

Напишите программу в Python, которая получает на вход нижнюю и верхнюю границу диапазона целых чисел соответственно (ввод нажатием на клавишу после каждого числа), а выводит все числа, которые при делении на 15 дают в остатке 11, а при делении на 11 дают в остатке 9.


Информатика | 5.7m просмотров
+106

Вывод:
251
416
581
746
911

+81

ввод: 100
1000

+157

можно примеры ввода и вывода

Дано ответов: 2
+112 голосов

n_bott = int(input("Least number of interval - "))

n_top = int(input("The largest number of interval - "))

num_list = []

for num in range(n_bott,n_top + 1):

   if ((num % 15 == 11) and (num % 11 == 9)):

       num_list.append(num)

print(*num_list)

(474 баллов)
+110

Спасибо. А что нужно добавить, что бы выводилось списком? Спасибо

+90

и вы слышали что нибудь о функции filter()?

+81

Зачем хранить все элементы, удовлетворяющие условию, а потом выводить их все вместе, если можно сразу выводить значения? Я понимаю, что сейчас у каждого второго 16 гб ОЗУ, но всё же не стоит так лихо раскидываться памятью

+68 голосов

Ответ:

#Более экономная по памяти версия

lb, rb = map(int, input('Enter lower and upper range borders:\n').split())

cond = lambda item: item % 15 == 11 and item % 11 == 9

[print(item, end='\n') for item in filter(cond, range(lb, rb+1))]

ввод:

100 1000

вывод

251

416

581

746

911

(1.6k баллов)
+148

Спасибо

+96

обратите внимание, что в квадратные скобки взят не только вызов print(), а всё выражение целиком. Синтаксическая фишка Python. Почитайте "генераторы списков python"

+73

Спасибо. А почему Print, взят в квадратные скобки? Спасибо