第一个 Notebook 实验¶
先进入 IDE或启动本地 Jupyter。新建一个 Python Notebook,命名为 bell-practice.ipynb。下面每段 Python 放在独立单元格中,按顺序用 Shift+Enter 执行。
检查正在使用的内核¶
import sys
from importlib.metadata import version
print(sys.executable)
for package in ("cascaqit", "cascaqit-jupyter", "bokeh"):
print(package, version(package))
这里读的是当前 Notebook 内核的版本。终端中的 python 可能指向另一个环境。平台镜像的 SDK 与本站 dev 文档可能不同;如果后续课程使用了当前内核没有的接口,请先请维护者确认配套版本,不要直接在平台环境里升级包。
运行 Bell 线路¶
from cascaqit import Circuit, build_counts_histogram
from cascaqit_jupyter import display_program, display_result, display_visualization
from IPython.display import display
circuit = Circuit(2, program_id="program.ide.bell")
circuit.h(0).cx(0, 1).measure_all(key="readout")
result = circuit.run(shots=128, seed=2026, return_probabilities=True)
display(display_program(circuit.to_program()))
display(display_result(result))
display(display_visualization(build_counts_histogram(result)))
print(result.counts)
print(result.probabilities)
assert sum(result.counts.values()) == 128
assert set(result.counts) <= {"00", "11"}
应看到 H 门、CX 门和末端测量,以及计数和概率。理想概率为 00、11 各 0.5;128 次采样不要求两者各出现 64 次。相同 seed 有助于在同一环境中复现,但不同 SDK 或依赖版本不保证返回同一组计数。
三个 display 都使用这一次运行的数据,不会重新执行实验。如果只显示文本,先检查扩展是否启用;Notebook 文件里存有输出并不意味着图形渲染扩展已加载。

Bell 模板的一次实际运行:00 为 56 次,11 为 72 次。先比较概率和总采样数,不要求复现截图中的计数。图中显示的是结果卡片的计数与概率部分。 查看原图
把结果保存成文件¶
import json
from datetime import datetime, timezone
from pathlib import Path
from cascaqit import visualize
run_dir = Path("experiments") / datetime.now(timezone.utc).strftime("bell-%Y%m%dT%H%M%S%fZ")
run_dir.mkdir(parents=True, exist_ok=False)
(run_dir / "result.json").write_text(
json.dumps(result.to_dict(), ensure_ascii=False, indent=2), encoding="utf-8"
)
(run_dir / "environment.json").write_text(
json.dumps({name: version(name) for name in ("cascaqit", "cascaqit-jupyter", "bokeh")}, indent=2),
encoding="utf-8",
)
visualize(result, program=circuit, output=run_dir / "report.html")
print(run_dir)
在文件侧栏找到打印出的目录,下载 report.html、result.json 和 environment.json。报告可在本机浏览器打开。最后保存 Notebook,保留源码及单元格输出。旧版 SDK 的报告语言取决于该版本;网站语言切换不会改变内核输出。
做一次练习:复制 Notebook,去掉 cx(0, 1),先预测结果再运行。原来检查 00/11 的断言也要按新实验修改;读取结果自己的位序元数据,再解释两位字符串。
下一步用 Digital 编辑器搭出相同线路,或学习有限次采样。