玩Python这么久了,连Jupyter都不会,有点捞,今天补一补这方面的操作。。。。

Jupyter Notebooks

  Jupyter Notebooks 是一款开源的网络应用,我们可以将其用于创建和共享代码与文档。其提供了一个环境,你无需离开这个环境,就可以在其中编写你的代码、运行代码、查看输出、可视化数据并查看结果。因此,这是一款可执行端到端的数据科学工作流程的便捷工具,其中包括数据清理、统计建模、构建和训练机器学习模型、可视化数据等等。

安装

pip install ipython jupyter

上手上手

在终端输入jupyter notebook启动Jupyter notebooks,它会在默认浏览器中打开,地址是http://localhost:8888/tree。

VCCz7R.md.png

进程 && 线程

进程:进程是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅助数据,操作系统管理所有进程的执行,为它们合理的分配资源。进程可以通过fork或者wpawn的方式来创建新的进程执行其他任务,不过新的进程有自己独立的内存空间和数据栈,所以必须通过进程间的通信机制(IPC,Inter Process Communication)来实现数据共享,具体的方式包括管道、信号、套接字、共享内存等。

线程:进程的一个执行单元。线程在同一个进程中执行,共享程序的上下文。一个进程中的各个线程与主线程共享同一片数据空间,因而相比与独立的进程,线程间的信息共享和通信更为容易。线程一般是以并发的方式执行的。注意在单核CPU系统中,真正的并发是不可能的,所以新城的执行实际上是这样规划的:每个线程执行一小会,然后让步给其他线程的任务(再次排队等候更多的CPU执行时间)。在整个线程的执行过程中,每个线程执行它自己的特定的任务,在必要时和其他进程进行结果通信。

Python多进程(使用multiprocessing)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from time import time, sleep
from random import randint
from multiprocessing import Process

def my_task(name):
sleep_time = randint(1,10)
sleep(sleep_time)
print("你叫了一声%s,它鸟你用了%d秒" % (name, sleep_time))


def main():
start = time()
process_1 = Process(target=my_task, args=["yeshan", ])
process_2 = Process(target=my_task, args=["foel", ])
# 启动进程
process_1.start()
process_2.start()
# 等待进程执行结束
process_1.join()
process_2.join()
end = time()
print("一共花费了%f秒" % (end-start))


if __name__ == '__main__':
main()

HTTPie(发音为aitch-tee-tee-pie)是一个命令行HTTP客户端。其目标是使与Web服务的CLI交互尽可能人性化。它提供了一个简单的http命令,允许使用简单自然的语法发送任意HTTP请求,并显示彩色输出。HTTPie可用于测试,调试以及通常与HTTP服务器交互。

HTTPie官方文档

windows下安装

pip install --upgrade httpie

HTTPie的简单使用

一个完整的请求语句的大概样子

http [选项(flags)] [方法] URL [查询字符串/数据字段/首部字段]

HTTPie数据语法

类型 符号 示例
URL参数 == param==value
首部字段 : Name:value
数据字段 = field=value
原生JSON字段 := field:=json
表单上传字段 @ field@dir/file

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载文件
$ http --download www.jb51.net/my_file.zip

# 提交表单
$ http -f POST www.jb51.net name='Dan Nanni' comment='Hi there'

# HTTPie的默认数据类型为JSON格式的
$ http PUT example.org name=John email=john@example.org

# 使用代理
$ http --proxy=http:http://10.10.1.10:3128 --proxy=https:https://10.10.1.10:1080 example.org

# 定制请求头
$ http www.test.com User-Agent:Xmodulo/1.0 Referer:http://www.imike.me MyParam:Foo

放着先。。。。。。。。。占个位

最近在弄一个东西,基本的功能已经弄好了,现在想再扩展一起其他功能,但这样势必会改动原有代码,我又不想破坏原有的代码逻辑,方便以后查看。记得Git有个分支工作流可以很好的满足我的需求(๑•̀ㅂ•́)و✧。emmm,很久没发文了,record一下吧。(ノへ ̄、)

使用到的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git branch # 显示所有本地分支
$ git branch <new branch> # 创建新分支
$ git checkout <branch> # 切换到指定分支
$ git branch -d <branch> # 删除本地分支
$ git push --set-upstream origin <branch> # 将本地分支与远程分支关联
$ git push origin --delete <branch> # 删除远程分支

$ git tag -n # 列出所有本地标签以及相关信息
$ git tag <tagname> # 基于最新提交创建标签
& git tag <tagname> -m "备注信息" # 基于最新提交创建含备注信息的标签
$ git tag -d <tagname> # 删除标签
$ git push orign <tagname> # 将指定信息推送到远程仓库
$ git push --tags # 推送所有标签到远程仓库

操作~操作

https://img.vim-cn.com/00/950a7bad9cc5835194268fce6d40a444b7cfcc.png

emmm,顺便试试tag

https://img.vim-cn.com/a4/26dbcd8ed54643c057193aa14d15ade7ef2358.png

Git


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。