From 8d7df4191ace1a96aca19b5aab0d49232085a3ca Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Thu, 5 Dec 2019 12:02:11 +0800 Subject: [PATCH] 2019-12-05 12:02:10 --- docs/51.md | 5 +- docs/52.md | 17 +++--- docs/53.md | 159 ++++++++++++++++++++++++++--------------------------- docs/54.md | 8 +-- docs/56.md | 15 +++-- docs/58.md | 14 ++--- docs/59.md | 6 +- 7 files changed, 109 insertions(+), 115 deletions(-) diff --git a/docs/51.md b/docs/51.md index a8ca1fb..f37bdd4 100644 --- a/docs/51.md +++ b/docs/51.md @@ -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 diff --git a/docs/52.md b/docs/52.md index 1dbc2d1..8da9022 100644 --- a/docs/52.md +++ b/docs/52.md @@ -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 diff --git a/docs/53.md b/docs/53.md index 690f5d3..818e539 100644 --- a/docs/53.md +++ b/docs/53.md @@ -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 diff --git a/docs/54.md b/docs/54.md index a2023df..a8bbabd 100644 --- a/docs/54.md +++ b/docs/54.md @@ -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 diff --git a/docs/56.md b/docs/56.md index d09ebde..0bca3a6 100644 --- a/docs/56.md +++ b/docs/56.md @@ -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 文件。 diff --git a/docs/58.md b/docs/58.md index 015e4c7..5d3aba6 100644 --- a/docs/58.md +++ b/docs/58.md @@ -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`才能成功。 运行: diff --git a/docs/59.md b/docs/59.md index 02f1dea..908d787 100644 --- a/docs/59.md +++ b/docs/59.md @@ -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 -- GitLab