Форум сайта python.su
0
Задача с pythontutor. Не могу придумать решение. Буду благодарен за подсказку или решение. (Лучше подсказка
)
Даны два целых числа A и В, A>B. Выведите все нечётные числа от A до B включительно. В этой задаче нельзя использовать инструкцию if.
Самое банальное:
a = int(input()) b = int(input()) for i in range(a, b-1, -2): print(i)
a = int(input()) b = int(input()) for i in range(b, a+1, 2): print(i)
Отредактировано Straik32423 (Июль 8, 2016 19:58:55)
Офлайн
221
Ну не совсем круто конечно, но может подскажет что нибудь
>>> a = 10 >>> b = 2 >>> result = [] >>> for i in range(a, b, -1): ... c = i % 2 ... not c or result.append(i) ... True True True >>> for i in result: ... print(i) ... 9 7 5 3
Отредактировано JOHN_16 (Июль 8, 2016 20:25:41)
Офлайн
0
JOHN_16Да нет, не подскажет)
Ну не совсем круто конечно, но может подскажет что нибудь
Офлайн
73
Straik32423с какой темы задача? я что то не нашел такую.
Задача с pythontutor
Офлайн
73
все нашел. это из условной инструкции.самое интересное что эталонное решение использует if хотя в условии сказано иначе. вот эталонное решение
a = int(input()) b = int(input()) if a % 2 == 0: a -= 1 if b % 2: b -= 1 for i in range(a, b, -2): print(i, end=' ')
print(*(i for i in range(int(input()),int(input())-1,-1) if i%2!=0))
Офлайн
0
marvellikО боже, это я зря себе мозг столько времени насиловал? Мда… Спасибо, очень благодарен.
a = int(input())
b = int(input())
if a % 2 == 0:
a -= 1
if b % 2:
b -= 1
for i in range(a, b, -2):
print(i, end=' ')
Офлайн
16
А если так?
def print_odd(a, b): return filter((lambda x: x % 2), range(a, b-1, -1)) print(*print_odd(49, 9))
Офлайн
73
Strightэто начальный уровень обучения. до этой задачи даже списки не изучаются не то что лямбда функция. это я эту задачу переписал код после изучения списка,распаковки.
А если так?
Офлайн
16
Да, действительно, но, с другой стороны, и функция range до этой задачи не изучается 
Ну будет повод немного вперед заглянуть 
Офлайн
0
StrightИзучается. Прямо в этой теме. Цикл For, задача 3 “Ряд-3”.
Да, действительно, но, с другой стороны, и функция range до этой задачи не изучается Ну будет повод немного вперед заглянуть
Офлайн