第 27 期:广度与深度

@Author : Lewis Tian (taseikyo@gmail.com)

@Link : github.com/taseikyo

@Range : 2021-05-02 - 2021-05-08

Weekly #27

readme | previous | next

本文总字数 1630 个,阅读时长约:3 分 8 秒,统计数据来自:算筹字数统计

*Photo by Tran Mau Tri Tam on Unsplash

世间安得双全法,不负如来不负卿。

Table of Contents

  • review

    • Jupyter Notebook Extensions

  • tip

    • 调整 jupyter 中显示字体

    • matplotlib 中 y 轴显示为百分比形式的方法

    • Bash Shell 统计当前目录下所有特定文件大小

    • Word 插入新页后页码没有接上前一页

  • share

    • 广度与深度

algorithm 🔝

review 🔝

之前用 Jupyter Notebook 都是直接命令行输入 jupyter notebook 然后代码或者 markdown,不知道还有扩展,太蠢了。

这篇文章介绍了如何使用扩展:

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

启动之后不要急着选择一个 ipynb 文件,而是却换到 "Nbextensions" tab 页,然后可以看到很多插件(有的插件需要安装,如:autopep8)

去勾选 "disable configuration xxx"

然后勾选上所需的插件,如 markdown 目录、isort、autopep8 等等

有了这些插件好用多了 :D

tip 🔝

在本地 jupyter 的 cumtom.css 文件中粘贴文件内容

Windows:%USERPROFILE%/.jupyter/custom/custom.css

Mac/Linux:~/.jupyter/custom/custom.css

```CSS /* Markdown */ div#notebook { font-family: "Fira Code", "Microsoft YaHei"; line-height: 20px; -webkit-font-smoothing: antialiased !important; } /* Markdown - h2 */ div#notebook h2 { color: #007aff; } /* Markdown - quote */ div#notebook blockquote{ background-color: #f8f8f8; color: #505050; padding: 8.5px; margin: 0.5em -0.5em 0.5em -0.4em; } /* Markdown - code in paragraph */ div#notebook p code, div#notebook li code { font-family: "Fira Code", "Microsoft YaHei"; font-size: 1em !important; color: #111111; border: 0.5px solid #cfcfcf; border-radius: 2px; background-color: #f7f7f7; padding: .1em .2em; margin: 0px 2px; } /* Markdown - code */ div.text_cell_render pre { border: 1px solid #cfcfcf; border-radius: 2px; background: #f7f7f7; line-height: 1.21429em; padding: 8.5px; margin: 0.5em -0.5em 0.5em -0.4em; } div.text_cell_render code { background: #f7f7f7; } /* Code */ div.CodeMirror pre { font-family: "Microsoft Yahei mono", "Microsoft YaHei" !important; font-size: 11pt; line-height: 140%; -webkit-font-smoothing: antialiased !important; } /* Code - output */ div.output pre { font-family: "Fira Code", "Microsoft YaHei"; line-height: 20px; -webkit-font-smoothing: antialiased !important; } /* Code - comment */ span.cm-comment { font-family: "Fira Code", "Microsoft YaHei" !important; font-style: normal !important; } ```

from matplotlib import pyplot as plt
from matplotlib import ticker

fig, ax = plt.subplots()
ax.plot(data)
ax.yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1, decimals=1))
plt.show()
  • xmax:指定 100% 对应原始数据的值,默认值是 100,由于我们的数据是 0 ~ 1 之间的小数,所以这里要设置为 1,即 data 中的 1 表示 100%;

  • decimals:指定显示小数点后多少位,默认是由函数自动确定,这里我们设置成 1,使之仅显示小数点后 1 位。

3. Bash Shell 统计当前目录下所有特定文件大小

比如统计当前目录下所有 Python 脚本(*.py),如下所示

#!/bin/bash

for file in $(find . -name "*.py")
do
size=$(du $file | cut -f1)
((total+=$size))
done

[[ $total -gt 1024 ]] && echo $(($total/1024)) MB || echo $total KB

这里有个问题,如果总和很大,大于 1G,这里需要两次除法,不知道把判断加进去,或许会只能用原本的 if - else if - else

4. Word 插入新页后页码没有接上前一页

感觉这个东西查了无数次,插入新页重新开始页码/插入新页继续页码等等,今天就遇到后者,查了半天,实际上很简单。

插入- 页码 - 设置页码格式 - 页码编号

这里可以选择 续前节 和设置 起始页码,在这里就可以完成到底是重新开始页码还是接上前面的页码。

share 🔝

这是个很有趣的问题,我深有体会,正如宏内核与 Unikernel 区别。

对于找工作的我们来说,当然会更倾向于广度,因为面试时会涉及各种问题,公司更希望你是多面手,如果你只是专注于某一方面可能就无法通过面试了,虽然最后工作可能还是某一方面(面试造航母,工作拧螺丝)。

所以很多时候需要权衡,只能在中间达到一个平衡。

只是广度的话,万事都懂,但是一问细节就不知道,这肯定不行;

若只是深度,对某一方面精通,那很显然也不行。

所以需要在两者直接选择一个度,对于那些对自己影响较大的领域可做深挖(加大深度),对于一般的领域只是做了解,拓展知识领域就行(扩展广度)。

由此推广,有很多东西都是互相矛盾的,我们只能选择一个自认为一个对自己最舒服的度,根本无法兼顾。

readme | previous | next

最后更新于

这有帮助吗?