公式插入方式

  1. 行内公式可用\(...\)$...$
  • 例如$ f(x)=x^2 $,显示为$ f(x)=x^2 $
  1. 独立公式(单独另起一行,公式会居中),使用$$...$$\[...\]
  • 例如:$$ \limit{f(x)dx} $$
1
2
3
4
5
6
1. 行内公式可用`\(...\)``$...$`
- 例如`$ f(x)=x^2 $`,显示为$ f(x)=x^2 $

2. 独立公式(单独另起一行,公式会居中),使用`$$...$$``\[...\]`
- 例如:`$$ \limit{f(x)dx} $$`
$$ \int_a^b{f(x)dx} $$

MATLAB基本操作

1. 对象定义
使用sym定义单个对象、使用syms定义多个对象

2. 使用limit求极限

1
limit(f,v,a) % 使用limit(f,v,a,'left')可求左极限

3. 导数
使用diff(f,v,n)对$ f(v)=v^{t-1} $求 $ n $ 阶导 $ \frac{d^nf}{d^nv} $,n缺省时,默认为1,diff(f)默认求一阶导数。

4. 定积分和不定积分
使用int(f,v)求f对变量v的不定积分,使用int(f,v,a,b)求f对变量v的定积分,a、b为积分上下标。$ \int{f(v)dv} $、$ \int^{a}_{b}{f(v)dv} $。

  • 对象:一个自包含的实体,用一组可识别的特性和行为来标识
  • 类:具有相同的属性和功能的对象的抽象的集合
  • 实例:一个真实的对象,实例化就是创建对象的过程
  • 多态:可对不同类型的对象执行相同的操作,而这些操作就像“被施了魔法”一样能够正常运行
  • 封装:对外部隐藏有关对象工作原理的细节
  • 继承:可基于通用类创建专用类

多态

  • 多态可以让我们在不知道变量指向哪种对象时,也能够对其执行操作,且操作的行为将随对象所属的类型(类)而异。每当不知道对象是什么样就能对其执行操作,都是多态在起作用
  • 多态以 继承 和 重写 父类方法 为前提
  • 多态是调用方法的技巧,不会影响到类的内部设计
  • 多态性即向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)
  • 听说Python天然就多态
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
class Person(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex

def print_title(self):
if self.sex == "male":
print("man")
elif self.sex == "female":
print("woman")

class Child(Person): # Child 继承 Person
def print_title(self):
if self.sex == "male":
print("boy")
elif self.sex == "female":
print("girl")

May = Child("May","female")
Peter = Person("Peter","male")

print(May.name,May.sex,Peter.name,Peter.sex)
# 同一消息
May.print_title()
Peter.print_title()

玩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

emmm,闲来无事,打算了解下神奇vim(用来zhuangbi)。在终端操作很帅(ˉ▽ ̄~)~~!
什么是vim??Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

vi/vim的使用

vi/vim有三种模式:

  • 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。刚启动时就是这个模式。
  • 输入模式:正常的文本录入。
  • 末行模式:保存或退出文档,以及设置编辑环境。又可成为底线命令模式。