Qiskit中QuantumCircuit无cnot属性报错,求新版本替代方法
解决Qiskit中'QuantumCircuit'对象无'cnot'属性的错误
问题原因
Qiskit新版本已废弃并移除了QuantumCircuit.cnot()方法,直接调用会触发AttributeError: 'QuantumCircuit' object has no attribute 'cnot'。
替代方案
Qiskit中控制非门(CNOT)的标准调用方式是使用QuantumCircuit.cx()方法,参数顺序与原cnot()完全一致,即qc.cx(控制量子位索引, 目标量子位索引)。
修改后的代码
将原代码中的qc.cnot()替换为qc.cx()即可,修改后的完整代码如下:
from qiskit import QuantumCircuit from qiskit.circuit import Parameter def ans(n, depth): qc = QuantumCircuit(n) for j in range(depth): for i in range(n): param_name = f'theta_{j}_{i}' theta_param = Parameter(param_name) qc.rx(theta_param, i) qc.ry(theta_param, i) qc.rz(theta_param, i) for i in range(n): if i == n-1: qc.cx(i, 0) else: qc.cx(i, i+1) return qc
补充说明
复现旧教程代码时若遇到API差异,建议优先参考当前使用的Qiskit版本的官方文档确认接口变化。
内容的提问来源于stack exchange,提问作者Viswanath Hemanth
相关产品推荐
相关产品推荐

