The most beginner-friendly quantum computing library. Write quantum programs in plain English.
Project description
Qcuit - The Most Beginner-Friendly Quantum Computing Library
Write quantum programs in plain English. Built on Qiskit. 100% open source.
Installation
pip install qcuit
Requires Python 3.10+ and Qiskit (automatically installed).
Quick Start: Create a Bell State
from qcuit import Qubit, Circuit, Apply, Hadamard, CNOT
from qcuit.backend import run_simulation
# Create two qubits
a = Qubit("a")
b = Qubit("b")
# Build the circuit
circ = Circuit(a, b)
circ.add(Apply(Hadamard, target=a))
circ.add(Apply(CNOT, target=b, control=a))
# Measure and visualize
circ.measure_all()
circ.draw()
# Run simulation
results = run_simulation(circ)
print(results) # e.g. {"00": 507, "11": 517}
What's happening?
- Hadamard puts qubit "a" into superposition
- CNOT entangles "a" and "b" - they become correlated
- Measurement shows perfect correlation: either both 00 or both 11
API Reference
Core Classes
Qubit(name)
Creates a named quantum bit.
- Parameters:
name(str) - Human-readable label - Example:
alice = Qubit("alice")
Circuit(*qubits)
Container for quantum operations.
- Parameters: One or more Qubit objects
- Methods:
add(operation)- Add gate operationmeasure_all()- Flag all qubits for measurementdraw()- Print ASCII circuit diagram
Apply(gate, target, control=None)
Wraps a gate with target/control qubits.
- Parameters:
gate- Gate class (Hadamard, PauliX, CNOT)target- Target Qubitcontrol- Control Qubit (required for CNOT)
Supported Gates
| Gate | Symbol | Description | Example |
|---|---|---|---|
| Hadamard | [H] | Creates superposition | Apply(Hadamard, target=q) |
| PauliX | [X] | Quantum NOT gate | Apply(PauliX, target=q) |
| CNOT | [*]/[+] | Controlled-NOT (entanglement) | Apply(CNOT, target=b, control=a) |
Backend Functions
run_simulation(circuit, shots=1024)
Execute circuit on Qiskit AerSimulator.
- Parameters:
circuit- Complete Circuit object with measurementsshots- Number of simulation runs (default: 1024)
- Returns: Dict mapping bitstrings to counts
Error Handling
Qcuit provides friendly error messages for common mistakes:
# Missing control qubit
Apply(CNOT, target=q) # QcuitError: Try: Apply(CNOT, target=q_b, control=q_a)
# Empty qubit name
Qubit("") # QcuitError: Try: Qubit("my_qubit")
# Forgot measurement
run_simulation(circ) # QcuitError: Try: circ.measure_all()
Examples
Single Qubit Superposition
from qcuit import Qubit, Circuit, Apply, Hadamard
from qcuit.backend import run_simulation
q = Qubit("super")
circ = Circuit(q)
circ.add(Apply(Hadamard, target=q))
circ.measure_all()
circ.draw()
results = run_simulation(circ, shots=1000)
print(results) # Approximately {"0": 500, "1": 500}
Quantum NOT Gate
from qcuit import Qubit, Circuit, Apply, PauliX
from qcuit.backend import run_simulation
q = Qubit("flip")
circ = Circuit(q)
circ.add(Apply(PauliX, target=q))
circ.measure_all()
circ.draw()
results = run_simulation(circ)
print(results) # {"1": 1024}
Contributing
Qcuit is 100% open source! We welcome contributions:
- Report bugs on GitHub Issues
- Submit pull requests for new gates
- Improve documentation
- Add examples
License
MIT License - feel free to use qcuit in your projects!
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qcuit-0.1.0.tar.gz.
File metadata
- Download URL: qcuit-0.1.0.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2f1f4e4c41f3ea7dc81f62d8a8a05c080580c60fcd9cb803ebbf64f216173ad
|
|
| MD5 |
af295cb1e1b9e44db14ad623fa3c39d3
|
|
| BLAKE2b-256 |
8a2b8a27aeeb18fc4ce2fa26d1062b7c800c447c3e17cc838a33ca4dc9a4f885
|
File details
Details for the file qcuit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qcuit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
386988ca50cc067021dfe521e6d8d7a5c109428bce66c91532a6092db10fa20d
|
|
| MD5 |
96964831adc451a249261fc41738632f
|
|
| BLAKE2b-256 |
407514c070e8aa351beb901e6c49902e7fadccfcc85c2928d90dd61ef235334f
|