Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
pythonbasics-zh
提交
8d7df419
P
pythonbasics-zh
项目概览
OpenDocCN
/
pythonbasics-zh
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pythonbasics-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8d7df419
编写于
12月 05, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-12-05 12:02:10
上级
a6c316ab
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
109 addition
and
115 deletion
+109
-115
docs/51.md
docs/51.md
+2
-3
docs/52.md
docs/52.md
+7
-10
docs/53.md
docs/53.md
+79
-80
docs/54.md
docs/54.md
+4
-4
docs/56.md
docs/56.md
+7
-8
docs/58.md
docs/58.md
+7
-7
docs/59.md
docs/59.md
+3
-3
未找到文件。
docs/51.md
浏览文件 @
8d7df419
...
...
@@ -27,7 +27,7 @@ JavaScript Object Notation(JSON)是一种数据交换格式。 虽然最初
```
Then parse the JSON object like this:
之后像这样解析 JSON 对象:
```
py
import
json
...
...
@@ -38,8 +38,7 @@ print(obj['gold'])
### 从 URL 解析 JSON
您可以直接从网络上获取 JSON 对象,并将其转换为 python 对象。 这是通过 API 端点
完成的
您可以直接从网络上获取 JSON 对象,并将其转换为 python 对象。 这是通过 API 端点完成的
```
py
import
json
...
...
docs/52.md
浏览文件 @
8d7df419
...
...
@@ -4,12 +4,9 @@
在 python 中读取 json 文件非常容易。 在本文中,我们将说明如何从磁盘读取 JSON 文件并在 python 中使用它。
_ 什么是 JSON?_
[
JSON
](
/json
)
是一种在整个 Internet 上使用的数据交换格式。
**JSON**
(JavaScript 对象表示法)可用于所有高级编程语言。
什么是 JSON?JSON 是一种在整个 Internet 上使用的数据交换格式。
**JSON**
(JavaScript 对象表示法)可用于所有高级编程语言。
_ 如何在 python 中使用 JSON?_
这种工作方式是首先在磁盘上放置一个 json 文件。
然后,程序将加载文件进行解析,解析,然后即可使用它。
如何在 python 中使用 JSON?这种工作方式是首先在磁盘上放置一个 json 文件。然后,程序将加载文件进行解析,解析,然后即可使用它。
...
...
@@ -17,20 +14,20 @@ _ 如何在 python 中使用 JSON?_
### JSON 文件
在磁盘上创建一个文件(命名为:
example.json
)。 下面的 python 程序读取 json 文件并直接使用值。
在磁盘上创建一个文件(命名为:
`example.json`
)。 下面的 python 程序读取 json 文件并直接使用值。
该文件可以包含一个衬纸。
example.json
的文件内容为:
该文件可以包含一个衬纸。
`example.json`
的文件内容为:
```
py
{
"usd"
:
1
,
"eur"
:
1.2
,
"gbp"
:
1.2
}
```
Save the file to example.json.
将文件保存为
`example.json`
。
### python 示例
然后在下面创建程序并运行
。
:
然后在下面创建程序并运行:
```
py
import
json
...
...
@@ -49,4 +46,4 @@ print("gbp: " + str(obj['gbp']))
```
The above program will open the file ‘example.json’ and parse it. You can access the JSON data like any variables.
\ No newline at end of file
上面的程序将打开文件
`example.json`
并进行解析。 您可以像访问任何变量一样访问 JSON 数据。
\ No newline at end of file
docs/53.md
浏览文件 @
8d7df419
...
...
@@ -6,7 +6,7 @@
使用装饰器向现有功能添加功能。 这称为元编程。
一个函数可以将一个函数作为参数(
_ 要修饰的函数 _
),并返回带或不带扩展名的相同函数。
一个函数可以将一个函数作为参数(
要修饰的函数
),并返回带或不带扩展名的相同函数。
扩展功能有时非常有用,我们将在本文稍后展示真实的示例。
...
...
@@ -17,18 +17,18 @@
在 Python 中,一切都是对象,包括函数。 这意味着函数可以传递并返回。 当您看到它时,乍一看可能很奇怪:
```
py
def
hello
():
print
(
"Hello"
)
def
hello
():
print
(
"Hello"
)
# even functions are objects
message
=
hello
# even functions are objects
message
=
hello
# call new function
message
()
# call new function
message
()
```
调用
message()或 hello()
方法,它们具有相同的输出。 那是因为他们指的是同一个对象。
调用
`message()`
或
`hello()`
方法,它们具有相同的输出。 那是因为他们指的是同一个对象。
现在让我们继续装饰。
...
...
@@ -39,31 +39,31 @@ message()
装饰器接受一个函数,对其进行扩展并返回。 是的,
**函数可以返回函数**
。
```
py
def
hello
(
func
):
def
inner
():
print
(
"Hello "
)
func
()
return
inner
def
hello
(
func
):
def
inner
():
print
(
"Hello "
)
func
()
return
inner
def
name
():
print
(
"Alice"
)
def
name
():
print
(
"Alice"
)
obj
=
hello
(
name
)
obj
()
obj
=
hello
(
name
)
obj
()
```
在上面的示例中,
hello()
是装饰器。
在上面的示例中,
`hello()`
是装饰器。
在
语句中
```
py
obj
=
hello
(
name
)
obj
=
hello
(
name
)
```
the function name() is decorated by the function hello().
函数
`name()`
由函数
`hello()`
装饰。
它将功能包装在另一个功能中。
...
...
@@ -74,53 +74,53 @@ the function name() is decorated by the function hello().
可以通过包装功能来扩展它们。
```
py
def
who
():
print
(
"Alice"
)
def
who
():
print
(
"Alice"
)
def
display
(
func
):
def
inner
():
print
(
"The current user is : "
,
end
=
""
)
func
()
return
inner
def
display
(
func
):
def
inner
():
print
(
"The current user is : "
,
end
=
""
)
func
()
return
inner
if
__name__
==
"__main__"
:
myobj
=
display
(
who
)
myobj
()
if
__name__
==
"__main__"
:
myobj
=
display
(
who
)
myobj
()
```
who()函数由 display()
装饰。
`who()`
函数由
`display()`
装饰。
### 语法糖
装饰器是常见的,可以简化。 尽管功能完全相同,但代码更简洁。
Python 可以使用
**@
符号**
简化装饰器的使用。
Python 可以使用
**`@`
符号**
简化装饰器的使用。
```
py
@
hello
def
name
():
print
(
"Alice"
)
@
hello
def
name
():
print
(
"Alice"
)
if
__name__
==
"__main__"
:
name
()
if
__name__
==
"__main__"
:
name
()
```
这将输出完全相同的内容,但是是编写代码的更简洁的方法。
跟我在一起。
通话
跟我在一起。
调用:
```
py
@
hello
def
name
():
@
hello
def
name
():
```
is just a simpler way of writing:
只是一种更简单的书写方式:
```
py
obj
=
hello
(
name
)
obj
=
hello
(
name
)
```
...
...
@@ -128,39 +128,38 @@ obj = hello(name)
### 参数
参数可以与装饰器一起使用。 如果您有一个打印总和
a + b
的功能,例如
参数可以与装饰器一起使用。 如果您有一个打印总和
`a + b`
的功能,例如
```
py
def
sumab
(
a
,
b
):
summed
=
a
+
b
def
sumab
(
a
,
b
):
summed
=
a
+
b
print
(
summed
)
```
您可以将其包装在装饰器函数中。
以下示例显示了如何执行此操作:
您可以将其包装在装饰器函数中。以下示例显示了如何执行此操作:
```
py
def
pretty_sumab
(
func
):
def
inner
(
a
,
b
):
print
(
str
(
a
)
+
" + "
+
str
(
b
)
+
" is "
,
end
=
""
)
return
func
(
a
,
b
)
def
pretty_sumab
(
func
):
def
inner
(
a
,
b
):
print
(
str
(
a
)
+
" + "
+
str
(
b
)
+
" is "
,
end
=
""
)
return
func
(
a
,
b
)
return
inner
return
inner
@
pretty_sumab
def
sumab
(
a
,
b
):
summed
=
a
+
b
print
(
summed
)
@
pretty_sumab
def
sumab
(
a
,
b
):
summed
=
a
+
b
print
(
summed
)
if
__name__
==
"__main__"
:
sumab
(
5
,
3
)
if
__name__
==
"__main__"
:
sumab
(
5
,
3
)
```
函数
sumab 由函数 pretty_sumab 包装。 这用其上方的@
符号表示。
函数
`sumab`
由函数
`pretty_sumab`
包装。 这用其上方的
`@`
符号表示。
调用函数
sumab,并查看带有参数的函数 sumab 和 pretty_sumab
的逻辑都已运行。
调用函数
`sumab`
,并查看带有参数的函数
`sumab`
和
`pretty_sumab`
的逻辑都已运行。
### 真实示例
...
...
@@ -173,46 +172,46 @@ if __name__ == "__main__":
如果您定义了一个休眠的简单函数,则
```
py
def
myFunction
(
n
):
time
.
sleep
(
n
)
def
myFunction
(
n
):
time
.
sleep
(
n
)
```
然后,您只需添加
@measure_time
行即可测量所需的时间
然后,您只需添加
`@measure_time`
行即可测量所需的时间
下面的例子:
```
py
import
time
import
time
def
measure_time
(
func
):
def
measure_time
(
func
):
def
wrapper
(
*
arg
):
t
=
time
.
time
()
res
=
func
(
*
arg
)
print
(
"Function took "
+
str
(
time
.
time
()
-
t
)
+
" seconds to run"
)
return
res
def
wrapper
(
*
arg
):
t
=
time
.
time
()
res
=
func
(
*
arg
)
print
(
"Function took "
+
str
(
time
.
time
()
-
t
)
+
" seconds to run"
)
return
res
return
wrapper
return
wrapper
@
measure_time
def
myFunction
(
n
):
time
.
sleep
(
n
)
@
measure_time
def
myFunction
(
n
):
time
.
sleep
(
n
)
if
__name__
==
"__main__"
:
myFunction
(
2
)
if
__name__
==
"__main__"
:
myFunction
(
2
)
```
这将输出执行函数
myFunction()所花费的时间。 很酷的事情是,通过添加一行代码 _@measure_time_
,我们现在可以测量程序执行时间。
这将输出执行函数
`myFunction()`
所花费的时间。 很酷的事情是,通过添加一行代码
`@measure_time`
,我们现在可以测量程序执行时间。
![
decorator in web app
](
img/5ec64e3c0ecbb2c70baadd00712318da.jpg
)
**用例:Web 应用程序**
让我们以 Web 应用程序的使用案例为例。 在 Flask 中构建 Web 应用程序时,您始终会编写网址路由。
每条路线都是 Web 应用程序中的特定页面。
打开页面/ about 可以调用 about_page()方法。
每条路线都是 Web 应用程序中的特定页面。打开页面
`/about`
可以调用
`about_page()`
方法。
```
py
@
app
.
route
(
"/about"
)
...
...
@@ -221,6 +220,6 @@ def about_page():
```
在这种情况下,它使用
@
符号进行装饰。
在这种情况下,它使用
`@`
符号进行装饰。
[
下载示例和练习
](
https://gum.co/dcsp
)
\ No newline at end of file
docs/54.md
浏览文件 @
8d7df419
...
...
@@ -6,7 +6,7 @@ Python 中的网络服务器可以通过两种方式设置。 Python 开箱即
但是,您也可以创建具有独特功能的自定义 Web 服务器。 在本文中,您将学习如何做到这一点。
此示例中的 Web 服务器只能在本地网络上访问。 它可以是
localhost
或其他网络主机。 您可以使用 VPN 跨位置投放。
此示例中的 Web 服务器只能在本地网络上访问。 它可以是
`localhost`
或其他网络主机。 您可以使用 VPN 跨位置投放。
...
...
@@ -23,7 +23,7 @@ python3 -m http.server
这将在端口 8080 上打开 Web 服务器。然后,您可以在
[
http://127.0.0.1:8080/
](
http://127.0.0.1:8080/
)
中打开浏览器。
也可以使用您的
192.168 .-.-
地址通过网络访问 Web 服务器。
也可以使用您的
`192.168.*.*`
地址通过网络访问 Web 服务器。
这是默认服务器,可用于从计算机下载文件。
...
...
@@ -68,10 +68,10 @@ if __name__ == "__main__":
```
如果打开类似
[
http://127.0.0.1/example
](
http://127.0.0.1/example
)
的网址,则会调用
do_GET()
方法。 我们通过这种方法手动发送网页。
如果打开类似
[
http://127.0.0.1/example
](
http://127.0.0.1/example
)
的网址,则会调用
`do_GET()`
方法。 我们通过这种方法手动发送网页。
![
web server in python 3
](
img/2e75548e489bfe9df1de42082b85a0af.jpg
)
变量
self.path 返回所请求的 Web 浏览器 URL。 在这种情况下,它将是/ example
变量
`self.path`
返回所请求的 Web 浏览器 URL。 在这种情况下,它将是
`/example`
[
下载示例和练习
](
https://gum.co/dcsp
)
\ No newline at end of file
docs/56.md
浏览文件 @
8d7df419
...
...
@@ -2,7 +2,7 @@
> 原文: [https://pythonbasics.org/python-play-sound/](https://pythonbasics.org/python-play-sound/)
在 Python 上播放声音很容易。 有几个模块可以播放声音文件(
.wav
)。
在 Python 上播放声音很容易。 有几个模块可以播放声音文件(
`.wav`
)。
这些解决方案是跨平台的(Windows,Mac,Linux)。
主要区别在于易用性和受支持的文件格式。 所有这些都应与 Python 3 一起使用。除非您指定路径,否则音频文件应与 python 程序位于同一目录中。
...
...
@@ -15,7 +15,7 @@
### `playsound`模块
playsound 模块是可以播放音频文件的跨平台模块。 它没有任何依赖性,只需在您的 virtualenv 中使用 pip
安装并运行即可!
`playsound`
模块是可以播放音频文件的跨平台模块。 它没有任何依赖性,只需在您的
`virtualenv`
中使用
`pip`
安装并运行即可!
```
py
from
playsound
import
playsound
...
...
@@ -23,14 +23,13 @@ playsound('audio.mp3')
```
在平台上的实现是不同的。 它在 Windows 上使用
windll.winm,在 Apple OS X 上使用 AppKit.NSSound,在 Linux 上使用 GStreamer
。
在平台上的实现是不同的。 它在 Windows 上使用
`windll.winm`
,在 Apple OS X 上使用
`AppKit.NSSound`
,在 Linux 上使用
`GStreamer`
。
我已经使用 Python 3.5.3。进行了测试。 这对 WAV 和 MP3 文件均适用。
### `pydub`
您可以使用 pydub 模块播放声音文件。 可以在 pypi 储存库中(随 pip 一起安装)。
此模块可以在下面使用 PyAudio 和 ffmpeg。
您可以使用
`pydub`
模块播放声音文件。 可以在 PyPI 储存库中(随
`pip`
一起安装)。此模块可以在下面使用 PyAudio 和
`ffmpeg`
。
```
py
from
pydub
import
AudioSegment
...
...
@@ -43,9 +42,9 @@ play(song)
### `tksnack`
`tksnack`
模块声音套件可以播放多个音频文件:
_WAV,AU,AIFF,MP3,CSL,SD,SMP 和 NIST / Sphere_
。
`tksnack`
模块声音套件可以播放多个音频文件:
WAV,AU,AIFF,MP3,CSL,SD,SMP 和 NIST/Sphere
。
您可以使用包管理器进行安装:
“ apt install python3-tksnack”。 对于旧版本,有“ python-tksnack”
。
您可以使用包管理器进行安装:
`apt install python3-tksnack`
。 对于旧版本,有
`python-tksnack`
。
该模块取决于 Tkinter。 这意味着要使用此模块播放声音,您还必须导入 gui 模块 Tkinter。 该模块似乎暂时没有更新。
...
...
@@ -64,7 +63,7 @@ snd.play(blocking=1)
### 本机播放器
您还可以在系统上本地播放声音。 这要求您在终端上安装某种音频播放器。 在 Linux 上,您可以使用
mpg123
。
您还可以在系统上本地播放声音。 这要求您在终端上安装某种音频播放器。 在 Linux 上,您可以使用
`mpg123`
。
这只是通过外部播放器播放 mp3 文件。
...
...
docs/58.md
浏览文件 @
8d7df419
...
...
@@ -4,7 +4,7 @@
您可以在 Python 中将 MP3 直接转换为 WAV。 在本文中,我们将使用 Python 3 进行转换。 对于本教程,任何文件都可以使用。
首先,请先安装
ffmpeg。 ffmpeg
是用于音频,视频和多媒体处理的免费程序。 该程序具有控制台界面,但是除了安装它外,没有什么必要。
首先,请先安装
`ffmpeg`
。
`ffmpeg`
是用于音频,视频和多媒体处理的免费程序。 该程序具有控制台界面,但是除了安装它外,没有什么必要。
...
...
@@ -12,16 +12,16 @@
### `pydub`
安装模块
pydub。 这是 Python 的音频处理模块。 该模块可以打开许多多媒体音频和视频格式。 您可以使用 pip
安装此模块。
安装模块
`pydub`
。 这是 Python 的音频处理模块。 该模块可以打开许多多媒体音频和视频格式。 您可以使用
`pip`
安装此模块。
```
py
pip
install
pydub
```
如果尚未安装
ffmpeg
,请安装它。 您可以使用包管理器来执行此操作。
如果尚未安装
`ffmpeg`
,请安装它。 您可以使用包管理器来执行此操作。
对于 Ubuntu
/
Debian Linux:
对于 Ubuntu
/
Debian Linux:
```
py
apt
-
get
install
ffmpeg
...
...
@@ -30,9 +30,9 @@ apt-get install ffmpeg
### MP3 到 WAV 的转换
您可以通过更改变量名称将 mp3 文件(
src)转换为 wav 文件(dst
)。
您可以通过更改变量名称将 mp3 文件(
源)转换为 wav 文件(目标
)。
mp3 文件必须与程序(
.py
)位于同一目录中。 如果要使用自定义目录,请在文件名中添加路径。
mp3 文件必须与程序(
`.py`
)位于同一目录中。 如果要使用自定义目录,请在文件名中添加路径。
```
py
from
os
import
path
...
...
@@ -48,7 +48,7 @@ sound.export(dst, format="wav")
```
上面的程序使用
pydub 模块进行转换。 该模块本身使用 ffmpeg,这意味着必须安装 ffmpeg
才能成功。
上面的程序使用
`pydub`
模块进行转换。 该模块本身使用
`ffmpeg`
,这意味着必须安装
`ffmpeg`
才能成功。
运行:
...
...
docs/59.md
浏览文件 @
8d7df419
...
...
@@ -12,7 +12,7 @@
## 示例
首先创建带有语音的音频文件。 这可以是任何带有英语单词的音频文件。 将文件另存为
_transcript.mp3_
首先创建带有语音的音频文件。 这可以是任何带有英语单词的音频文件。 将文件另存为
`transcript.mp3`
如果不确定从哪里获得语音音频文件,则可以使用
[
Bluemix
](
https://text-to-speech-demo.ng.bluemix.net/
)
生成一个语音文件。
...
...
@@ -25,7 +25,7 @@
*
程序 ffmpeg
*
模块语音识别
您可以使用 pip 安装 Python 模块。
ffmpeg 可以与您的软件包管理器一起安装(apt-get,emerge,yum,pacman
)
您可以使用 pip 安装 Python 模块。
`ffmpeg`
可以与您的软件包管理器一起安装(
`apt-get`
,
`emerge`
,
`yum`
,
`pacman`
)
### 转录
...
...
@@ -35,7 +35,7 @@
2.
加载音频文件,
3.
将音频文件提供给特定的识别系统。
复制下面的程序,并将其另存为
_transcribe.py_
复制下面的程序,并将其另存为
`transcribe.py`
```
py
import
speech_recognition
as
sr
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录