Добавить в корзинуПозвонить
Найти в Дзене

Вариации на тему «Hello, World!» в Python. Вариант 11. Используем функцию exec()

Продолжаем вариации на тему «Hello, World!» в Python. Следующие два примера (с разными вариантами оформления многострочной строки) демонстрируют работу встроенной функции exec() в языке Python. *** Функция exec() принимает строку, содержащую валидный Python-код, и выполняет этот код в текущем контексте (то есть в той же области видимости, где вызвана функция). Синтаксис выглядит так: exec(code_string) • code_string – это строка (тип str), внутри которой написан исполняемый код. *** exec(""" print('Hello, World!') """) или exec(""" print("Hello, World!") """) • Внутри exec() передаётся многострочная строка, ограниченная тройными двойными кавычками. • Python выполняет код, находящийся внутри этой строки. • Вызов print('Hello, World!') выводит текст на экран. • Результат: Hello, World! *** exec(''' print('Hello, World!') ''') или exec(''' print("Hello, World!") ''') • Здесь используется аналогичный подход, но для обрамления строки используются тройные одинарные кавычки. • Внутри строки
Оглавление

Продолжаем вариации на тему «Hello, World!» в Python.

Следующие два примера (с разными вариантами оформления многострочной строки) демонстрируют работу встроенной функции exec() в языке Python.

***

Что делает функция exec()?

Функция exec() принимает строку, содержащую валидный Python-код, и выполняет этот код в текущем контексте (то есть в той же области видимости, где вызвана функция).

Синтаксис выглядит так:

exec(code_string)

• code_string – это строка (тип str), внутри которой написан исполняемый код.

***

1-й вариант. Тройные двойные кавычки (""")

exec("""

print('Hello, World!')

""")

или

exec("""

print("Hello, World!")

""")

Внутри exec() передаётся многострочная строка, ограниченная тройными двойными кавычками.

Python выполняет код, находящийся внутри этой строки.

Вызов print('Hello, World!') выводит текст на экран.

Результат: Hello, World!

***

2-й вариант. Тройные одинарные кавычки (''')

exec('''

print('Hello, World!')

''')

или

exec('''

print("Hello, World!")

''')

Здесь используется аналогичный подход, но для обрамления строки используются тройные одинарные кавычки.

Внутри строки вызывается print().

В Python одинарные (') и двойные (") кавычки для строк взаимозаменяемы. Выбор между ними – вопрос стиля, вкуса или удобства (например, чтобы не экранировать внутренние кавычки).

Результат: Hello, World!

-2

***

Зачем это нужно?

Использование exec() позволяет выполнять код, который генерируется или загружается динамически во время работы программы (например, из файла, базы данных или пользовательского ввода). Это мощный инструмент, но его следует использовать с осторожностью, так как выполнение произвольного кода может быть небезопасным.

В данном конкретном примере обе конструкции идентичны по результату. Разница заключается только в синтаксисе определения многострочной строки.

***

Примечания

1. Как правило, «Hello, World!» – это первая программа в учебниках по программированию для начинающих.

2. Традиция использования фразы «Hello, World!» в качестве тестовой программы была введена в книге «Язык программирования Си» Брайана Кернигана и Денниса Ритчи (Brian Kernighan, Dennis Ritchie. The C Programming Language), опубликованной в 1978 году.