SLICE FOR ROTATING AND SHIFTING
Python
#!/usr/bin/env python3
"""
SLICE FOR ROTATING AND SHIFTING
Circular rotations and element shifting
"""
print("=== Rotate List Left ===")
data = [1, 2, 3, 4, 5, 6, 7, 8]
rotate_by = 3
# Rotate left: move first n elements to end
rotated_left = data[rotate_by:] + data[:rotate_by]
print(f"Original: {data}")
print(f"Rotate left 3: {rotated_left}")
print("\n=== Rotate List Right ===")
# Rotate right: move last n elements to beginning
rotated_right = data[-rotate_by:] + data[:-rotate_by]
print(f"Original: {data}")
print(f"Rotate right 3: {rotated_right}")
print("\n=== Circular Queue Simulation ===")
queue = ['A', 'B', 'C', 'D', 'E']
print(f"Initial queue: {queue}")
# Dequeue (remove first) and enqueue (add to end)
removed = queue[0]
queue = queue[1:] + ['F']
print(f"After dequeue '{removed}' and enqueue 'F': {queue}")
print("\n=== Shift Elements ===")
numbers = [10, 20, 30, 40, 50]
# Shift right (insert 0 at start, remove last)
shift_right = [0] + numbers[:-1]
print(f"Original: {numbers}")
print(f"Shift right: {shift_right}")
# Shift left (remove first, append 0)
shift_left = numbers[1:] + [0]
print(f"Shift left: {shift_left}")
print("\n=== Caesar Cipher Rotation ===")
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
shift = 3
# Rotate alphabet by 3 (Caesar cipher key)
rotated_alphabet = alphabet[shift:] + alphabet[:shift]
print(f"Original: {alphabet}")
print(f"Shifted: {rotated_alphabet}")
# Encrypt a message
message = "HELLO"
encrypted = ''.join(rotated_alphabet[alphabet.index(c)] for c in message)
print(f"\nMessage: {message}")
print(f"Encrypted: {encrypted}")
print("\n=== Rotate for Animation ===")
frames = ['[ ]', '[= ]', '[== ]', '[=== ]', '[====]']
for i in range(8):
# Rotate animation frames
frame_index = i % len(frames)
rotated = frames[frame_index:] + frames[:frame_index]
print(f"Frame {i}: {rotated[0]}")