Skip to content

Commit 88c1ba9

Browse files
committed
add 12 Day Modules Chinese support
1 parent 763e78b commit 88c1ba9

File tree

1 file changed

+303
-0
lines changed

1 file changed

+303
-0
lines changed

Chinese/12_modules.md

Lines changed: 303 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
1+
<div align="center">
2+
<h1> 30 天 Python :第 12 天 - 模块 </h1>
3+
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
4+
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
5+
</a>
6+
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
7+
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
8+
</a>
9+
10+
<sub>作者:
11+
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
12+
<small>第二版: 2021 年 7 月</small>
13+
</sub>
14+
15+
</div>
16+
</div>
17+
18+
[<< 第 11 天](../11_Day_Functions/11_functions.md) | [第 13 天>>](../13_Day_List_comprehension/13_list_comprehension.md)
19+
20+
![30DaysOfPython](../images/[email protected])
21+
22+
- [📘 第 12 天](#-第12天)
23+
- [模块](#模块)
24+
- [什么是模块](#什么是模块)
25+
- [创建模块](#创建模块)
26+
- [导入模块](#导入模块)
27+
- [从模块中导入函数](#从模块中导入函数)
28+
- [从模块中导入函数并重命名](#从模块中导入函数并重命名)
29+
- [导入内置模块](#导入内置模块)
30+
- [OS 模块](#os-模块)
31+
- [Sys 模块](#sys-模块)
32+
- [统计模块](#统计模块)
33+
- [数学模块](#数学模块)
34+
- [字符串模块](#字符串模块)
35+
- [随机模块](#随机模块)
36+
- [💻 练习:第 12 天](#-练习-第12天)
37+
- [练习:级别 1](#练习-级别-1)
38+
- [练习:级别 2](#练习-级别-2)
39+
- [练习:级别 3](#练习-级别-3)
40+
41+
# 📘 第 12 天
42+
43+
## 模块
44+
45+
### 什么是模块
46+
47+
模块是包含一组代码或一组函数的文件,可以包含在一个应用程序中。一个模块可以是包含单个变量、函数或大规模代码库的文件。
48+
49+
### 创建模块
50+
51+
要创建模块,我们在一个 Python 脚本中编写代码并保存为 .py 文件。 在项目文件夹中创建一个名为 mymodule.py 的文件。让我们在此文件中编写一些代码。
52+
53+
```py
54+
# mymodule.py 文件
55+
def generate_full_name(firstname, lastname):
56+
return firstname + ' ' + lastname
57+
```
58+
59+
在项目目录中创建 main.py 文件并导入 mymodule.py 文件。
60+
61+
### 导入模块
62+
63+
要导入文件,我们使用 _import_ 关键字和文件名。
64+
65+
```py
66+
# main.py 文件
67+
import mymodule
68+
print(mymodule.generate_full_name('Asabeneh', 'Yetayeh')) # Asabeneh Yetayeh
69+
```
70+
71+
### 从模块中导入函数
72+
73+
我们可以在一个文件中有很多函数,并且我们可以分别导入所有函数。
74+
75+
```py
76+
# main.py 文件
77+
from mymodule import generate_full_name, sum_two_nums, person, gravity
78+
print(generate_full_name('Asabneh','Yetayeh'))
79+
print(sum_two_nums(1,9))
80+
mass = 100
81+
weight = mass * gravity
82+
print(weight)
83+
print(person['firstname'])
84+
```
85+
86+
### 从模块中导入函数并重命名
87+
88+
在导入过程中,我们可以重命名模块名称。
89+
90+
```py
91+
# main.py 文件
92+
from mymodule import generate_full_name as fullname, sum_two_nums as total, person as p, gravity as g
93+
print(fullname('Asabneh','Yetayeh'))
94+
print(total(1, 9))
95+
mass = 100
96+
weight = mass * g
97+
print(weight)
98+
print(p)
99+
print(p['firstname'])
100+
```
101+
102+
## 导入内置模块
103+
104+
像其他编程语言一样,我们也可以通过使用关键字 _import_ 导入文件/函数来导入模块。让我们导入我们大多数时候会使用的常见模块。一些常见的内置模块:_math__datetime__os__sys__random__statistics__collections__json__re_
105+
106+
### OS 模块
107+
108+
使用 Python _os_ 模块可以自动执行许多操作系统任务。Python 中的 OS 模块提供了创建、更改当前工作目录和删除目录(文件夹)、获取其内容、更改和识别当前目录的函数。
109+
110+
```py
111+
# 导入模块
112+
import os
113+
# 创建目录
114+
os.mkdir('directory_name')
115+
# 更改当前目录
116+
os.chdir('path')
117+
# 获取当前工作目录
118+
os.getcwd()
119+
# 删除目录
120+
os.rmdir()
121+
```
122+
123+
### Sys 模块
124+
125+
sys 模块提供用于操作 Python 运行时环境不同部分的函数和变量。函数 sys.argv 返回传递给 Python 脚本的命令行参数列表。此列表中索引 0 处的项始终是脚本的名称,索引 1 处是从命令行传递的参数。
126+
127+
示例 script.py 文件:
128+
129+
```py
130+
import sys
131+
#print(sys.argv[0], argv[1],sys.argv[2]) # 这一行会打印出来:文件名 argument1 argument2
132+
print('Welcome {}. Enjoy {} challenge!'.format(sys.argv[1], sys.argv[2]))
133+
```
134+
135+
现在要查看这个脚本的工作效果,我在命令行中写:
136+
137+
```sh
138+
python script.py Asabeneh 30DaysOfPython
139+
```
140+
141+
结果:
142+
143+
```sh
144+
Welcome Asabeneh. Enjoy 30DayOfPython challenge!
145+
```
146+
147+
一些有用的 sys 命令:
148+
149+
```py
150+
# 退出 sys
151+
sys.exit()
152+
# 知道最大整数变量
153+
sys.maxsize
154+
# 知道环境路径
155+
sys.path
156+
# 知道使用的 Python 版本
157+
sys.version
158+
```
159+
160+
### 统计模块
161+
162+
统计模块提供用于数值数据的数学统计的函数。这个模块中定义的流行统计函数:_mean__median__mode__stdev_ 等。
163+
164+
```py
165+
from statistics import * # 导入所有统计模块
166+
ages = [20, 20, 4, 24, 25, 22, 26, 20, 23, 22, 26]
167+
print(mean(ages)) # ~22.9
168+
print(median(ages)) # 23
169+
print(mode(ages)) # 20
170+
print(stdev(ages)) # ~2.3
171+
```
172+
173+
### 数学模块
174+
175+
包含许多数学运算和常数的模块。
176+
177+
```py
178+
import math
179+
print(math.pi) # 3.141592653589793, pi 常数
180+
print(math.sqrt(2)) # 1.4142135623730951, 平方根
181+
print(math.pow(2, 3)) # 8.0, 指数函数
182+
print(math.floor(9.81)) # 9, 向下取整
183+
print(math.ceil(9.81)) # 10, 向上取整
184+
print(math.log10(100)) # 2, 以 10 为底的对数
185+
```
186+
187+
现在,我们已经导入了包含大量函数的 _math_ 模块,可以帮助我们进行数学计算。要检查模块中包含哪些函数,我们可以使用 _help(math)__dir(math)_。这将显示模块中的可用函数。如果我们只想从模块中导入特定的函数,我们可以这样导入:
188+
189+
```py
190+
from math import pi
191+
print(pi)
192+
```
193+
194+
也可以一次导入多个函数
195+
196+
```py
197+
from math import pi, sqrt, pow, floor, ceil, log10
198+
print(pi) # 3.141592653589793
199+
print(sqrt(2)) # 1.4142135623730951
200+
print(pow(2, 3)) # 8.0
201+
print(floor(9.81)) # 9
202+
print(ceil(9.81)) # 10
203+
print(math.log10(100)) # 2
204+
```
205+
206+
但如果我们想要导入数学模块中的所有函数,可以使用 \* .
207+
208+
```py
209+
from math import *
210+
print(pi) # 3.141592653589793, pi 常数
211+
print(sqrt(2)) # 1.4142135623730951, 平方根
212+
print(pow(2, 3)) # 8.0, 指数
213+
print(floor(9.81)) # 9, 向下取整
214+
print(ceil(9.81)) # 10, 向上取整
215+
print(math.log10(100)) # 2
216+
```
217+
218+
当我们导入时,我们也可以重命名函数名称。
219+
220+
```py
221+
from math import pi as PI
222+
print(PI) # 3.141592653589793
223+
```
224+
225+
### 字符串模块
226+
227+
字符串模块是一个很有用的模块。下面的例子展示了字符串模块的一些用法。
228+
229+
```py
230+
import string
231+
print(string.ascii_letters) # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
232+
print(string.digits) # 0123456789
233+
print(string.punctuation) # !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
234+
```
235+
236+
### 随机模块
237+
238+
现在你已经熟悉了导入模块。让我们再进行一次导入以熟悉它。让我们导入 _random_ 模块,它会给我们一个 0 到 0.9999 之间的随机数。_random_ 模块有很多函数,但在本节中,我们将只使用 _random__randint_
239+
240+
```py
241+
from random import random, randint
242+
print(random()) # 它不需要任何参数;它返回一个介于 0 和 0.9999 之间的值
243+
print(randint(5, 20)) # 它返回一个介于 [5, 20] 之间的随机整数(含边界)
244+
```
245+
246+
🌕 你走得很远了。继续努力!你刚刚完成第 12 天的挑战,现在你已经在通往伟大的路上迈出了 12 步。现在为你的大脑和肌肉做一些练习。
247+
248+
## 💻 练习:第 12 天
249+
250+
### 练习:级别 1
251+
252+
1. 编写一个生成六位数/字符 random_user_id 的函数。
253+
```py
254+
print(random_user_id());
255+
'1ee33d'
256+
```
257+
2. 修改上一个任务。声明一个名为 user_id_gen_by_user 的函数。它不接受任何参数,但接受两个输入。一个输入是字符的数量,另一个输入是应生成的 ID 数量。
258+
259+
```py
260+
print(user_id_gen_by_user()) # 用户输入:5 5
261+
#输出:
262+
#kcsy2
263+
#SMFYb
264+
#bWmeq
265+
#ZXOYh
266+
#2Rgxf
267+
268+
print(user_id_gen_by_user()) # 16 5
269+
#1GCSgPLMaBAVQZ26
270+
#YD7eFwNQKNs7qXaT
271+
#ycArC5yrRupyG00S
272+
#UbGxOFI7UXSWAyKN
273+
#dIV0SSUTgAdKwStr
274+
```
275+
276+
3. 编写一个名为 rgb_color_gen 的函数。它将生成 RGB 颜色(每个值范围从 0 到 255)。
277+
278+
```py
279+
print(rgb_color_gen())
280+
# rgb(125,244,255) - 输出应该是这种形式
281+
```
282+
283+
### 练习:级别 2
284+
285+
1. 编写一个函数 list_of_hexa_colors,它返回一个数组中的任意数量的十六进制颜色(六个十六进制数写在 # 后面。十六进制数字系统由 16 个符号组成,0-9 和 前 6 个字母 a-f。查看任务 6 的输出示例)。
286+
2. 编写一个函数 list_of_rgb_colors,它返回一个数组中的任意数量的 RGB 颜色。
287+
3. 编写一个函数 generate_colors,它可以生成任意数量的十六进制或 RGB 颜色。
288+
289+
```py
290+
generate_colors('hexa', 3) # ['#a3e12f','#03ed55','#eb3d2b']
291+
generate_colors('hexa', 1) # ['#b334ef']
292+
generate_colors('rgb', 3) # ['rgb(5, 55, 175','rgb(50, 105, 100','rgb(15, 26, 80']
293+
generate_colors('rgb', 1) # ['rgb(33,79, 176)']
294+
```
295+
296+
### 练习:级别 3
297+
298+
1. 调用你的函数 shuffle_list,它接受一个列表作为参数并返回一个打乱的列表。
299+
2. 编写一个函数,它在 0-9 的范围内返回七个随机数的数组。所有数字必须是唯一的。
300+
301+
🎉 恭喜! 🎉
302+
303+
[<< 第 11 天](../11_Day_Functions/11_functions.md) | [第 13 天>>](../13_Day_List_comprehension/13_list_comprehension.md)

0 commit comments

Comments
 (0)