TypeScript 笔记

安装

1
npm install -g typescript

HelloWorld

新建test.ts文件,添加如下内容:

1
2
3
const hello : string = "Hello, TypeScript!"
console.log(hello)

typescript不能直接被浏览器识别,需要使用tsc命令编译生成js文件后才能运行:

1
2
tsc ./test.ts
node test.js

  • TypeScript区分大小写
  • TypeScript中,分号是可选的,使用或者不使用都可以,以下代码都是正确的:
1
2
console.log('Hello')
console.log('TypeScript');
  • TypeScript支持面向对象
1
2
3
4
5
6
7
class Site {
name():void {
console.log("GeekHall")
}
}
var obj = new Site();
obj.name();

function

1
2
3
4
5
6
7
8
9
(()=>{
function sayHi(str:string) {
return 'Hello, ' + str
}

let text = 'TypeScript'
console.log(sayHi(text))
})()

几种Vue创建项目方式的比较

使用CDN

适用于快速原型测试或学习。

1
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

使用Vue的命令行工具(CLI)

安装Vue@cli

1
2
3
4
5
# vue2
npm install -g vue-cli

# vue3
npm install -g @vue/cli

使用CLI创建项目

Vue2.x

1
2
3
vue init <template-name> <project-name>
npm i
npm run dev

Vue3.x

  • 安装新增TypeScript配置选项
  • 新增图形化安装方法
  • 保留了2.x之前的安装方法
1
2
3
4
5
6
7
8
9
vue create 项目名称
npm i
npm run serve
# 使用vue ui创建新项目(3.x新增)
vue ui
# 使用旧版(2.X)创建
npm install -g @vue/cli-init
# 'vue init'的运行效果与‘vue-cli@2.x’相同
vue init webpack projectname

使用Vue ui

运行命令:

1
vue ui

然后就可以在浏览器中使用ui界面来创建和管理vue项目了

使用Vite

推荐使用yarn

1
2
3
4
5
6
7
8
9
10
11
# npm 6.x
npm create vite@latest my-vue-app --template vue

# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue

# yarn
yarn create vite my-vue-app --template vue

# pnpm
pnpm create vite my-vue-app -- --template vue

重置JetBrains试用期时间

重置试用期的教程网上很多,这里不再重复,本教程是为了解决长时间未登录IDE的情况下,
超过试用期无法登录IDE的问题,前提是需要JetBrains全家桶中至少有一款可以登录。

1
2
3
4
cd /Users/username/Library/Application Support/JetBrains;
cp IntelliJIdea2021.2/eval/idea212.evaluation.key GoLand2021.2/eval/GoLand212.evaluation.key
cp IntelliJIdea2021.2/eval/idea212.evaluation.key PhpStorm2021.2/eval/PhpStorm212.evaluation.key
cp IntelliJIdea2021.2/eval/idea212.evaluation.key PyCharm2021.2/eval/PyCharm212.evaluation.key

使用Python获取股票数据

安装anaconda

到Anaconda官网下载后直接安装即可。

使用conda管理虚拟环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建虚拟环境
conda create --name budd python=3.8

# 激活虚拟环境
conda activate budd

# 退出虚拟环境
conda deactivate

# 列出虚拟环境
conda info --envs

# 删除虚拟环境
conda remove -n venv --all

安装tushare

1
pip install tushare

注册用户并获取token:在用户=>个人主页=>接口token中获取自己用户的token,注意安全起见这个token不要发给任何其他人或公开使用。
这里我将自己的token配置到环境变量中,方便代码开源
编辑 .bash_profile文件,添加如下内容:

1
export TUSHARE_TOKEN="Your token"

然后就可以在代码中通过下面的方式读取环境变量的方式获取token并使用了。

1
os.getenv('TUSHARE_TOKEN')

获取A股股票列表并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
ts.set_token(token)

pro = ts.pro_api()

# 查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L',
fields='ts_code,symbol,name,area,industry,list_date')

# print(data)
with ExcelWriter("All_Stock_A.xlsx") as writer:
data.to_excel(writer)

获取股票基本信息并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
pro = ts.pro_api(token)

excel_header = ['股票代码', '法人代表', '总经理', '董秘',
'注册资本', '注册日期', '省份', '城市', '公司介绍', '公司主页', '主营业务及产品', '员工人数', '经营范围']

datasz = pro.stock_company(
exchange='SZSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')
datash = pro.stock_company(
exchange='SSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')

# print(data)
with ExcelWriter("Stock_Basic_Info.xlsx") as writer:
datash.to_excel(writer, sheet_name='上交所', header=excel_header, index=False)
datasz.to_excel(writer, sheet_name='深交所', header=excel_header, index=False)

更多其他操作请擦考官方API文档:https://tushare.pro/document/2

Docker笔记

安装:

1
brew install docker

常用命令

使用

  1. Clone the repository:

从Github或DockerHub下载Docker仓库,
仓库中包含了你需要的构建和运行一个容器的所有内容。

1
2
3
docker run --name repo alpine/git clone https://github.com/docker/getting-started.git

docker cp repo:/git/getting-started/ .
  1. Build the image

一个Docker image 是一个给你的容器使用的私有文件系统,它包含了所有你的容器所需要的文件和代码。

1
2
cd getting-started
docker build -t docker101tutorial .
  1. Run

Start a container based on the image you built in the privious step.
启动在上一步编译的容器映像

1
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
  1. Share

可以再DockerHub保存和分享你的image,以便让其他人可以在任何机器上下载和运行你的image。

1
2
3
docker tag docker101tutorial {userName}/docker101tutorial
docker push {userName}/docker101tutorial

算法笔记-Dijsktra

Dijkstra

Dijkstra 算法

  1. 每次从未标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中。
  2. 计算刚加入节点A的邻近节点B的距离(不包含标记的节点)
    若(节点A的距离+节点A到节点B的边长)< 节点B的距离,就更新节点B的距离和前面点。

适用于从一个顶点出发求其余各个顶点最短路径。且各边权重不能有负数

若存在负数则需要使用Bellman-Ford算法

若想求任意两点之间的最短路径,就需要使用Floyd算法

Obsidian教程

安装Obsidian + Obsidian-to-Anki

Obsidian => 设置 => 第三方插件 ,搜索Anki,安装Obsidian_to_Anki

设置:Note Type Table

粘贴这一行正则表达式(NeuraCache的卡片语法样式)

1
((?:[^\n][\n]?)+) #flashcard ?\n*((?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))+)

使用Obsidian和Anki

Anki中下载AnkiConnect插件并添加app:obsidian.md,默认只有localhost

image-20211002090521417

写Anki卡片

  • 笔记开头声明卡组

    1
    TARGET DECK English
  • 空一行下面就可以写卡片了

  • 卡片语法

    1
    2
    3
    4
    5
    6
    7
    8
    卡片正面内容 #flashcard
    卡片背面内容

    卡片正面内容 #flashcard
    卡片背面内容

    卡片正面内容 #flashcard
    卡片背面内容
  • 点击左侧Scan Anki按钮即可同步至Anki

Markdown 特殊符号及数学公式整理

声调

语法 效果 语法 效果 语法 效果
\bar{x} $\bar{x}$ \acute{\eta} $\acute{\eta}$ \check{\alpha} $\check{\alpha}$
\grave{\eta} $\grave{\eta}$ \breve{a} $\breve{a}$ \ddot{y} $\ddot{y}$
\dot{x} $\dot{x}$ \hat{\alpha} $\hat{\alpha}$ \tilde{\iota} $\tilde{\iota}$

行内与独行

  1. 行内公式:将公式插入到本行内,符号:$公式内容$,如:$xyz$
  2. 独行公式:将公式插入到新的一行内,并且居中,符号:$$公式内容$$,如:$$xyz$$

上标、下标与组合

  1. 上标符号,符号:^,如:$x^4$
  2. 下标符号,符号:_,如:$x_1$
  3. 组合符号,符号:{},如:${16}{8}O{2+}{2}$

汉字、字体与格式

  1. 汉字形式,符号:\mbox{},如:$V_{\mbox{初始}}$
  2. 字体控制,符号:\displaystyle,如:$\displaystyle \frac{x+y}{y+z}$
  3. 下划线符号,符号:\underline,如:$\underline{x+y}$
  4. 标签,符号\tag{数字},如:$\tag{11}$
  5. 上大括号,符号:\overbrace{算式},如:$\overbrace{a+b+c+d}^{2.0}$
  6. 下大括号,符号:\underbrace{算式},如:$a+\underbrace{b+c}_{1.0}+d$
  7. 上位符号,符号:\stacrel{上位符号}{基位符号},如:$\vec{x}\stackrel{\mathrm{def}}{=}{x_1,\dots,x_n}$

占位符

  1. 两个quad空格,符号:\qquad,如:$x \qquad y$
  2. quad空格,符号:\quad,如:$x \quad y$
  3. 大空格,符号\,如:$x \ y$
  4. 中空格,符号\:,如:$x : y$
  5. 小空格,符号\,,如:$x , y$
  6. 没有空格,符号``,如:$xy$
  7. 紧贴,符号\!,如:$x ! y$

定界符与组合

  1. 括号,符号:()\big(\big) \Big(\Big) \bigg(\bigg) \Bigg(\Bigg),如:$()\big(\big) \Big(\Big) \bigg(\bigg) \Bigg(\Bigg)$
  2. 中括号,符号:[],如:$[x+y]$
  3. 大括号,符号:\{ \},如:${x+y}$
  4. 自适应括号,符号:\left \right,如:$\left(x\right)$,$\left(x{yz}\right)$
  5. 组合公式,符号:{上位公式 \choose 下位公式},如:${n+1 \choose k}={n \choose k}+{n \choose k-1}$
  6. 组合公式,符号:{上位公式 \atop 下位公式},如:$\sum_{k_0,k_1,\ldots>0 \atop k_0+k_1+\cdots=n}A_{k_0}A_{k_1}\cdots$

四则运算

  1. 加法运算,符号:+,如:$x+y=z$
  2. 减法运算,符号:-,如:$x-y=z$
  3. 加减运算,符号:\pm,如:$x \pm y=z$
  4. 减甲运算,符号:\mp,如:$x \mp y=z$
  5. 乘法运算,符号:\times,如:$x \times y=z$
  6. 点乘运算,符号:\cdot,如:$x \cdot y=z$
  7. 星乘运算,符号:\ast,如:$x \ast y=z$
  8. 除法运算,符号:\div,如:$x \div y=z$
  9. 斜法运算,符号:/,如:$x/y=z$
  10. 分式表示,符号:\frac{分子}{分母},如:$\frac{x+y}{y+z}$
  11. 分式表示,符号:{分子} \over {分母},如:${x+y} \over {y+z}$
  12. 绝对值表示,符号:||,如:$|x+y|$

高级运算

  1. 平均数运算,符号:\overline{算式},如:$\overline{xyz}$
  2. 开二次方运算,符号:\sqrt,如:$\sqrt x$
  3. 开方运算,符号:\sqrt[开方数]{被开方数},如:$\sqrt[3]{x+y}$
  4. 对数运算,符号:\log,如:$\log(x)$
  5. 极限运算,符号:\lim,如:$\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
  6. 极限运算,符号:\displaystyle \lim,如:$\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
  7. 求和运算,符号:\sum,如:$\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
  8. 求和运算,符号:\displaystyle \sum,如:$\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
  9. 积分运算,符号:\int,如:$\int^{\infty}_{0}{xdx}$
  10. 积分运算,符号:\displaystyle \int,如:$\displaystyle \int^{\infty}_{0}{xdx}$
  11. 微分运算,符号:\partial,如:$\frac{\partial x}{\partial y}$
  12. 矩阵表示,符号:\begin{matrix} \end{matrix},如:$\left[ \begin{matrix} 1 &2 &\cdots &4\5 &6 &\cdots &8\vdots &\vdots &\ddots &\vdots\13 &14 &\cdots &16\end{matrix} \right]$

逻辑运算

  1. 等于运算,符号:=,如:$x+y=z$
  2. 大于运算,符号:>,如:$x+y>z$
  3. 小于运算,符号:<,如:$x+y<z$
  4. 大于等于运算,符号:\geq,如:$x+y \geq z$
  5. 小于等于运算,符号:\leq,如:$x+y \leq z$
  6. 不等于运算,符号:\neq,如:$x+y \neq z$
  7. 不大于等于运算,符号:\ngeq,如:$x+y \ngeq z$
  8. 不大于等于运算,符号:\not\geq,如:$x+y \not\geq z$
  9. 不小于等于运算,符号:\nleq,如:$x+y \nleq z$
  10. 不小于等于运算,符号:\not\leq,如:$x+y \not\leq z$
  11. 约等于运算,符号:\approx,如:$x+y \approx z$
  12. 恒定等于运算,符号:\equiv,如:$x+y \equiv z$

集合运算

  1. 属于运算,符号:\in,如:$x \in y$
  2. 不属于运算,符号:\notin,如:$x \notin y$
  3. 不属于运算,符号:\not\in,如:$x \not\in y$
  4. 子集运算,符号:\subset,如:$x \subset y$
  5. 子集运算,符号:\supset,如:$x \supset y$
  6. 真子集运算,符号:\subseteq,如:$x \subseteq y$
  7. 非真子集运算,符号:\subsetneq,如:$x \subsetneq y$
  8. 真子集运算,符号:\supseteq,如:$x \supseteq y$
  9. 非真子集运算,符号:\supsetneq,如:$x \supsetneq y$
  10. 非子集运算,符号:\not\subset,如:$x \not\subset y$
  11. 非子集运算,符号:\not\supset,如:$x \not\supset y$
  12. 并集运算,符号:\cup,如:$x \cup y$
  13. 交集运算,符号:\cap,如:$x \cap y$
  14. 差集运算,符号:\setminus,如:$x \setminus y$
  15. 同或运算,符号:\bigodot,如:$x \bigodot y$
  16. 同与运算,符号:\bigotimes,如:$x \bigotimes y$
  17. 实数集合,符号:\mathbb{R},如:\mathbb{R}
  18. 自然数集合,符号:\mathbb{Z},如:\mathbb{Z}
  19. 空集,符号:\emptyset,如:$\emptyset$

数学符号

  1. 无穷,符号:\infty,如:$\infty$
  2. 虚数,符号:\imath,如:$\imath$
  3. 虚数,符号:\jmath,如:$\jmath$
  4. 数学符号,符号\hat{a},如:$\hat{a}$
  5. 数学符号,符号\check{a},如:$\check{a}$
  6. 数学符号,符号\breve{a},如:$\breve{a}$
  7. 数学符号,符号\tilde{a},如:$\tilde{a}$
  8. 数学符号,符号\bar{a},如:$\bar{a}$
  9. 矢量符号,符号\vec{a},如:$\vec{a}$
  10. 数学符号,符号\acute{a},如:$\acute{a}$
  11. 数学符号,符号\grave{a},如:$\grave{a}$
  12. 数学符号,符号\mathring{a},如:$\mathring{a}$
  13. 一阶导数符号,符号\dot{a},如:$\dot{a}$
  14. 二阶导数符号,符号\ddot{a},如:$\ddot{a}$
  15. 上箭头,符号:\uparrow,如:$\uparrow$
  16. 上箭头,符号:\Uparrow,如:$\Uparrow$
  17. 下箭头,符号:\downarrow,如:$\downarrow$
  18. 下箭头,符号:\Downarrow,如:$\Downarrow$
  19. 左箭头,符号:\leftarrow,如:$\leftarrow$
  20. 左箭头,符号:\Leftarrow,如:$\Leftarrow$
  21. 右箭头,符号:\rightarrow,如:$\rightarrow$
  22. 右箭头,符号:\Rightarrow,如:$\Rightarrow$
  23. 底端对齐的省略号,符号:\ldots,如:$1,2,\ldots,n$
  24. 中线对齐的省略号,符号:\cdots,如:$x_1^2 + x_2^2 + \cdots + x_n^2$
  25. 竖直对齐的省略号,符号:\vdots,如:$\vdots$
  26. 斜对齐的省略号,符号:\ddots,如:$\ddots$

希腊字母

字母 实现 字母 实现
A A α \alhpa
B B β \beta
Γ \Gamma γ \gamma
Δ \Delta δ \delta
E E ϵ \epsilon
Z Z ζ \zeta
H H η \eta
Θ \Theta θ \theta
I I ι \iota
K K κ \kappa
Λ \Lambda λ \lambda
M M μ \mu
N N ν \nu
Ξ \Xi ξ \xi
O O ο \omicron
Π \Pi π \pi
P P ρ \rho
Σ \Sigma σ \sigma
T T τ \tau
Υ \Upsilon υ \upsilon
Φ \Phi ϕ \phi
X X χ \chi
Ψ \Psi ψ \psi
Ω \v ω \omega