Python 语言最明显的特征之一是用缩进量表示从属关系,没有采用 Java, C 用括号定义作用域的自由书写风格。 所以 Python 对代码格式的要求十分严格,社区发展出了完整的编码规范和丰富的检查和修复工具,并能够整合到几乎所有主流编辑器中。
编码规范在提升代码质量和可读性、降低维护成本等方面发挥了核心作用,但如果没有相应的工具链帮助其落地,很难真正产生效果,本文第3、4节专门论述如何搭建可用的工具链。
Python 社区不鼓励对编码规范做人工审查,因为人工审查存在如下问题:
{ | |
"$schema": "https://vega.github.io/schema/vega/v5.json", | |
"description": "A Demo", | |
"width": 700, | |
"height": 500, | |
"padding": 0, | |
"autosize": "none", | |
"data": [ | |
{ | |
"name": "nodes", |
{ | |
"nodes": [ | |
{"id": 1, "name": "1.13", "IP": "192.168.1.13", "group": "attacker"}, | |
{"id": 2, "name": "3.14", "IP": "192.168.3.14", "group": "victim"}, | |
{"id": 2, "name": "3.18", "IP": "192.168.3.18", "group": "victim"} | |
], | |
"edges": [ | |
{"id": 1, "source": 1, "target": 2, "relation": "SQL Injection"}, | |
{"id": 1, "source": 1, "target": 3, "relation": "Web Shell"} | |
] |
[project] | |
name = "my-fancy-project" | |
description = "My fancy project" | |
authors = [ | |
{name = "Leo", email = "[email protected]"}, | |
] | |
version = "0.1.0" | |
readme = "README.md" | |
license = {text = "MIT"} |
import pexpect | |
import argparse | |
import importlib | |
from pygments.styles.vim import VimStyle | |
from prompt_toolkit import PromptSession | |
from prompt_toolkit.history import FileHistory | |
from prompt_toolkit.lexers import PygmentsLexer | |
from prompt_toolkit.styles import style_from_pygments_cls | |
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory | |
from prompt_toolkit.application.current import get_app |
/// This is the implementation of the first 2 parts of the wonderful 4-parts | |
/// posts "Understanding Parser Combinators" of | |
/// [F# for fun and profit](https://fsharpforfunandprofit.com/): | |
module ParserLib1 = | |
open System | |
/// Type that represents Success/Failure in parsing | |
type ParseResult<'a> = |
#!/bin/sh | |
# Function: | |
# print $output_num sections by order, | |
# each have $sec_num adjacent records | |
# from file $inp | |
inp=$1 | |
output_num=$2 | |
sec_num=$3 |
rc=%{$reset_color%} | |
cy=$fg_bold[cyan] | |
bl=$fg_bold[blue] | |
re=$fg_bold[red] | |
wh=%{$fg_bold[white]%} | |
ye=$fg_bold[yellow] | |
gr=$fg_bold[green] | |
ma=$fg_bold[magenta] | |
ZSH_THEME_GIT_PROMPT_PREFIX="git(" |
#!/bin/bash | |
# 使用方法: | |
# * 提取文件 `ycz6502.csv` 中所有包含的日期,保存到各自的csv文件中:`./filecutter.sh ycz6502.csv` | |
# * 提取文件 `ycz6502.csv` 中指定日期(2017年6月4日)的数据到csv文件中:./filecutter.sh ycz6502.csv 20170604 | |
sourcefile=$(basename -s .csv $1) | |
if [[ $# -gt 1 ]]; then | |
csvgrep -c time -m $2 $1 > $sourcefile-$2.csv | |
echo "$sourcefile-$2.csv created" |
--- | |
title: "二次型系统的参数估计和异常检测" | |
output: html_notebook | |
--- | |
二次型系统([Quadratic form](https://en.wikipedia.org/wiki/Quadratic_form))是只包含二次项,不包含常数和一次项的单变量或者多变量系统,例如下面分别是包含1, 2 和 3个特征变量的二次型系统: | |
$$ | |
y = a x^2 \\ | |
y = a x^2 + b xy + c y^2 \\ | |
y = a x^2 + b y^2 + c z^2 + d xy + e xz + f yz |