欢迎光临散文网 会员登陆 & 注册

Qiskit汉化01|先决条件

2023-03-10 13:05 作者:DoraHacks  | 我要投稿

🔸学习量子计算、密码学、Space等Web3前沿技术

🔸认领Bounty,赚取赏金

🔸参与Hackathon,获得资助

更多Web3精彩技术分享尽在Dōjō👇

WeChat: @HackerDojo0


Setting Up Your Environment

这是一个全面的指南,用于在您的个人计算机上设置使用Qiskit Textbook的环境。这将帮助您重现您在教科书网站上看到的结果。Qiskit Textbook是在Jupyter notebooks中编写的。Notebooks和教科书网站(https://qiskit.org/textbook/preface.html)是仅有的两个完全支持Qiskit Textbook的媒体。

安装qiskit_textbook包

Qiskit Textbook提供了一些特定于教科书的工具和组件。这不是Qiskit的一部分,可以通过qiskit_textbook包获得。通过Pip和Git安装此包的最快方法是使用以下命令:

或者,您可以从Github下载qiskit-textbook-src(https://github.com/qiskit-community/qiskit-textbook)文件夹并在包含此文件夹的目录下执行指令:

准确重现qiskit教科书中预先呈现的输出的步骤(可选)

1. 设置默认使用Matplotlib绘图

QuantumCircuit.draw()qiskit.visualization.circuit_drawer()的默认后端是文本后端。然而,根据您的本地环境,您可能希望更改这些默认值,以更适合您的用例。这是通过用户配置文件完成的。默认情况下,用户的配置文件应该是位于~/.qiskit/下的settings.conf文件。
Qiskit Textbook默认使用Matplotlib库绘制电路。要重现Qiskit Textbook中给出的可视化效果,请创建一个名为settings.conf文件(通常在~/.qiskit/中找到),内容如下:

2. 设置默认图像格式为SVG

根据需要,您可以将下面这行代码行添加到ipython_kernel_config.py文件(通常在~/.ipython/profile_default/中找到),以将默认图像格式从PNG设置为扩展性更好的SVG格式:

3. 同步教科书中使用的Qiskit版本

您将在大多数教程的末尾找到一个代码片段,其中包含本教程中使用的qiskit包的版本信息。如果您发现语法和/或输出与教程不一致,请尝试使用相同的版本。

想要检查您当前计算机中安装的版本,请在Python shell或Jupyter Notebook中运行以下命令:


Python and Jupyter Notebooks

Python是一种不需要编译的编程语言。您可以逐行运行它(这就是我们在notebook中使用它的方式)。因此,如果您是编程新手,Python是一个很好的开始。当前版本是Python 3,也就是我们在这里要使用的版本。

用Python编写代码的一种方法是使用Jupyter notebook。这可能是将编程、文本和图像结合起来的最佳方式。在notebook里,所有内容都在单元格中。文本单元格和代码单元格是最常见的。如果您正在使用Jupyter notebook阅读本节内容,则您目前阅读的文本正位于文本单元格中。您可以在下面找到一个代码单元格。

要运行代码单元格的内容,可以单击它并按Shift + Enter。如果左边有一个小箭头,您点击它也可以运行。

如果您正在使用Jupyter notebook阅读本节内容,请在阅读过程中执行每个代码单元格。

上面我们创建了两个变量,我们称之为ab,并给它们赋值。然后我们把它们相加。在Python中,像这样简单的算术运算非常简单。

Python中的变量有很多种形式。下面是一些例子。

除了数字,我们可以使用的另一种数据结构是列表。

Python中的列表可以包含任意类型的变量。

在Python中,列表索引从0开始(与Fortran等语言不同)。因此,以下是您如何访问上述列表开头的42。

类似的数据结构是元组(tuple)。

列表和元组的一个主要区别是列表元素可以更改,

而元组元素不能更改。

此外,我们可以在列表的末尾添加一个元素,这是元组不能做的。

另一个有用的数据结构是字典。它存储了一组值,每个值都由唯一的键标记。

值可以是任何数据类型。键可以是任何足够简单的值(整数、浮点数、布尔值、字符串)。它不能是列表,但可以是元组。

通过键可以访问值。

只要为新键提供新值,就可以添加新的键/值对。

想要遍历一定范围内的数字,语法如下:

注意,range(n)函数(默认)从0开始,至n-1结束。

您也可以循环任何“可迭代”对象,例如列表

或字典。

 条件语句由ifelifelse组成,语法如下。

导入包可以使用如下一行代码完成。

numpy包对于处理数学问题很重要

我们必须在每个numpy命令前面加上numpy.,以便它知道如何找到numpy中定义的命令。为了节省书写,通常使用如下方式:

接下来您只需要使用缩写的名字。大多数人使用np,但您可以选择您喜欢的。

您也可以直接从numpy中获取所有内容

然后,您可以直接使用这些命令。但这可能会导致包之间相互干扰,所以要谨慎使用。

如果您想做三角函数、线性代数等,您可以使用numpy。绘图使用matplotlib。对于图论,请使用networkx。对于量子计算,请使用qiskit。无论您想要什么,大概都会有一个包来帮助您。

在任何语言中,都需要了解如何创建函数。

下面是一个函数,它的名字被选为do_some_maths,它的输入名为Input1Input2,输出名为the_answer

它的用法如下:

如果您给某个函数一个对象,这个函数调用这个对象的方法来改变它的状态,那么这个效果会持续存在。如果这就是您要做的,您不需要返回任何内容。例如,让我们使用列表的append方法来实现它。

随机性可以使用random包生成。

这些是基础知识。现在您所需要的只是一个搜索引擎,以及知道谁值得在Stack Exchange上收听的直觉。接下来您就可以用Python做任何事情了。您的代码可能不是最“Python化”的,但只有Python爱好者真正关心这一点。

关于Hacker Dōjō 

由Hacker共建的加密、Web3前沿技术开源知识社区。Dōjō 会以直播/音频/文字等形式定期组织分享session, 分享主题主要覆盖L1和L2的共识算法,架构,GitHub repo相关内容,包括不限于以下话题:Scroll / Polygon zkEVM、 Eigen的混合证明系统、Starkware、azTec、 Optimism、Zecrey、Aptos、 Move、密码学(零知识证明、公钥加密、哈希函数、格密码) 、 分布式系统、 以太坊协议栈、 量子计算和量子信息、卫星通信系统和航天器系统设计等。

✨Bounty详情及认领进度详情:https://innovative-laser af4.notion.site/174922df15884848b6ac8b57cb4f2fae?v=612e13dc6b9d44dd8197f755abb9fe9c

✨加入 Dōjō 中文社区微信联系:@HackerDojo0


关于THUBADAO

由清华大学区块链协会(THUBA)成员发起,THUBA DAO致力于将Web3世界带给每一个学生,成为连接海内外区块链社区的桥梁,并培养最优秀的下一代Web青年与先锋者。


有关DoraHacks

DoraHacks 是一个全球范围内的极客运动,全球黑客马拉松组织者,也是全球最活跃的多链 Web3 开发者平台之一。DoraHacks.io平台使得世界各地的Hacker和开源开发者可以参与黑客马拉松、Bounty、Grant、Grant DAO,以及公共物品质押等加密原生协议和基础设施进行协作并获得资助。到目前为止,DoraHacks 社区的 4000 多个项目已经获得了来自全球行业支持者超过 3000 万美元的资助。大量开源社区、DAO 和 超过50个主要区块链生态系统正在积极使用 Dora 的基础设(DoraHacks.io)进行开源融资和社区治理。

官网:https://dorahacks.io/









Qiskit汉化01|先决条件的评论 (共 条)

分享到微博请遵守国家法律