Skip to content

Commit e06e352

Browse files
committed
Python exec() sample code
1 parent 8e4cc3f commit e06e352

File tree

6 files changed

+82
-0
lines changed

6 files changed

+82
-0
lines changed

python-exec/calculations.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# calculations.py
2+
3+
4+
def add(a, b):
5+
"""Return the sum of two numbers.
6+
7+
Tests:
8+
>>> add(5, 6)
9+
11
10+
>>> add(2.3, 5.4)
11+
7.7
12+
>>> add("2", 3)
13+
Traceback (most recent call last):
14+
TypeError: numeric type expected for "a" and "b"
15+
"""
16+
if not (isinstance(a, (int, float)) and isinstance(b, (int, float))):
17+
raise TypeError('numeric type expected for "a" and "b"')
18+
return a + b
19+
20+
21+
# ...

python-exec/compiled_code.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# compiled_code.py
2+
3+
string_code = """
4+
def sum_of_even_squares(numbers):
5+
return sum(number**2 for number in numbers if number % 2 == 0)
6+
7+
print(sum_of_even_squares(numbers))
8+
"""
9+
10+
compiled_code = compile(string_code, "<string>", "exec")
11+
exec(compiled_code)
12+
13+
numbers = [2, 3, 7, 4, 8]
14+
exec(compiled_code)
15+
16+
17+
numbers = [5, 3, 9, 6, 1]
18+
exec(compiled_code)

python-exec/hello.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# hello.py
2+
3+
print("Hello, Pythonista!")
4+
print("Welcome to Real Python!")
5+
6+
7+
def greet(name="World"):
8+
print(f"Hello, {name}!")

python-exec/settings.conf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
font_face = ""
2+
font_size = 10
3+
line_numbers = True
4+
tab_size = 4
5+
auto_indent = True

python-exec/settings.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# settings.py
2+
3+
from pathlib import Path
4+
5+
6+
def load_config(config_file):
7+
config_file = Path(config_file)
8+
code = compile(config_file.read_text(), config_file.name, "exec")
9+
config_dict = {}
10+
exec(code, {"__builtins__": {}}, config_dict)
11+
return config_dict

python-exec/string_based_code.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
code = """
2+
numbers = [2, 3, 7, 4, 8]
3+
4+
def is_even(number):
5+
return number % 2 == 0
6+
7+
even_numbers = [number for number in numbers if is_even(number)]
8+
9+
squares = [number**2 for number in even_numbers]
10+
11+
result = sum(squares)
12+
13+
print("Original data:", numbers)
14+
print("Even numbers:", even_numbers)
15+
print("Square values:", squares)
16+
print("Sum of squares:", result)
17+
"""
18+
19+
exec(code)

0 commit comments

Comments
 (0)