Рубрики
Без рубрики

Как выполнить несколько строк в одной строке Python из командной строки?

Резюме. Чтобы сделать Python One-LiLER из любого многострочного скрипта Python, замените новые линии новой линией символом «\ N» и передайте результат в функцию EXEC (…). Вы можете запустить этот скрипт снаружи (командная строка, оболочка, терминал), используя команду Python -C «EXEC (…)». https://youtu.be/zgjgctqeksu Проблема: Учитывая многострочный код … Как выполнить несколько строк в одной строке Python из командной строки? Подробнее “

Автор оригинала: Chris.

Резюме : Чтобы сделать Python One-LiLer из любого многострочного сценария Python, замените новые линии новой линейной символом '\ N' и пройти результат в EXEC (...) функция. Вы можете запустить этот скрипт снаружи (командная строка, оболочка, терминал) с помощью команды Python -c "Exec (...)" .

Проблема : Учитывая многострочный код сценария в Python. Как выполнить этот многострочный скрипт в Одно строка кода Python ? Как сделать это из командной строки?

Пример : Скажем, у вас есть следующее за петля С вложенным, если утверждение в корпусе для цикла. Вы хотите запустить это в одной строке из вашей командной строки?

x = 10
for i in range(5):
    if x%2 == 0:
        print(i)
    else:
        print(x)
    x = x - 1

'''
0
9
2
7
4
'''

Код печатает пять чисел к оболочке. Это только печатает нечетные значения х Отказ Если х принимает даже значение, он печатает переменную петли i .

Давайте посмотрим на три метода для решения этой проблемы!

Метод 1: EXEC ()

Вы можете написать любой исходный код в строку и запустить строку с помощью встроенного EXEC () Функция в Python. Это мало известно – пока …| хакеры Часто используйте это, чтобы упаковать вредоносную код в одну строку, которая, казалось бы, безвредным.

Если у вас есть код, который охватывает несколько строк, вы можете упаковать его в однострочную строку, используя символ Newline '\ N' В вашей строке:

# Method 1
exec('x = 10\nfor i in range(5):\n    if x%2 ==0: print(i)\n    else: print(x)\n    x = x-1')

Этот фрагмент кода один вкладыш семантически эквивалентен вышеупомянутым вложенным для цикла, который требует семь строк кода! Вывод одинаково:

'''
0
9
2
7
4
'''

Попробуйте сами в нашем интерактивном коде раковину:

Упражнение : Удалите остальную ветвь этого кода. Какой вывод? Запустите код, чтобы проверить, были ли вы правы!

Способ 2: от командной строки | Python -C + EXEC ()

Конечно, вы также можете запустить этот код из вашей команды Win/Linux/Mac или Shell.

Просто обязательно используйте Python -c Префикс, а затем упаковывайте однострочный мультипроводник в строковое значение, которое передается как аргумент для Python программа.

Вот как это выглядит в моей победе 10 PowerShell:

PS C:\Users\xcent> python -c "exec('x = 10\nfor i in range(5):\n    if x%2 ==0: print(i)\n    else: print(x)\n    x = x-1')"
0
9
2
7
4

Способ 3: Используйте Ternary Operator к однопрослужению кода

Конечно, вы также можете создать свой собственный семантически-эквивалентный одноклассник, используя немного творчества и навыки одноклассников Python и Python (например, приобретенные посредством чтения моей книги «Python One-Liners» от ностарха)!

В этом коде вы используете Terary Operator:

# Method 3
for i in range(5): print(10-i) if i%2 else print(i)

Вы можете легко убедить себя, что код делает то же самое в одной строке!

Python One-Liners Книга

Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.

Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.

Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:

Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку

К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.

Получите свой Python One-Liners сейчас !!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-execute-multiple-lines-in-a-single-line-python-from-command-line/”