小技巧 Tips
这里主要记录不适合或者还不足以单独开一个文档的知识
开发实践
结合自己的经历,记录一些开发实践。
记得封装数据库操作
在设计架构时,不管选择哪个数据库,一定要用工厂模式来封装数据库操作,这样可以方便切换数据库。
(我刚开始利用 Python 开发的应用选用了 SQLite,用了一个类来操作,现在我想更换为 MySQL,发现要改动的地方太多了)
错误捕获可以更细致
在捕获异常时,可以更细致一些,比如针对可能出现错误的地方,都单独捕获异常,这样可以更好地定位问题。
另外,也可以针对不同的异常类型,做不同的处理。
正则表达式 Regex
设计笔记官方有一篇文章专门介绍正则表达式,可以参考这里。
这里相当于是一个补充,通过使用场景来介绍正则表达式的使用。
1. 匹配 MD 中的标题
比如我想匹配## Title
这样的标题,直接搜索##
也会匹配到### Title
,这个时候就可以用正则来匹配,在搜索替换中输入下面命令就可以排除掉 H3 的标题:
(?<!#)##\s
(?<!#)
: 表示不匹配#
,即##
前面不能有#
。\s
: 表示空格。
YAML
Yaml 是一种轻量级的数据序列化格式,易于阅读和编写。在 Python 中,我们可以使用 PyYAML 库来读写 Yaml 文件。
基础语法
字典:使用冒号
:
来分隔键值对,使用缩进表示层级关系。yamlkey1: value1 key2: - value2 - value3
列表:使用连字符
-
表示列表元素,使用缩进表示层级关系。yaml- value1 - value2
注释:使用井号
#
表示注释。yaml# 这是一个注释
换行符:使用
|
表示保留换行符,使用>
表示折叠换行符。yamlkey: | 这是一个 多行字符串
换行连字符: 如果一行太长,可以使用连字符
\
来换行,依然表示一行。yamlkey: 这是一个很长的字符串,\ 可以使用连字符来换行
Xpath
Xpath 是一种在 XML 文档中定位节点的语言,也可以用于 HTML 文档。
基础语法
在网页爬虫中,我们经常会用到 Xpath 来定位元素,这里记录一些常用的 Xpath 语法。
//
:从根节点选取节点。(如果已经在根节点,可以省略/
)/
:从当前节点选取直接子节点。.
:选取当前节点。..
:选取当前节点的父节点。@
:选取属性。[]
:用于筛选节点。节点是从 1 开始计数的,例如
//div[1]
表示选取第一个 div 节点。contains()
:用于匹配包含指定文本的节点。例如
//div[contains(@class, 'content')]
表示选取类名包含content
的 div 节点。text()
:选取文本节点。last()
:选取最后一个节点。position()
:选取当前节点的位置。and
:逻辑与。./parent::
:选取当前节点的父节点。./following-sibling::
:选取当前节点之后的所有兄弟节点。./preceding-sibling::
:选取当前节点之前的所有兄弟节点。./ancestor::
:选取当前节点的所有祖先节点。
使用案例
找到所有 div 元素,并且类名为
content
:bash//div[@class='content']
找到所有 div 元素,并且类名包含
content
:bash//div[contains(@class, 'content')]
找到所有 div 元素,并且类名包含
content__
,并且 id 为main
:(通过这个方法可以实现一些模糊匹配)
bash//div[contains(@class, 'content__') and @id='main']
找到类名为
content
的 div 下面的所有 a 元素:bash//div[@class='content']//a
如果是选择第一个 a 元素,可以使用
//div[@class='content']//a[1]
。找到类名为
content
的 div 下面的 span 元素,并且文本为添加商品
:bash//div[@class='content' and ./span[text()='添加商品']]
Markdown
特殊自定义信息块
类似于一种警告提醒弹窗,这一个特性并不是所有的 markdown 编辑器都会支持,支持的语法可能也不同
Typora 使用了类似 Github 风格的语法,支持以下这些:
实测 VitePress 也都是支持的
NOTE
Highlights information that users should take into account, even when skimming.
TIP
Optional information to help a user be more successful.
IMPORTANT
Crucial information necessary for users to succeed.
WARNING
Critical content demanding immediate user attention due to potential risks.
CAUTION
Negative potential consequences of an action.
VitePress 的语法是:
效果需要在 VitePress 网站上查看
INFO
This is an info box.
TIP
This is a tip.
WARNING
This is a warning.
DANGER
This is a dangerous warning.
Details
This is a details block.
PlantUML
官方网站:PlantUML
在线编辑器:online server
PlantUML 是一种开源工具,可以通过简单的文本描述生成 UML 图。它支持多种类型的 UML 图,包括类图、时序图、用例图等。
VSCode 插件
在 VSCode 中,可以安装 PlantUML 插件,支持实时预览和导出 UML 图。
支持的格式
*.wsd, *.pu, *.puml, *.plantuml, *.iuml
插件设置
导出设置
plantuml.diagramsRoot
: 指定 PlantUML 文件的根目录(相对于工作区)。plantuml.exportOutDir
: 导出文件的目录。plantuml.exportFormat
: 导出格式,支持 PNG、SVG、PDF 等。
TeX/LaTeX
TeX/LaTeX 是一种排版系统,广泛用于科学、数学和技术文档的书写。TeX 是基础排版系统,而 LaTeX 是基于 TeX 的一个宏包,提供了更高级的功能,使得文档的排版更简便。它们特别擅长处理复杂的数学公式和参考文献。
数学公式
在 Typora 中,我们可以使用 TeX/LaTeX 语法来输入数学公式。
行内公式:使用
$
包裹公式,例如$a^2 + b^2 = c^2$
。行间公式:使用
$$
包裹公式,例如$$a^2 + b^2 = c^2$$
。上标:使用
^
,例如a^2
。下标:使用
_
,例如a_1
。分数:使用
\frac{分子}{分母}
,例如\frac{a}{b}
。开方:使用
\sqrt{}
,例如\sqrt{2}
。求和:使用
\sum
,例如\sum_{i=1}^{n} i
。积分:使用
\int
,例如\int_{a}^{b} f(x) dx
。矩阵:使用
\begin{matrix} \end{matrix}
,例如\begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix}
。
电力系统
电气基础原理及工具的使用
直流电与交流电的区别
直流电(DC):电流方向不变,电压大小不变。
一般用于电池、电源等设备。
交流电(AC):电流方向周期性变化,电压大小周期性变化。
一般用于家用电源、电动机等设备。
万用表的使用
选择挡位时,养成从大到小的习惯,可以避免烧坏万用表。
基础用法
万用表有两个探针,一个红色,一个黑色。在测量电路时,红色探针连接正极,黑色探针连接负极。
直流电一般使用 $V$ 档,交流电一般使用 $V$~ 档。
如果测量时显示的 0L,表示电路断路,或者超过了测量范围。
检测电路通路
档位通常使用表示 $Ω$ 或者类似 WIFI(蜂鸣) 的符号。
这个时候把两个探针连在一起,就可以听到蜂鸣声,表示两个探针是通路的。
之后就可以用这个方法来检测电路是否通路。
如果是负数,表示两个探针反了,可以利用这个方法来判断电路的正负极。
测量电压
在测量电压时,需要选择合适的档位,一般选择最接近待测电压的档位。
电池的电压一般在 1.5V 左右,如果低于 1.4V,可能就需要更换电池了。
家用电压一般在 220V 左右。
测量电流
在测量电流时,需要将电流表串联到电路中(可能需要破坏),并且选择合适的档位。
知道电流后,可以根据 $P=V×I$ 来计算功率。
KOMAX KM-168B
左上角橙色(FUNC):切换按键(切换测量功能,也用于切换直流和交流)、长按 手电筒
右上角橙色(HOLD):读数保持、长按 屏幕夜光
EBCE 孔:三极管插孔
顶部凸出的部分:NCV 感应区域(用于非接触电压检测)
转盘对应的测量功能:
Live
火线识别V
直流交流电压测量Ω
电阻测量/二极管测量/线路通断测量(FUNC 按钮切换)HZ
测量频率hFE
晶体三极管电流放大倍数NCV
非接触交流电压测量
安装与连接
电线剥皮与连接方法
电线剥皮
电线剥皮是指将电线的绝缘层去掉,露出金属导线,以便连接电路。
如果用老虎钳剥皮,一般先用老虎钳夹住电线外皮,然后旋转老虎钳,直到电线外皮被剥开。(应避免直接夹住电线进行剥皮,以免损坏电线导致容易折断)
电气计算
电费计算
已知功率,如何算出所需电流
功率(瓦特,W)和电流(安培,A)之间的关系可以通过公式 $P=V×I$ 来表示,其中 $P$ 是功率,$V$ 是电压,$I$ 是电流。在中国,标准电压为 220V。
例如,对于一个功率为 2600W 的热水壶,计算电流为:
$$ I = \frac{P}{V} = \frac{2600W}{220V} \approx 11.82A $$
民用电量度数计算
1 度电(千瓦时,kWh)是指一个功率为 1 千瓦的设备运行 1 小时所消耗的电能。
例如,2600W 的热水壶使用 1 小时就消耗了 2.6 度电。
材料与设备
电子元件
电阻
电阻(欧姆,Ω)是电流通过时产生电压降的元件。
电阻的计算公式为:
$$ R = \frac{V}{I} $$
其中 $R$ 是电阻,$V$ 是电压,$I$ 是电流。
电容
电容(法拉,F)是电压变化时储存电荷的元件。
它相当于一个储水池,可以储存电荷,以保证电路的稳定。
电容的计算公式为:
$$ C = \frac{Q}{V} $$
其中 $C$ 是电容,$Q$ 是电荷,$V$ 是电压。
摄影摄像
基础知识
对焦模式
单次对焦 AF-S:按下快门键,相机会对焦一次,然后锁定焦点。
连续对焦 AF-C:按下快门键,相机会持续对焦,直到你松开快门键。
DMF:自动对焦的基础上,可以手动调整对焦。
手动对焦 MF:手动调整焦距。
影像制式
PAL:主要用于欧洲、澳大利亚以及亚洲等地区。
NTSC:主要用于美国、日本以及中国台湾地区等地区。
ZV-E10
技巧
Fn 键可以快速呼出菜单,方便调整参数。
ISO 设置为自动才可以设置曝光补偿。自动曝光可以设置最大值,以满足不同场景的需求。
菜单介绍及推荐设置
拍摄设定 1 --> 动态影像 1(P1) --> USB 流动传输 = 可以直接用相机当摄像头使用
拍摄设定 1 --> 照相模式(P3) --> 拍摄设置存储 = 可以保存自己的拍摄设置
1 是设置存到机身,M1-M4 是存到存储卡
可以为户外和室内设置不同的设定
防抖 std/act = 标准防抖/增强防抖(适合拍摄运动)
拍摄设定 2 --> 自定义操作 --> 自定义按键 = 可以设置修改机身按键的功能
拍摄设定 2 --> 自定义操作 --> 功能菜单设置 = 可以设置 Fn 按键的菜单选项
海外转账
跨境汇款
工商银行跨境汇款到新加坡 OCBC
工商银行购汇(选择新加坡)
购汇标志选:
汇
购汇用途选:
因私旅游
选择跨境汇款到新加坡银行
收款行 SWIFT 代码:
OCBCSGSG
收款行地址:
63 CHULIA STREET 10-00, OCBC CENTRE EAST, SINGAPORE, 049514
投资账户入金
新加坡 Tiger Brokers 账户入金
选择入金方式
选择转账汇款 --> 选择新加坡元 --> 获取收款信息及转账附言
新加坡 OCBC 银行转账
登录 OCBC --> 本地转账 --> 填写收款信息 --> 输入转账附言 --> 确认转账
注意: 第一次添加新的收款人需要等待 12 小时,之后才可以转账。
换汇
如果想进行外汇兑换,可以在 Tiger Brokers 中进行换汇操作。
换汇目的选:
证券交易