In [ ]:
Copied!
# Display Python version and kernel information
import platform
import sys
print(f"Python version: {sys.version}")
print(f"Python implementation: {platform.python_implementation()}")
print(f"Platform: {platform.platform()}")
# Display Python version and kernel information
import platform
import sys
print(f"Python version: {sys.version}")
print(f"Python implementation: {platform.python_implementation()}")
print(f"Platform: {platform.platform()}")
Python Features¶
Python is excellent for:
- Data Science and Machine Learning
- Web Development
- Automation and Scripting
- Scientific Computing
In [ ]:
Copied!
import numpy as np
# Example: Data manipulation with pandas
import pandas as pd
# Create a sample dataset
data = {
"Language": ["Python", "R", "Julia", "Ruby"],
"Type": ["General", "Statistical", "Scientific", "General"],
"Performance": [7, 6, 9, 5],
"Ease of Use": [9, 7, 6, 8],
}
df = pd.DataFrame(data)
print("Programming Languages Comparison:")
df
import numpy as np
# Example: Data manipulation with pandas
import pandas as pd
# Create a sample dataset
data = {
"Language": ["Python", "R", "Julia", "Ruby"],
"Type": ["General", "Statistical", "Scientific", "General"],
"Performance": [7, 6, 9, 5],
"Ease of Use": [9, 7, 6, 8],
}
df = pd.DataFrame(data)
print("Programming Languages Comparison:")
df
In [ ]:
Copied!
# Visualization example
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
# Performance comparison
ax1.bar(
df["Language"],
df["Performance"],
color=["#3776ab", "#276DC3", "#9558B2", "#CC342D"],
)
ax1.set_title("Performance Comparison")
ax1.set_ylabel("Performance Score")
ax1.set_ylim(0, 10)
# Ease of use comparison
ax2.bar(
df["Language"],
df["Ease of Use"],
color=["#3776ab", "#276DC3", "#9558B2", "#CC342D"],
)
ax2.set_title("Ease of Use Comparison")
ax2.set_ylabel("Ease of Use Score")
ax2.set_ylim(0, 10)
plt.tight_layout()
plt.show()
# Visualization example
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
# Performance comparison
ax1.bar(
df["Language"],
df["Performance"],
color=["#3776ab", "#276DC3", "#9558B2", "#CC342D"],
)
ax1.set_title("Performance Comparison")
ax1.set_ylabel("Performance Score")
ax1.set_ylim(0, 10)
# Ease of use comparison
ax2.bar(
df["Language"],
df["Ease of Use"],
color=["#3776ab", "#276DC3", "#9558B2", "#CC342D"],
)
ax2.set_title("Ease of Use Comparison")
ax2.set_ylabel("Ease of Use Score")
ax2.set_ylim(0, 10)
plt.tight_layout()
plt.show()
Advanced Python Features¶
In [ ]:
Copied!
import time
# Example: Decorators and context managers
from functools import wraps
def timer_decorator(func):
"""Measure execution time of a function"""
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} took {end - start:.4f} seconds")
return result
return wrapper
@timer_decorator
def calculate_fibonacci(n):
"""Calculate Fibonacci sequence up to n terms"""
fib = [0, 1]
for i in range(2, n):
fib.append(fib[-1] + fib[-2])
return fib
# Test the decorated function
fib_sequence = calculate_fibonacci(20)
print(f"First 20 Fibonacci numbers: {fib_sequence}")
import time
# Example: Decorators and context managers
from functools import wraps
def timer_decorator(func):
"""Measure execution time of a function"""
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} took {end - start:.4f} seconds")
return result
return wrapper
@timer_decorator
def calculate_fibonacci(n):
"""Calculate Fibonacci sequence up to n terms"""
fib = [0, 1]
for i in range(2, n):
fib.append(fib[-1] + fib[-2])
return fib
# Test the decorated function
fib_sequence = calculate_fibonacci(20)
print(f"First 20 Fibonacci numbers: {fib_sequence}")
In [ ]:
Copied!
# Example: Async/await (for demonstration - won't execute in sync context)
import asyncio
async def fetch_data(delay, data_id):
"""Simulate async data fetching"""
print(f"Fetching data {data_id}...")
await asyncio.sleep(delay)
return f"Data {data_id} retrieved"
# Note: This is just for demonstration
# In a real async context, you would use:
# asyncio.run(fetch_data(1, "A"))
print("Python supports async/await for concurrent programming!")
# Example: Async/await (for demonstration - won't execute in sync context)
import asyncio
async def fetch_data(delay, data_id):
"""Simulate async data fetching"""
print(f"Fetching data {data_id}...")
await asyncio.sleep(delay)
return f"Data {data_id} retrieved"
# Note: This is just for demonstration
# In a real async context, you would use:
# asyncio.run(fetch_data(1, "A"))
print("Python supports async/await for concurrent programming!")
Installing Additional Python Packages¶
You can install additional packages directly from a notebook cell:
In [ ]:
Copied!
# Example of installing packages (commented out to avoid actual installation)
# !pip install scikit-learn
# !pip install tensorflow
# !pip install requests
print("Use !pip install <package> to install Python packages")
# Example of installing packages (commented out to avoid actual installation)
# !pip install scikit-learn
# !pip install tensorflow
# !pip install requests
print("Use !pip install to install Python packages")
Summary¶
The Python kernel provides:
- Full access to the Python ecosystem
- Excellent data science libraries (pandas, numpy, scikit-learn)
- Visualization tools (matplotlib, seaborn, plotly)
- Web frameworks and automation tools
- Strong community support and documentation
Python remains the most popular kernel for Jupyter notebooks due to its versatility and extensive library ecosystem.