QASM 转换
用于在量子程序(QProg)和 OpenQASM 2.0 中间表示格式之间进行转换的 API 参考。
convert_qasm_string_to_qprog
解析 OpenQASM 2.0 指令集字符串并返回对应的量子程序。
签名
python
convert_qasm_string_to_qprog(
qasm_str: str,
) -> QProg参数
| 参数 | 类型 | 描述 |
|---|---|---|
| qasm_str | str | 要转换的 OpenQASM 2.0 指令集字符串。 |
返回值
转换后的 QProg 量子程序。
异常
| 异常类型 | 描述 |
|---|---|
RuntimeError | 如果 QASM 字符串包含语法错误或引用了未定义的量子门或量子比特。 |
示例
python
from pyqpanda3.intermediate_compiler import convert_qasm_string_to_qprog
qasm_str = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
"""
prog = convert_qasm_string_to_qprog(qasm_str)convert_qasm_file_to_qprog
读取 OpenQASM 2.0 文件并返回对应的量子程序。
签名
python
convert_qasm_file_to_qprog(
qasm_filepath: str,
) -> QProg参数
| 参数 | 类型 | 描述 |
|---|---|---|
| qasm_filepath | str | 包含 OpenQASM 2.0 指令集文本的文件路径。 |
返回值
转换后的 QProg 量子程序。
异常
| 异常类型 | 描述 |
|---|---|
RuntimeError | 如果文件无法读取或包含语法错误。 |
FileNotFoundError | 如果指定的文件路径不存在。 |
示例
python
import tempfile
from pyqpanda3.intermediate_compiler import convert_qasm_file_to_qprog
qasm = '''OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
'''
with tempfile.NamedTemporaryFile(mode='w', suffix='.qasm', delete=False) as f:
f.write(qasm)
path = f.name
prog = convert_qasm_file_to_qprog(path) # a missing or unreadable file raises RuntimeErrorconvert_qprog_to_qasm
将量子程序转换为 OpenQASM 2.0 字符串表示。
签名
python
convert_qprog_to_qasm(
prog: QProg,
precision: int = 8,
) -> str参数
| 参数 | 类型 | 描述 |
|---|---|---|
| prog | QProg | 要转换的量子程序。 |
| precision | int | 浮点门参数的小数位数。必须是非负整数。默认为 8。 |
返回值
表示量子程序的 OpenQASM 2.0 指令集字符串。
示例
python
from pyqpanda3.intermediate_compiler import convert_qprog_to_qasm
from pyqpanda3.core import QProg, H, CNOT
prog = QProg() << H(0) << CNOT(0, 1)
qasm_str = convert_qprog_to_qasm(prog, precision=6)
print(qasm_str)运行结果:
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[0];
h q[0];
cx q[0],q[1];另见
- OriginIR 转换 -- 与 OriginIR 格式的相互转换