常见代码解读
publish: falsecallback && callback()的含义callback && callback()
含义是:如果callback存在,则执行callback()函数。
这个 callback 通常作为函数的参数使用。举例:
function foo(callback) { { // do something } callback && callback() // 不传 callback 参数,则不会执行 callback() 函数}foo(); // 只执行do something中的代码foo(callback);//callback是另一个函数,将此函数传入 foo,将会执行callback()
Markdown 标题语法 | Markdown 官方教程
# Markdown 标题语法要创建标题,请在单词或短语前面添加井号 (#) 。# 的数量代表了标题的级别。例如,添加三个 # 表示创建一个三级标题 (<h3>) (例如:### My Header)。
Markdown语法
HTML
预览效果
# Heading level 1
<h1>Heading level 1</h1>
# Heading level 1
## Heading level 2
<h2>Heading level 2</h2>
## Heading level 2
### Heading level 3
<h3>Heading level 3</h3>
### Heading level 3
#### Heading level 4
<h4>Heading level 4</h4>
#### Heading level 4
##### Heading level 5
<h5>Heading level 5</h ...
markdown 工具
编辑器开源MarkTextJoplin付费思源笔记博客系统hexojekyllgitbook拓展公式思维导图
markdown 画图
markdown 画图
markdown是轻文本编辑器,并不像word那么强大,所以画图也是轻量级的,功能并不全。如使用mermaid画图时不能从上往下,同时又从右往左。 推荐markdown编辑软件 - typora
使用方法在下列各种图的代码块外 开始添加 ```mermaid 结尾添加``` 即可
1. ```mermaid 2. graph LR; 3. A-->B 4. B-->C 5. C-->D 6. D-->A 7. ```
效果如下:
graph(流程图)
节点名不能与关键字同名
使用引号可以避免一些不必要的麻烦,如避免与关键字同名
关键字graph表示一个流程图的开始,同时需要指定该图的方向
图方向
TB,从上到下
TD,从上到下
BT,从下到上
RL,从右到左
LR,从左到右
T = TOP,B = BOTTOM,L = LEFT,R = RIGHT,D = DOWN
1. graph LR; 2. A-->B ...
语法-基础
字体斜体*这里显示的是斜体*_这里显示的倾斜体_
粗体**这里显示的文字是加粗了*****这里的文字是倾斜加粗的***
删除线~~这里的文字是加下划线的~~
这里的文字是加下划线的
强调Markdown 使用星号()和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 标签包围,用两个或_包起来的话,则会被转成,例如:
*single asterisks*_single underscores_**double asterisks**__double underscores__
会转成:single asteriskssingle underscoresdouble asterisksdouble underscores你可以随便用你喜欢的样式,唯一的限制是,你用什么符号开启标签,就要用什么符号结束。强调也可以直接插在文字中间:un*frigging*believable 但是如果你的 * 和 _ 两边都有空白的话,它们就只会被当成普通的符号。如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:\*this text is surrounded by lite ...
Python csv模块(读写文件)
Python csv模块(读写文件)CSV 文件又称为逗号分隔值文件,是一种通用的、相对简单的文件格式,用以存储表格数据,包括数字或者字符。CSV 是电子表格和数据库中最常见的输入、输出文件格式,可参考《CSV介绍》。通过爬虫将数据抓取的下来,然后把数据保存在文件,或者数据库中,这个过程称为数据的持久化存储。本节介绍 Python 内置模块 CSV 的读写操作。
CSV文件写入1) csv.writer()csv 模块中的 writer 类可用于读写序列化的数据,其语法格式如下:
writer(csvfile, dialect='excel', **fmtparams)
参数说明:
csvfile:必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象。
dialect:编码风格,默认为 excel 的风格,也就是使用逗号,分隔。
fmtparam:格式化参数,用来覆盖之前 dialect 对象指定的编码风格。
示例如下:
1. import csv2. # 操作文件对象时,需要添加newline参数逐行写入,否则会出 ...
Python中list的大小最大是多少
Python中list的大小最大是多少
不_一0.0962018.03.25 11:08:51字数 76阅读 8,825一般应用场景都不用考虑这个大小,因为这个上限很高,需要用到这么多元素的list的时候,都需要考虑很多其它问题。32位python的限制是 536870912 个元素。64位python的限制是 1152921504606846975 个元素。
2**601152921504606846976
python线程池 ThreadPoolExecutor 的用法及实战
python线程池 ThreadPoolExecutor 的用法及实战✨ 前言从Python3.2开始,标准库为我们提供了 concurrent.futures 模块,它提供了 ThreadPoolExecutor (线程池)和ProcessPoolExecutor (进程池)两个类。
相比 threading 等模块,该模块通过 submit 返回的是一个 future 对象,它是一个未来可期的对象,通过它可以获悉线程的状态主线程(或进程)中可以获取某一个线程(进程)执行的状态或者某一个任务执行的状态及返回值:
主线程可以获取某一个线程(或者任务的)的状态,以及返回值。
当一个线程完成的时候,主线程能够立即知道。
让多线程和多进程的编码接口一致。
✨ 线程池的基本使用# coding: utf-8from concurrent.futures import ThreadPoolExecutorimport timedef spider(page): time.sleep(page) print(f"crawl task{page} ...
python脚本后台执行
运行python脚本后台执行方法一:脚本后加&加了&以后可以使脚本在后台运行,这样的话你就可以继续工作了。但是有一个问题就是你关闭终端连接后,脚本会停止运行;
`python3 run.py >/dev/null 2>&1 &`
方法二:使用nohup在后台执行命令`nohup python3 run.py >/dev/null 2>&1 &`
注意print有输出缓冲,使用-u参数,使得python不启用缓冲,这样就可以同步看到输出结果了。python -u myscript.py
方法三:使用screen执行命令通过nohup和&符号在后台执行命令后,即使你退出登录,这个命令也会一直执行。但是,你无法重新连接到这个会话,要想重新连接到这个会话,你可以使用screen命令。.
Linux的screen命令提供了分离和重新连接一个会话的功能。当你重新连接这个会话的时候,你的终端和你分离的时候一模一样。
方法四:使用at将一个命令作为批处理执行https://blog.csdn.net/gxiaop/ ...
使用 Python 操作 Git 版本库
使用 Python 操作 Git 版本库 - GitPythonGitPython 是一个用于操作 Git 版本库的 python 包,它提供了一系列的对象模型(库 - Repo、树 - Tree、提交 - Commit等)用于操作版本库中的相应对象。
版本库对象 - Repo首先,使用包含 .git 文件夹的版本库路径创建 git.Repo 对象
from git import Repo# 创建版本库对象repo = git.Repo(r'E:\Notes')
然后便可以使用这个 Repo 对象对版本库进行操作,如:
# 版本库是否为空版本库repo.bare# 当前工作区是否干净repo.is_dirty()# 版本库中未跟踪的文件列表repo.untracked_files# 克隆版本库repo.clone('clone_path')# 压缩版本库到 tar 文件with open('repo.tar', 'wb') as fp: repo.archive(fp)# 新建分支repo.crea ...
01-Vue的介绍和vue-cli
MVVM模式
Model:负责数据存储
View:负责页面展示
View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示
关于框架为什么要学习流行框架1、企业为了提高开发效率:在企业中,时间就是效率,效率就是金钱;企业中,使用框架,能够提高开发的效率。
提高开发效率的发展历程:
原生JS -> Jquery之类的类库 -> 前端模板引擎 -> Angular.js / Vue.js(能够帮助我们减少不必要的DOM操作;提高渲染效率;双向数据绑定的概念)
2、在Vue中,一个核心的概念就是:数据驱动,避免手动操作DOM元素。这样的话,可以让前端程序员可以更多的时间去关注数据的业务逻辑,而不是关心 DOM 是如何渲染的了。
框架和库的区别框架:
框架是一套完整的解决方案。
对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。但是优点也很明显:功能完善、提供了一整套的解决方案。
库(插件):
只是提供某一个小功能。
对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。
举例:
从Jque ...
02-Vue的系统指令
本文主要内容
插值表达式 {{}}`
- v-cloak
- v-text
- v-html
- v-bind
- v-on
- 举例:文字滚动显示(跑马灯效果)
- v-on的事件修饰符
## Vue初体验
新建一个空的项目,引入`vue.js`文件。写如下代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <!--1、导入Vue的包--> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script></head><body><!--这个div区域就是MVVM中的 View--><di ...
03-v-on的事件修饰符
v-on的事件修饰符v-on的常见事件修饰符v-on 提供了很多事件修饰符来辅助实现一些功能。事件修饰符有如下:
.stop 阻止冒泡。本质是调用 event.stopPropagation()。
.prevent 阻止默认事件(默认行为)。本质是调用 event.preventDefault()。
.capture 添加事件监听器时,使用捕获的方式(也就是说,事件采用捕获的方式,而不是采用冒泡的方式)。
.self 只有当事件在该元素本身(比如不是子元素)触发时,才会触发回调。
.once 事件只触发一次。
.{keyCode | keyAlias} 只当事件是从侦听器绑定的元素本身触发时,才触发回调。
.native 监听组件根元素的原生事件。
PS:一个事件,允许同时使用多个事件修饰符。
写法示范:
<!-- click事件 --><button v-on:click="doThis"></button><!-- 缩写 --><button @clic ...
04-Vue的系统指令(二)
前言本文主要内容:
v-model
v-for
v-if
v-show
v-model:双向数据绑定
重点:双向数据绑定,只能用于表单元素,或者用于自定义组件。
之前的文章里,我们通过v-bind,给<input>标签绑定了data对象里的name属性。当data里的name的值发生改变时,<input>标签里的内容会自动更新。
可我现在要做的是:我在<input>标签里修改内容,要求data里的name的值自动更新。从而实现双向数据绑定。该怎么做呢?这就可以利用v-model这个属性。
区别:
v-bind:只能实现数据的单向绑定,从 M 自动绑定到 V。
v-model:只有v-model才能实现双向数据绑定。注意,v-model 后面不需要跟冒号,
注意:v-model 只能运用在表单元素中,或者用于自定义组件。常见的表单元素包括:input(radio, text, address, email….) 、select、checkbox 、textarea。
代码举例如下:
<!DOCTYPE html>< ...