PS:为了理解 Jupyter Notebook 所以展开来查了很多资料,也不知道自己的理解到底对不对
https://blog.windrunner.me/python/jupyter.html
http://smilejay.com/2012/10/interactive-shell-login-shell/
https://blog.csdn.net/wkw1125/article/details/53932945
IPython 和 python shell 的区别
IPython(Interactive Python shell),是 python 的交互式 shell,比 Python shell 功能更强大
1. 交互式 Interactive 是什么意思?
交互式 Interactive Shell
在终端上执行,shell等待输入,并且立即执行提交的命令,退出后,shell也终止
非交互式 Non Interactive Shell
读取存放在文件中的命令,从可以第一条命令执行到最后一条然后退出,不与你进行任何交互
2. shell 是什么?
shell: 命令解释器,处于内核和用户之间,把用户的指令传递给内核并且把执行结果回显给用户
命令解释器 shell ,解释执行脚本程序 shell script
(1)windows:
- explorer.exe(资源管理器):是windows的图形shell
- cmd(Command shell):是windows的命令行shell
- windows Power Shell:相比CMD功能更强大
(2)linux/unix:
Shell有多种实现,多数Linux发行版本默认是bash
3. 脚本语言是什么?
- 编程语言:编写-编译-链接-运行
- 脚本语言:解释-执行
脚本语言需要通过对应的解释器解释执行。如Perl、Python、Ruby、JavaScript等都是脚本语言,每种脚本语言都需要其对应的解释器。shell script 也属于一种比较特殊的脚本语言。
Jupyter Notebook
1. Jupyter Notebook 是什么?
Jupyter Notebook 是一个 交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。
PS:个人理解 Jupyter Notebook 可以看成 txt 文件,就是笔记本,方便记录
2. Jupyter Notebook 哪里方便?
(1)不用 Jupyter Notebook 之前,说明和代码是分开的
在IDE(集成开发环境)如Pycharm中写代码,然后在word中写文档说明项目。通常是写完代码,再写文档,有的时候需要重头回顾一遍代码。
(2)不用 Jupyter Notebook 之前,结果可视化不方便
为了得到数据分析的中间结果,需要重新跑代码,然后把结果截图放到文档里。
3. ipynb是什么?
jupyter保存的文件的扩展名是 .ipynb,实际上这是一个json文件
4. 什么是JSON?
(1)JSON是一种数据结构,方便数据的传输
(2)JSON 作为数据的交换格式,在客户端和服务器端完成数据交换的原理
- 如果是客户端请求数据,那么服务器端就将Java对象先转换成 JSON字符串
- 经响应把字符串传到客户端之后,客户端就会接收到这个转换结果
- 但 JavaScript 要求把这个字符串变成对象格式才更方便访问
- 所以在客户端的JavaScript代码中又需要将这个JSON字符串变成JavaScript能够识别的对象
5. 从 JSON 理解 Jupyter Notebook
下面是我个人的想法,从 JSON 理解 Jupyter Notebook
就是本地服务的网页界面的实现,你的. ipynb文件放在你的本地服务器就是你的电脑上,而浏览器就是客户端要显示该文件的内容,这就需要两方通信进行数据传输
PS:之前写的 XML、YML 、JSON
https://sophia0130.github.io/2018/05/14/XML%E3%80%81YAML%E3%80%81JSON/