晒晒我家小院子

0%

gitignore文件常用配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Environments
.DS_Store
.idea/
.vscode/
__pycache__/

.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

*.log

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

argparse简要用法总结

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。
argparse使用比较简单,常用的功能可能较快地实现出来,下面我分几个步骤,以Python3为例,逐渐递增地讲述argparse的用法。

1. 基本框架

下面是使用argparse从命令行获取用户名,然后打印’Hello ‘+ 用户名,假设python文件名为print_name.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# file-name:print_name.py
import argparse

def get_parser():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('--name', default='Great')

return parser


if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
name = args.name
print('Hello {}'.format(name))

在命令行执行如下命令:

1
2
python print_name.py --name Wang
Hello Wang

上面的代码段中,我们显示引入了argparse包,然后通过argparse.ArgumentParser函数生成argparse对象,其中这个函数的description函数表示在命令行显示帮助信息的时候,这个程序的描述信息。之后我们通过对象的add_argument函数来增加参数。这里我们只增加了一个--name的参数,然后后面的default参数表示如果没提供参数,我们默认采用的值。即如果像下面这样执行命令:

1
$ python print_name.py

则输出是:

1
$ Hello Great

最后我们通过argpaser对象的parser_args函数来获取所有参数args,然后通过args.name的方式得到我们设置的--name参数的值,可以看到这里argparse默认的参数名就是--name形式里面--后面的字符串。
整个流程就是这样,下面我们详细讲解add_argument函数的一些最常用的参数,使得你看完这个教程之后,能完成科研和工作中的大部分命令解析任务。

INSERT INTO… SELECT 与 自增id的冲突

1
2
3
1、缺少id会报错,缺少字段
2、指定id,又不确定id应该是多少
3、解决办法:设置id为null
1
2
3
4
5
6
7
8
9
10
11
12
-- 例子
INSERT INTO `pt_rating`.`paper_subject` SELECT
NULL AS id, -- 这个必须有id,可以设置为null
168 AS paper_id,
subject_id,
score,
sort,
NOW() AS create_time
FROM
paper_subject
WHERE
paper_id = 167;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html>
<html lang="zh-CN"> <!-- 1、记住中文 zh-CN -->
<head>
<meta charset="UTF-8"> <!-- 2、记住编码 -->
<title>Html Of Notes</title>
</head>
<body>
<!-- 3、记住常用标签 -->
<p>段落</p>
<br>
<h1>标题</h1>
<!-- 4、记住文本格式标签 -->
<strong>加粗</strong>
<b>加粗</b>
<em>倾斜</em>
<i>倾斜</i>
<del>删除线</del>
<s>删除线</s>
<ins>下划线</ins>
<u>下划线</u>
<!-- 5、记住div和span标签 -->
<div></div>
<span></span>
<!--6、记住图像标签-->
<img src="http://www.itcast.cn/2018czgw/images/logo.png" alt="alt图像显示不出来时显示" title="鼠标悬停的提示文本" height="100"/>
<!--7、记住超链接-->
<a href="http://www.qq.com" target="_blank">腾讯</a>
<!--8、记住表格-->
<table>
<thead>
<tr>
<th>姓名</th>
<th>性别</th>
<th> 年龄</th>
</tr>
</thead>
<tbody>
<tr>
<!-- td标签 colspan="2" rowspan="2 -->
<td>刘德华</td>
<td></td>
<td> 56</td>
</tr>
</tbody>
</table>
<!--9、记住列表-->
<ul>
<li>无序列表</li>
</ul>
<ol>
<li>有序列表</li>
</ol>
<dl>
<dt>自定义列表</dt>
<dd>子元素</dd>
</dl>
<!--10、记住表单-->
<form action="xxx.php" method="get">
<!-- text 文本框 用户可以里面输入任何文字 -->
<label>
用户名:
<input type="text" name="username" value="请输入用户名" maxlength="6">
</label><br>
<!-- password 密码框 用户看不见输入的密码 -->
<label>
密码:
<input type="password" name="pwd">
</label> <br>
<!-- radio 单选按钮 可以实现多选一 -->
<!-- name 是表单元素名字 这里性别单选按钮必须有相同的名字name 才可以实现多选1 -->
<!-- 单选按钮和复选框可以设置checked 属性, 当页面打开的时候就可以默认选中这个按钮 -->
<label>
性别:
<input type="radio" name="sex" value="男">
<input type="radio" name="sex" value="女" checked="checked">
人妖<input type="radio" name="sex" value="人妖">
</label><br>
<!-- checkbox 复选框 可以实现多选 -->
<label>
爱好:
吃饭<input type="checkbox" name="hobby" value="吃饭">
睡觉 <input type="checkbox" name="hobby">
打豆豆 <input type="checkbox" name="hobby" checked="checked">
</label><br>
<!-- 点击了提交按钮,可以把 表单域 form 里面的表单元素 里面的值 提交给后台服务器 -->
<input type="submit" value="免费注册">
<!-- 重置按钮可以还原表单元素初始的默认状态 -->
<input type="reset" value="重新填写">
<!-- 普通按钮 button 后期结合js 搭配使用-->
<input type="button" value="获取短信验证码"> <br>
<!-- 文件域 使用场景 上传文件使用的 -->
上传头像: <input type="file">
</form>
<!--11、记住label标签-->
<label for="text"> 用户名:</label>
<input type="text" id="text">
<!--12、记住下拉表单-->
<form>
籍贯:
<label>
<select>
<option>山东</option>
<option>北京</option>
<option>天津</option>
<option selected="selected">火星</option>
</select>
</label>
</form>
<!--13、记住textarea标签-->
<form>
<label>
今日反馈:
<textarea cols="50" rows="5">pink老师,我知道这个反馈留言是textarea来做的 </textarea>
</label>
</form>
<!--14、记住头部标签-->
<header>头部标签</header>
<!--15、记住导航栏标签-->
<nav>导航栏标签</nav>
<!--16、记住区域标签-->
<section>
某个区域标签
<!--17、记住视频标签-->
<video src="https://www.baidu.com/mi.mp4" autoplay="autoplay" muted="muted" loop="loop"
poster="https://www.baidu.com//mi.png">视频标签
</video>
<!--18、记住音频标签-->
<audio src="https://www.baidu.com//music.mp3" autoplay="autoplay" controls="controls">音频标签</audio>
<!--19、记住新增的input表单类型-->
<!-- 我们验证的时候必须添加form表单域 -->
<form action="">
<ul>
<li><label>邮箱:<input type="email"/></label></li>
<li><label>网址: <input type="url"/></label></li>
<li><label>日期: <input type="date"/></label></li>
<li><label>时间: <input type="time"/></label></li>
<li><label>数量: <input type="number"/></label></li>
<li><label>手机号码: <input type="tel"/></label></li>
<li><label>搜索: <input type="search"/></label></li>
<li><label>颜色: <input type="color"/></label></li>
<!-- 当我们点击提交按钮就可以验证表单了 -->
<li><input type="submit" value="提交"></li>
</ul>
</form>
</section>
</body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>三种样式表</title>
<!--1、外部样式表-->
<link rel="stylesheet" href="notes-css.css">
<!--2、内部样式表-->
<style>
div {
color: pink;
}
</style>
</head>
<body>
<!--3、行内样式表-->
<p style="color: pink; font-size: 20px;">给我一个粉红的回忆</p>
</body>
</html>