# Parameterized Circuits **Parameterized circuits** use symbolic parameters instead of fixed rotation angles. Useful for [[qiskit-variational-algorithms|variational algorithms]] where you optimize parameters iteratively: evaluate the circuit with parameters $\theta_1, \theta_2, \ldots$, compute a cost, adjust parameters, repeat. Instead of rebuilding the circuit each iteration, define parameters once and bind different values—much faster. ```python from qiskit import QuantumCircuit from qiskit.circuit import Parameter theta = Parameter('θ') phi = Parameter('φ') qc = QuantumCircuit(2, 1) qc.rx(theta, 0) qc.ry(phi, 1) qc.cx(0, 1) qc.measure([0, 1], [0]) print(qc.draw()) ``` ## Binding Parameters Bind parameter values before execution: ```python import numpy as np from qiskit_aer import AerSimulator # Bind one parameter qc2 = qc.bind_parameters({theta: 0.5}) # Bind all parameters qc3 = qc.bind_parameters({theta: 0.5, phi: 1.0}) sim = AerSimulator() result = sim.run(qc3, shots=1000).result() print(result.get_counts()) ``` ## Parameter Sweeps For [[qiskit-optimizers|optimization]], you often evaluate circuits across many parameter values. Use `.parameter_bind()` or pass a list of parameter dictionaries: ```python param_list = [ {theta: np.pi * i / 10, phi: np.pi * j / 10} for i in range(10) for j in range(10) ] results = sim.run([qc.bind_parameters(p) for p in param_list], shots=1000) ``` Parameterized circuits make iterative optimization efficient.