Learn Cirq - 10 Code Examples & CST Typing Practice Test
Cirq is an open-source Python framework for quantum computing, developed by Google, focused on designing, simulating, and running quantum circuits on NISQ (Noisy Intermediate-Scale Quantum) devices.
Learn CIRQ with Real Code Examples
Updated Nov 25, 2025
Code Sample Descriptions
Cirq Simple Quantum Circuit
import cirq
qubits = [cirq.GridQubit(0,0), cirq.GridQubit(0,1)]
circuit = cirq.Circuit()
circuit.append(cirq.H(qubits[0]))
circuit.append(cirq.CNOT(qubits[0],qubits[1]))
circuit.append(cirq.measure(*qubits,key='result'))
simulator = cirq.Simulator()
result = simulator.run(circuit,repetitions=1000)
print(result)
A minimal Cirq example creating a 2-qubit quantum circuit, applying Hadamard and CNOT gates, and simulating measurements.
Cirq Single Qubit Rotation
import cirq
q = cirq.GridQubit(0,0)
circuit = cirq.Circuit(cirq.rx(1.5708)(q), cirq.measure(q,key='m'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(result)
Applies a rotation gate to a single qubit and measures it.
Cirq Bell State
import cirq
q0,q1 = cirq.GridQubit(0,0),cirq.GridQubit(0,1)
circuit = cirq.Circuit(cirq.H(q0), cirq.CNOT(q0,q1), cirq.measure(q0,q1,key='result'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=1000)
print(result)
Generates a Bell state and measures both qubits.
Cirq GHZ State
import cirq
q = [cirq.GridQubit(0,i) for i in range(3)]
circuit = cirq.Circuit(cirq.H(q[0]), cirq.CNOT(q[0],q[1]), cirq.CNOT(q[0],q[2]), cirq.measure(*q,key='result'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=1000)
print(result)
Creates a 3-qubit GHZ state and measures all qubits.
Cirq Random Circuit
import cirq
q = [cirq.GridQubit(0,0),cirq.GridQubit(0,1)]
circuit = cirq.testing.random_circuit(qubits=q, n_moments=5, op_density=0.5)
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(circuit)
print(result)
Creates a random quantum circuit with 2 qubits.
Cirq Quantum Fourier Transform
import cirq
q = [cirq.GridQubit(0,i) for i in range(3)]
circuit = cirq.Circuit()
for i in range(3):
circuit.append(cirq.H(q[i]))
for j in range(i+1,3):
circuit.append(cirq.CZ(q[j],q[i])**(1/2**(j-i)))
circuit.append(cirq.measure(*q,key='result'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(result)
Implements QFT on 3 qubits.
Cirq Parameterized Gate
import cirq
import sympy
q = cirq.GridQubit(0,0)
theta = sympy.Symbol('theta')
circuit = cirq.Circuit(cirq.rx(theta)(q), cirq.measure(q,key='m'))
sim = cirq.Simulator()
result = sim.run(circuit,{theta:1.57},repetitions=500)
print(result)
Uses a parameterized rotation gate on a qubit.
Cirq Controlled Gates
import cirq
q0,q1 = cirq.GridQubit(0,0),cirq.GridQubit(0,1)
circuit = cirq.Circuit(cirq.H(q0), cirq.CZ(q0,q1), cirq.measure(q0,q1,key='result'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(result)
Demonstrates a controlled-Z gate between two qubits.
Cirq Swap Gate Example
import cirq
q0,q1 = cirq.GridQubit(0,0),cirq.GridQubit(0,1)
circuit = cirq.Circuit(cirq.SWAP(q0,q1), cirq.measure(q0,q1,key='result'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(result)
Swaps two qubits and measures them.
Cirq Measurement in Different Basis
import cirq
q = cirq.GridQubit(0,0)
circuit = cirq.Circuit(cirq.H(q), cirq.measure(q,key='X_basis'), cirq.measure(q,key='Z_basis'))
sim = cirq.Simulator()
result = sim.run(circuit,repetitions=500)
print(result)
Measures a qubit in X and Z bases.
Frequently Asked Questions about Cirq
What is Cirq?
Cirq is an open-source Python framework for quantum computing, developed by Google, focused on designing, simulating, and running quantum circuits on NISQ (Noisy Intermediate-Scale Quantum) devices.
What are the primary use cases for Cirq?
Designing and simulating quantum circuits. Running algorithms on Google's quantum processors. Optimization and combinatorial problem solving. Quantum machine learning experiments. Noise-aware quantum algorithm development
What are the strengths of Cirq?
Strong support for NISQ device experimentation. Flexible and modular for custom gate definitions. Noise simulation and calibration tools. Open-source and well-documented. Supported by Google Research and growing community
What are the limitations of Cirq?
Primarily optimized for Google quantum hardware. Steeper learning curve for beginners compared to high-level frameworks. Limited pre-built algorithm libraries compared to Qiskit. Hardware availability constrained to Google's quantum processors. Classical simulation of large circuits is exponentially costly
How can I practice Cirq typing speed?
CodeSpeedTest offers 10+ real Cirq code examples for typing practice. You can measure your WPM, track accuracy, and improve your coding speed with guided exercises.