Skip to content

Commit c00cc51

Browse files
committed
更新了部分文档
1 parent cdc32c4 commit c00cc51

7 files changed

Lines changed: 38 additions & 55 deletions

File tree

Day01-20/01.初识Python.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ macOS 安装 Python 环境相较于 Windows 系统更为简单,我们从官方
9191

9292
#### 其他安装方式
9393

94-
有人可能会推荐新手直接安装 [Anaconda](https://www.anaconda.com/download/success),因为 Anaconda 会帮助我们安装 Python 解释器以及一些常用的三方库,除此之外还提供了一些便捷的工具,特别适合萌新小白。我个人并不推荐这种方式,因为在安装 Anaconda 时你会莫名其妙安装了一大堆有用没用的三方库(占用比较多的硬盘空间),然后你的终端或命令提示符会被 Anaconda 篡改(每次启动自动激活虚拟环境),这些并不符合软件设计的**最小惊讶原则**。其他关于 Anaconda 的小毛病此处就不再赘述了,如果你非要使用 Anaconda,推荐安装 Miniconda,它跟 Anaconda 在同一个下载页面。
94+
有人可能会推荐新手直接安装 [Anaconda](https://www.anaconda.com/download/success),因为 Anaconda 会帮助我们安装 Python 解释器以及一些常用的三方库,除此之外还提供了一些便捷的工具,特别适合萌新小白。我个人其实并不推荐新手直接使用 Anaconda,因为在安装 Anaconda 时你会莫名其妙安装了一大堆有用没用的三方库(占用比较多的硬盘空间),然后你的终端或命令提示符会被 Anaconda 篡改(每次启动自动激活虚拟环境),这些并不符合软件设计的**最小惊讶原则**。其他关于 Anaconda 的小毛病此处就不再赘述了,如果非要使用 Anaconda,可以试试 Miniconda,它跟 Anaconda 在同一个下载页面。
9595

9696
还有萌新小白经常会听到或说出,“我要写 Python 程序,安装一个 PyCharm 不就可以了吗?”。这里简单科普一下,PyCharm 只是一个辅助写 Python 代码的工具,它本身并不具备运行 Python 代码的能力,运行 Python 代码靠的是我们上面安装的 Python 解释器。当然,有些 PyCharm 版本在创建 Python 项目时,如果检测不到你电脑上的 Python 环境,也会提示你联网下载 Python 解释器。PyCharm 的安装和使用我们放在了下一课。
9797

Day01-20/16.函数使用进阶.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ print(is_prime(37)) # True
141141
142142
### 偏函数
143143

144-
偏函数是指固定函数的某些参数,生成一个新的函数,这样就无需在每次调用函数时都传递相同的参数。在 Python 语言中,我们可以使用`functools`模块的`partial`函数来创建偏函数。例如,`int`函数在默认情况下可以将字符串视为十进制整数进行类型转换,如果我们修修改它的`base`参数,就可以定义出三个新函数,分别用于将二进制、八进制、十六进制字符串转换为整数,代码如下所示。
144+
偏函数是指固定函数的某些参数,生成一个新的函数,这样就无需在每次调用函数时都传递相同的参数。在 Python 语言中,我们可以使用`functools`模块的`partial`函数来创建偏函数。例如,`int`函数在默认情况下可以将字符串视为十进制整数进行类型转换,如果我们修改它的`base`参数,就可以定义出三个新函数,分别用于将二进制、八进制、十六进制字符串转换为整数,代码如下所示。
145145

146146
```python
147147
import functools
76 KB
Loading

Day81-90/89.自然语言处理入门.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,3 @@ $$
308308
### 总结
309309

310310
从传统的基于规则、基于统计的方法到深度学习和 Transformer 架构,研究人员一直没有停下对 NLP 探索的脚本,即便经历了人工智能的几次寒冬。随着 GPT 和 BERT 的出现,再到今天各种大模型在不同领域得到广泛应用,计算机已经能够理解和生成几乎所有语言的精髓并顺利的通过“图灵测试”。这一切不仅改变了我们与机器的互动方式,更为信息的获取、理解和交流开辟了崭新的天地,语言的力量永不止步!
311-
312-
313-

Python学习资源汇总.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@
7171

7272
#### 数据采集
7373

74-
1. 《Python 3网络爬虫开发实战》- 个人推荐
75-
2.Python网络书籍擦剂》- 著名的穿山甲书
74+
1. 《Python 3网络爬虫开发实战》- 崔庆才老师力作 - 个人推荐
75+
2.Python网络数据采集》- 著名的穿山甲书
7676

7777
#### 数据分析
7878

公开课/年薪50W+的Python程序员如何写代码/年薪50W+的Python程序员如何写代码.md

Lines changed: 33 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ int main() {
4949
total += i;
5050
}
5151
printf("%d\n", total);
52-
return 0;
52+
return 0;
5353
}
5454
```
5555

@@ -100,52 +100,40 @@ import java.util.List;
100100
import java.util.ArrayList;
101101
import java.util.Collections;
102102
import java.util.Scanner;
103+
import java.util.concurrent.ThreadLocalRandom;
103104

104105
class Example03 {
105-
106-
/**
107-
* 产生[min, max)范围的随机整数
108-
*/
109-
public static int randomInt(int min, int max) {
110-
return (int) (Math.random() * (max - min) + min);
106+
private static final List<Integer> RED_BALLS = new ArrayList<>();
107+
static {
108+
for (int i = 1; i <= 33; ++i) RED_BALLS.add(i);
111109
}
112110

113-
/**
114-
* 输出一组双色球号码
115-
*/
116111
public static void display(List<Integer> balls) {
117-
for (int i = 0; i < balls.size(); ++i) {
118-
System.out.printf("%02d ", balls.get(i));
119-
if (i == balls.size() - 2) {
120-
System.out.print("| ");
121-
}
112+
StringBuilder sb = new StringBuilder();
113+
for (int i = 0; i < balls.size(); i++) {
114+
sb.append(String.format("%02d ", balls.get(i)));
115+
if (i == 5) sb.append("| ");
122116
}
123-
System.out.println();
117+
System.out.println(sb.toString());
124118
}
125119

126-
/**
127-
* 生成一组随机号码
128-
*/
129120
public static List<Integer> generate() {
130-
List<Integer> redBalls = new ArrayList<>();
131-
for (int i = 1; i <= 33; ++i) {
132-
redBalls.add(i);
133-
}
134-
List<Integer> selectedBalls = new ArrayList<>();
135-
for (int i = 0; i < 6; ++i) {
136-
selectedBalls.add(redBalls.remove(randomInt(0, redBalls.size())));
137-
}
121+
List<Integer> pool = new ArrayList<>(RED_BALLS);
122+
Collections.shuffle(pool);
123+
List<Integer> selectedBalls = pool.subList(0, 6);
138124
Collections.sort(selectedBalls);
139-
selectedBalls.add(randomInt(1, 17));
125+
selectedBalls.add(ThreadLocalRandom.current().nextInt(1, 17));
140126
return selectedBalls;
141127
}
142128

143129
public static void main(String[] args) {
144130
try (Scanner sc = new Scanner(System.in)) {
145131
System.out.print("机选几注: ");
146-
int num = sc.nextInt();
147-
for (int i = 0; i < num; ++i) {
148-
display(generate());
132+
if (sc.hasNextInt()) {
133+
int num = sc.nextInt();
134+
for (int i = 0; i < num; ++i) {
135+
display(generate());
136+
}
149137
}
150138
}
151139
}
@@ -155,25 +143,23 @@ class Example03 {
155143
Python的版本:
156144

157145
```Python
158-
from random import randint, sample
146+
import random
147+
148+
RED_RANGE = range(1, 34)
149+
BLU_RANGE = range(1, 17)
159150

160151

161152
def generate():
162-
"""生成一组随机号码"""
163-
red_balls = [x for x in range(1, 34)]
164-
selected_balls = sample(red_balls, 6)
165-
selected_balls.sort()
166-
selected_balls.append(randint(1, 16))
167-
return selected_balls
153+
red_balls = random.sample(RED_RANGE, 6)
154+
red_balls.sort()
155+
blue_ball = random.choice(BLU_RANGE)
156+
return red_balls, blue_ball
168157

169158

170-
def display(balls):
171-
"""输出一组双色球号码"""
172-
for index, ball in enumerate(balls):
173-
print(f'{ball:0>2d}', end=' ')
174-
if index == len(balls) - 2:
175-
print('|', end=' ')
176-
print()
159+
def display(sample):
160+
reds, blue = sample
161+
reds_str = ' '.join(f'{ball:02d}' for ball in reds)
162+
print(f'{reds_str} | {blue:02d}')
177163

178164

179165
num = int(input('机选几注: '))
@@ -632,7 +618,7 @@ cProfile.run('list(PrimeIter(10000))')
632618
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
633619
```
634620

635-
####line_profiler
621+
#### line_profiler
636622

637623
给需要剖析时间性能的函数加上一个`profile`装饰器,这个函数每行代码的执行次数和时间都会被剖析。
638624

@@ -693,7 +679,7 @@ Function: is_prime at line 1
693679
6 1000 386.0 0.4 0.4 return True
694680
```
695681
696-
####memory_profiler
682+
#### memory_profiler
697683
698684
给需要剖析内存性能的函数加上一个`profile`装饰器,这个函数每行代码的内存使用情况都会被剖析。
699685

公开课/第04次公开课-好玩的Python/好玩的Python.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,5 +225,5 @@ ipython最直观的优点:
225225
)
226226
```
227227

228-
> 说明:上面的代码使用了[螺丝帽](<https://luosimao.com/>)提供的短信网关服务,利用短信网关发送短信是需要支付费用的,但是一般的平台都会提供若干条免费的测试短信。发送短信必须遵守平台的规则,违规的短信是无法发送的。上面发短信时使用的短信模板(“发现一条您可能感兴趣的新闻 - ###,详情点击https://news.china.com/### 查看。”)和短信签名(“【Python小课】”)需要登录螺丝帽管理平台进行配置,如果不清楚如何配置,可以联系平台的客服人员进行咨询。
228+
> **说明**:上面的代码使用了[螺丝帽](<https://luosimao.com/>)提供的短信网关服务,利用短信网关发送短信是需要支付费用的,但是一般的平台都会提供若干条免费的测试短信。发送短信必须遵守平台的规则,违规的短信是无法发送的。上面发短信时使用的短信模板(“发现一条您可能感兴趣的新闻 - ###,详情点击https://news.china.com/### 查看。”)和短信签名(“【Python小课】”)需要登录螺丝帽管理平台进行配置,如果不清楚如何配置,可以联系平台的客服人员进行咨询。
229229

0 commit comments

Comments
 (0)