为何出现Qiskit错误代码:'qr'未定义?
解决Qiskit中'qr'未定义的问题
这个错误确实是Qiskit版本迭代导致的——旧版(0.x系列)会默认预定义qr这类变量,但1.x及以上的新版本已经取消了这种默认设置,必须手动创建量子寄存器。
给你几个具体的解决步骤:
先确认你的Qiskit版本
运行以下代码查看版本:import qiskit print(qiskit.__version__)如果输出是1.x或更高,就按下面的方法处理。
手动创建量子寄存器
有两种常用方式:- 单独创建量子寄存器:
from qiskit import QuantumRegister # 创建一个包含2个量子比特的寄存器,变量名设为qr qr = QuantumRegister(2) # 搭配经典寄存器使用的话 from qiskit import ClassicalRegister cr = ClassicalRegister(2) # 构建电路 from qiskit import QuantumCircuit qc = QuantumCircuit(qr, cr) - 更简洁的写法(新版本推荐):
直接用QuantumCircuit创建,它会自动生成量子/经典寄存器,不需要单独定义qr:from qiskit import QuantumCircuit # 创建含2个量子比特、2个经典比特的电路 qc = QuantumCircuit(2, 2) # 后续需要引用量子比特时,直接用索引,比如qc.h(0)
- 单独创建量子寄存器:
适配旧教程代码
如果教程里的代码直接用qr,把所有qr替换成你自己定义的寄存器变量,或者改成上面的简洁写法。比如旧教程里的qc.h(qr[0]),改成qc.h(0)就能正常运行。注意导入方式
不要只写import qiskit,这样很多模块需要用qiskit.xxx调用,不如按需导入更方便,比如:from qiskit import QuantumCircuit, Aer, execute
内容的提问来源于stack exchange,提问作者Sasha Chugunov
相关产品推荐
相关产品推荐

