Question: 
Write a python function to toggle bits of the number except the first and the last bit.


Model's Code:
def toggle_middle_bits(n):
    if n < 3:
        return n
    # Get the binary representation without '0b' prefix
    bin_n = bin(n)[2:]
    # Toggle middle bits
    toggled = bin_n[0] + ''.join('1' if b == '0' else '0' for b in bin_n[1:-1]) + bin_n[-1]
    # Convert back to integer
    return int(toggled, 2)



Sample Correct Code:
def set_middle_bits(n):  
    n |= n >> 1; 
    n |= n >> 2; 
    n |= n >> 4; 
    n |= n >> 8; 
    n |= n >> 16;  
    return (n >> 1) ^ 1
def toggle_middle_bits(n): 
    if (n == 1): 
        return 1
    return n ^ set_middle_bits(n) 


Asserts:
assert toggle_middle_bits(9) == 15
assert toggle_middle_bits(10) == 12
assert toggle_middle_bits(11) == 13


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 735 of 974: 557/735 (75.78231292517007%): success