Введение
В данной статье напишем 3 программы на python в одну строку.
Данными программами Вы сможете удивить друзей и знакомых, ведь мало кто знает, что вместо большого кода можно отделаться одной строчкой.
Калькулятор в одну строку
Python великолепен тем, что всего лишь в одной строке можно создать целый калькулятор! Так что если Вы только начинаете изучать python и Вас попросили написать калькулятор, будет возможность показать данную программу.
Код программы:
while True: print(eval(input('>>>')))
В самом начале программы создаётся бесконечный цикл while;
Функция print() выводит функцию eval();
Функция eval() выполняет строку-выражение переданное ей в качестве обязательного аргумента и возвращает результат выполнения этой строки.
Факториал в одну строку
В основном функцию для нахождения факториала пишут для понимания рекурсии, но в нашем случае мы просто рассмотрим создание подобной программы в одну строку. Есть несколько вариантов такой программы, рассмотрим два из них.
Первый вариант
В данном варианте как раз будет присутствовать рекурсия, так что можно его использовать как её пример.
Код программы:
factorial = lambda x: factorial(x - 1) * x if x > 1 else 1
Создаём функцию factorial;
Вызываем функцию factorial внутри себя, тем самым делая рекурсию и умножая число на последующее;
В условии мы проверяем, закончилось ли введённое число при вычитании единицы с каждой итерацией.
Второй вариант
Во втором варианте мы не будем использовать анонимные функции. В нём у нас опять же будет задействована функция eval(), а так же генератор.
Код программы:
print('Factorial:',eval(str([i for i in range(1,int(input('number -> '))+1)]).replace(', ','*')[1:-1]))
В самом начале функция print() выводит функцию eval();
В функции eval() находится генератор, генерирующий числа по порядку вплоть до вводимого пользователем числа;
Срабатывает метод replace(), в котором находится срез [1:-1].
Проверка строки на палиндром в одну строку
Ну и последняя программа, которую мы напишем проверяет строку на палиндром с помощью среза.
palindrom = lambda a: 'Строка является палиндромом' if a == a[::-1] else "Строка не является палиндромом"
Создаём функцию palindrom;
Задаётся условие, что если строка является палиндромом, то в консоль выводится «Строка является палиндромом», если же нет, то выводится «Строка не является палиндром».
Заключение
И так, мы разобрали целых 3 программы, которые можно написать в одну строку с помощью python, надеюсь они Вам понравились!
На этом статься подходит к концу, спасибо всем кто читал 🙂
Пойду удивлять информатичку))
Ага, прикольно 🙂