Python-自动化指南-繁琐工作自动化-第三版-十五-
Python 自动化指南(繁琐工作自动化)第三版(十五)
原文:
automatetheboringstuff.com/译者:飞龙
A 安装第三方包

许多开发者已经编写了自己的模块,扩展了 Python 之外的功能,这些功能由与 Python 一起打包的标准库提供。访问第三方包的主要方式是使用 Python 的 pip 工具,该工具从 Python 包索引(PyPI)网站安全地下载并安装模块,这是一个 Python 模块的免费应用商店。本附录提供了安装本书中使用的包的说明。
关于使用命令行、虚拟环境、包和模块的一般信息,请参阅第十二章。
安装 pip
pip 工具的可执行文件在 Windows 上命名为 pip,在 macOS 和 Linux 上命名为 pip3。自 Python 3.4 版本以来,pip 工具已包含在 Python 中。然而,某些 Linux 发行版可能没有预先安装它。
在 Ubuntu 或 Debian Linux 上安装 pip3,请打开一个新的终端窗口并输入 sudo apt install python3-pip。在 Fedora Linux 上安装 pip3,请输入 sudo yum install python3-pip。这些命令会要求您输入计算机的管理员密码。
查找 pip
如果 pip 的文件夹未包含在 PATH 环境变量中,您可能需要在终端窗口中通过 cd 命令更改目录,然后再运行 pip。首先,在 Windows 上通过运行 echo %USERNAME% 或者在 macOS 和 Linux 上运行 whoami 来查找您的用户名。
然后,在 Windows 上,运行以下命令,指定您的用户名并调整文件夹名称以匹配您安装的 Python 版本:
C:\Users\al>cd C:\Users\your_username\AppData\Local\Programs\Python\Python313\Scripts
在 macOS 上,运行以下命令代替(确保指定正确的文件夹名称):
al@Als-MacBook-Pro ~ %cd /Library/Frameworks/Python.framework/Versions/3.13/bin/
在 Linux 上,运行此命令,指定您的用户名:
al@al-VirtualBox:~$ cd /home/your_username/.local/bin/
您现在应该位于可以运行 pip 工具的正确文件夹中。或者,您可以通过遵循第十二章中“PATH 环境变量”的说明将这些文件夹添加到 PATH 环境变量中。
在虚拟环境中运行 pip
一些操作系统可能不允许您在没有首先使用 Python 内置的 venv 模块创建和激活虚拟环境的情况下运行 pip。对于学习 Python 和实验代码,为所有程序创建一个虚拟环境是可以的。有关更多详细信息,请参阅第十二章的“虚拟环境”。
安装本书使用的包
由于第三方包的将来更改可能与本书中的代码示例不兼容,我建议您通过在模块名称末尾添加 == 版本来安装本书中使用的确切版本。(注意此命令行选项中的两个等号。)例如,pip install send2trash==1.8.3 安装 send2trash 包的 1.8.3 版本。
一次性安装所有兼容包的最简单方法是安装 automateboringstuff3 包。只要第三方包的新版本与本书的代码示例兼容,我就会更新此包。如果您想安装最新版本,请查阅它们的在线文档以获取更新的使用信息。
在 Windows 上,运行以下命令:
C:\Users\al>python –m pip install automateboringstuff3
在 macOS 和 Linux 上,运行以下命令:
al@Als-MacBook-Pro ~ % python3 –m pip install automateboringstuff3
要在 Linux 上安装第二十三章的 PyAutoGUI 包,您必须采取额外步骤。打开终端窗口并运行 sudo apt install python3-tk 和 sudo apt install python3-dev。为了在 Linux 上使第八章的 pyperclip 模块正常工作,您必须运行 sudo apt install xclip。您将需要计算机的管理员密码。
截至出版时,以下命令安装了以下版本的包:
beautifulsoup4 == 4.12.3
matplotlib==3.92
openpyxl==3.1.5
pdfminer.six==20240706
pillow==10.4.0
playsound3==2.4.0
playwright==1.47.0
PyPDF==5.0.1
python-docx==1.1.2
pyttsx3 == 2.98
requests==2.32.3
selenium==4.25.0
send2trash==1.8.3
xmltodict==0.13.0
此外,automateboringstuff3 包始终安装这些包的最新版本:
bext
ezgmail
ezsheets
humre
pyautogui
pymsgbox
pyperclip
pyperclipimg
yt-dlp
Playwright 包需要额外一步来安装模块使用的独立浏览器。在安装 automateboringstuff3 包之后,运行 playwright install 来安装 Playwright 使用的浏览器。
第二十二章中介绍的 pytesseract 包和第二十四章中介绍的 openai-whisper 包相当大,一些读者可能不想安装它们,因此我已将它们排除在 automateboringstuff3 包之外。您可以通过在 Windows 上运行以下命令来安装它们:
C:\Users\al>pip install pytesseract==0.3.10
C:\Users\al>pip install openai-whisper==20231117
在 macOS 和 Linux 上,运行以下命令:
al@Als-MacBook-Pro ~ % pip3 install pytesseract==0.3.10
al@Als-MacBook-Pro ~ % pip3 install openai-whisper==20231117
如果您在 Windows 上安装 Whisper,您可能会看到如下错误:
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.1 as it may crash
您可以通过运行 pip install "numpy<2" 来降级 NumPy 到兼容版本。请确保包含双引号。
此外,Whisper 包可以利用您的计算机的 NVIDIA 显卡(GPU)来更快地执行语音识别,如果您运行以下命令:
C:\Users\al>pip install torch torchvision torchaudio --index-url
https://download.pytorch.org/whl/cu118
非 NVIDIA 品牌的 GPU 计算机不支持此功能,包括所有 MacBook。
安装 pip
pip 工具的可执行文件在 Windows 上命名为 pip,在 macOS 和 Linux 上命名为 pip3。自 Python 3.4 版本以来,pip 工具已包含在 Python 中。然而,某些 Linux 发行版可能没有预安装它。
要在 Ubuntu 或 Debian Linux 上安装 pip3,请打开一个新的终端窗口并输入 sudo apt install python3-pip。要在 Fedora Linux 上安装 pip3,请输入 sudo yum install python3-pip。这些命令会要求您输入计算机的管理员密码。
查找 pip
如果 pip 的文件夹未包含在 PATH 环境变量中,您可能需要在终端窗口中使用 cd 命令更改目录,然后再运行 pip。首先,在 Windows 上通过运行 echo %USERNAME% 或者在 macOS 和 Linux 上运行 whoami 来查找您的用户名。
然后,在 Windows 上,运行以下命令,指定您的用户名并调整文件夹名称以匹配您安装的 Python 版本:
C:\Users\al>cd C:\Users\your_username\AppData\Local\Programs\Python\Python313\Scripts
在 macOS 上,运行以下命令(确保指定正确的文件夹名称):
al@Als-MacBook-Pro ~ %cd /Library/Frameworks/Python.framework/Versions/3.13/bin/
在 Linux 上,运行以下命令,指定您的用户名:
al@al-VirtualBox:~$ cd /home/your_username/.local/bin/
现在,您应该处于可以运行 pip 工具的正确文件夹中。或者,您可以按照第十二章中“PATH 环境变量”的说明将这些文件夹添加到PATH环境变量中。
在虚拟环境中运行 pip
一些操作系统可能不允许您在没有首先使用 Python 内置的venv模块创建和激活虚拟环境的情况下运行 pip。对于学习 Python 和实验代码,为所有程序创建一个虚拟环境是可以的。有关更多详细信息,请参阅第十二章中的“虚拟环境”。
安装本书中使用的包
由于第三方包的将来更改可能与本书中的代码示例不兼容,我建议您通过在模块名称末尾添加==版本号来安装本书中使用的确切版本。(注意此命令行选项中的两个等号。)例如,pip install send2trash==1.8.3将安装 send2trash 包的 1.8.3 版本。
一次性安装所有兼容包的最简单方法是安装 automateboringstuff3 包。只要第三方包的新版本与本书的代码示例兼容,我就会更新此包。如果您想安装最新版本,请查阅它们的在线文档以获取更新的使用信息。
在 Windows 上,运行以下命令:
C:\Users\al>python –m pip install automateboringstuff3
在 macOS 和 Linux 上,运行此命令:
al@Als-MacBook-Pro ~ % python3 –m pip install automateboringstuff3
要在 Linux 上安装第二十三章的 PyAutoGUI 包,您必须采取额外步骤。打开一个终端窗口,并运行sudo apt install python3-tk和sudo apt install python3-dev。为了在 Linux 上使第八章的pyperclip模块正常工作,您必须运行sudo apt install xclip。您将需要计算机的管理员密码。
截至出版时,以下命令安装了以下版本的包:
beautifulsoup4 == 4.12.3
matplotlib==3.92
openpyxl==3.1.5
pdfminer.six==20240706
pillow==10.4.0
playsound3==2.4.0
playwright==1.47.0
PyPDF==5.0.1
python-docx==1.1.2
pyttsx3 == 2.98
requests==2.32.3
selenium==4.25.0
send2trash==1.8.3
xmltodict==0.13.0
此外,automateboringstuff3 包始终安装这些包的最新版本:
bext
ezgmail
ezsheets
humre
pyautogui
pymsgbox
pyperclip
pyperclipimg
yt-dlp
Playwright 包需要额外一步来安装模块使用的单独浏览器。安装 automateboringstuff3 包后,运行playwright install来安装 Playwright 使用的浏览器。
第二十二章中介绍的 pytesseract 包和第二十四章中介绍的 openai-whisper 包相当大,有些读者可能不想安装它们,因此我已将它们从 automateboringstuff3 包中排除。您可以通过在 Windows 上运行以下命令来安装它们:
C:\Users\al>pip install pytesseract==0.3.10
C:\Users\al>pip install openai-whisper==20231117
在 macOS 和 Linux 上,运行以下命令:
al@Als-MacBook-Pro ~ % pip3 install pytesseract==0.3.10
al@Als-MacBook-Pro ~ % pip3 install openai-whisper==20231117
如果您在 Windows 上安装 Whisper 时,可能会看到如下错误:
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.1 as it may crash
您可以通过运行pip install "numpy<2"来降级 NumPy 到兼容版本。请确保包含双引号。
此外,Whisper 包可以利用您的计算机的 NVIDIA 显卡(GPU)在运行此命令时更快地执行语音识别:
C:\Users\al>pip install torch torchvision torchaudio --index-url
https://download.pytorch.org/whl/cu118
非 NVIDIA 品牌 GPU 的电脑,包括所有 MacBook,均不支持此功能。
索引
B 练习题答案

本附录包含每章末尾的练习题答案。我强烈建议你花时间完成这些题目。编程不仅仅是记忆语法和函数名列表。就像学习一门外语一样,你投入的练习越多,你得到的回报就越多。还有很多网站提供练习编程问题。
当涉及到练习程序时,没有唯一正确的解决方案。只要你的程序执行了项目要求的功能,你就可以认为它是正确的。然而,如果你想查看已完成项目的示例,它们可以在“下载本书使用的文件”链接中找到,链接为nostarch.com/automate-boring-stuff-python-3rd-edition。
第一章
1. 运算符是 +、-、* 和 /。值是 'hello'、-88.8 和 5。
2. 字符串是 'spam';变量是 spam。字符串始终以引号开头和结尾。
3. 本章介绍了三种数据类型:整数、浮点数和字符串。
4. 表达式是值和运算符的组合。所有表达式都会评估(即简化)为单个值。
5. 表达式评估为单个值。语句则不会。
6. bacon 变量被设置为 20。bacon + 1 表达式不会重新分配 bacon 中的值(这需要一个赋值语句:bacon = bacon + 1)。
7. 两个表达式都评估为字符串 'spamspamspam'。
8. 变量名不能以数字开头。
9. int()、float() 和 str() 函数将评估为传递给它们的值的整数、浮点数和字符串版本。
10. 该表达式会导致错误,因为 99 是一个整数,而只有字符串可以用 + 运算符与其他字符串连接。正确的方式是 I have eaten ' + str(99) + ' burritos.'
第二章
1. True 和 False,使用大写的 T 和 F,其余单词小写。
2. and、or 和 not
3. True and True 是 True。
True and False 是 False。
False and True 是 False。
False and False 是 False。
True or True 是 True。
True or False 是 True。
False or True 是 True。
False or False 是 False。
not True 是 False。
not False 是 True。
4. False
False
True
False
False
True
5. ==、!=、<、>、<= 和 >=
6. == 是等于运算符,用于比较两个值并评估为布尔值,而 = 是赋值运算符,用于将值存储在变量中。
7. 条件是一个用于流程控制语句的表达式,其评估结果为布尔值。
print('bacon')和print('ham')各自是独立的代码块,第三个代码块是从if spam == 10:之后到最后的print('Done')之前的内容:
print('eggs')
if spam > 5:
print('bacon')
else:
print('ham')
print('spam')
- 代码:
if spam == 1:
print('Hello')
elif spam == 2:
print('Howdy')
else:
print('Greetings!')
第五章
-
按下 CTRL-C 来停止陷入无限循环的程序。
-
break语句将执行移动到循环外部,并在循环之后。continue语句将执行移动到循环的开始。 -
它们都做同样的事情。
range(10)调用从0开始到(但不包括)10,range(0, 10)明确告诉循环从0开始,而range(0, 10, 1)明确告诉循环在每次迭代中变量增加1。 -
代码:
for i in range(1, 11):
print(i)
和:
i = 1
while i <= 10:
print(i)
i = i + 1
- 这个函数可以用
spam.bacon()来调用。
第五章
-
函数减少了重复代码的需求。这使得程序更短,更容易阅读,也更容易更新。
-
函数中的代码在函数被调用时执行,而不是在函数定义时执行。
-
def语句定义(即创建)了一个函数。 -
函数由
def语句及其def子句中的代码组成。函数调用是将程序执行移动到函数中的操作,函数调用返回函数的返回值。 -
存在一个全局作用域,每当调用一个函数时,就会创建一个局部作用域。
-
当函数返回时,局部作用域被销毁,其中的所有变量都被遗忘。
-
返回值是函数调用评估到的值。像任何值一样,返回值可以用作表达式的一部分。
-
如果函数没有返回语句,它的返回值是
None。 -
global语句将强制函数中的变量引用全局变量。 -
None的数据类型是NoneType。 -
那个
import语句导入了名为areallyourpetsnamederic的模块。(顺便说一下,这不是一个真正的 Python 模块。) -
这个函数可以用
spam.bacon()来调用。 -
将可能引发错误的代码行放在
try子句中。 -
可能引发错误的代码放在
try子句中。如果发生错误,执行的代码放在except子句中。 -
random_number全局变量被设置为一次随机数,get_random_dice_roll()函数中的random_number变量使用全局变量。这意味着每次get_random_dice_roll()函数调用都会返回相同的数字。
第五章
-
assert spam >= 10, 'The spam variable is less than 10.' -
要么是
assert eggs.lower() != bacon.lower() 'The eggs and bacon variables are the same!',要么是assert eggs.upper() != bacon.upper(), 'The eggs and bacon variables are the same!' -
assert False, 'This assertion always triggers.' -
要能够调用
logging.debug(),你必须在程序开始时添加这两行代码:
import logging
logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s -
%(levelname)s - %(message)s')
5. 要能够使用 logging.debug() 将日志消息发送到名为 programLog.txt 的文件,你必须在程序开始时包含这两行:
import logging
logging.basicConfig(filename='programLog.txt', level=logging.DEBUG,
format=' %(asctime)s - %(levelname)s - %(message)s')
6. DEBUG、INFO、WARNING、ERROR 和 CRITICAL
7. logging.disable(logging.CRITICAL)
8. 你可以禁用日志消息而不删除日志函数调用。你可以选择性地禁用低级别的日志消息。你可以创建日志消息。日志消息提供时间戳。
9. “进入”按钮会将调试器移动到函数调用中。 “单步执行”按钮将快速执行函数调用而不进入它。 “退出”按钮将快速执行剩余的代码,直到它退出当前函数。
10. 在点击继续后,当调试器到达程序末尾或带有断点的行时,它会停止。
11. 断点是在代码行上的一个设置,当程序执行到达该行时,调试器会暂停。
12. 要在 Mu 中设置断点,请单击行号,使其旁边出现一个红色圆点。
第六章
1. 空列表值,这是一个不包含任何项的列表值。这与 '' 是空字符串值的方式相似。
2. spam[2] = 'hello' (注意,列表中的第三个值位于索引 2,因为第一个索引是 0。)
3. 'd' (注意,'3' * 2 是字符串 '33',在除以 11 之前传递给 int()。这最终计算为 3。表达式可以在使用值的地方使用。)
4. 'd' (负索引从末尾开始计算。)
5. ['a', 'b']
6. 1
7. [3.14, 'cat', 11, 'cat', True, 99]
8. [3.14, 11, 'cat', True]
9. 列表连接的运算符是 +,而复制的运算符是 *。 (这与字符串相同。)
10. 虽然 append() 只会将值添加到列表的末尾,但 insert() 可以将它们添加到列表的任何位置。
11. del 语句和 remove() 列表方法是从列表中删除值的两种方式。
12. 列表和字符串都可以传递给 len(),有索引和切片,可以在 for 循环中使用,可以连接或复制,并且可以使用 in 和 not in 运算符。
13. 列表是可变的;它们可以添加、删除或更改值。元组是不可变的;它们根本不能更改。此外,元组使用括号 ( 和 ) 编写,而列表使用方括号 [ 和 ]。
14. (42,) (尾随逗号是强制性的。)
15. tuple() 和 list() 函数,分别。
16. 它们包含对列表值的引用。
17. copy.copy() 函数将对列表执行浅拷贝,而 copy.deepcopy() 函数将对列表执行深拷贝。也就是说,只有 copy .deepcopy() 会复制列表内部的任何列表。
第七章
1. 两个花括号:{}
2. {'foo': 42}
3. 字典中存储的项是无序的,而列表中的项是有序的。
4. 你会得到一个 KeyError 错误。
-
没有区别。
in操作符检查值是否作为字典中的键存在。 -
表达式
'cat' in spam检查字典中是否存在'cat'键,而'cat' in spam.values()检查spam中某个键是否有值'cat'。 -
spam.setdefault('color', 'black') -
pprint.pprint()
第八章
-
转义字符表示在字符串值中难以或无法直接键入的字符。
-
转义字符
\n代表换行;转义字符\t代表制表符。 -
转义字符
\\将代表反斜杠字符。 -
Howl's中的单引号是好的,因为你已经使用双引号来标记字符串的开始和结束。 -
多行字符串允许你在字符串中使用换行符而不需要
\n转义字符。 -
表达式计算结果如下:
'e'
'Hello'
'Hello'
'lo world!'
- 表达式计算结果如下:
'HELLO'
True
'hello'
- 表达式计算结果如下:
['Remember,', 'remember,', 'the', 'fifth', 'of', 'November.']
'There-can-be-only-one.'
-
分别是
rjust(),ljust(), 和center()字符串方法。 -
lstrip()和rstrip()方法分别从字符串的左右两端移除空白字符。
第九章
-
re.compile()函数创建Regex对象。 -
使用原始字符串是为了避免转义反斜杠。
-
search()方法返回Match对象。 -
group()方法返回匹配文本的字符串。 -
组
0是整个匹配,组1覆盖第一组括号,组2覆盖第二组括号。 -
句点和括号可以用反斜杠转义:
\.,\(, 和\)。 -
如果正则表达式没有组,则返回字符串列表。如果正则表达式有组,则返回字符串元组的列表。
-
|字符表示在两个组之间进行“或者”匹配。 -
?字符可以表示“匹配前一个组零个或一个”或用于表示非贪婪匹配。 -
+匹配一个或多个。*匹配零个或多个。 -
{3}匹配前一个组的恰好三个实例。{3,5}匹配三个到五个实例。 -
\d,\w, 和\s简写字符类分别匹配一个数字、单词或空格字符。 -
\D,\W, 和\S简写字符类分别匹配一个非数字、非单词或非空格字符。 -
.*执行贪婪匹配,而.*?执行非贪婪匹配。 -
要么是
[0-9a-z],要么是[a-z0-9]。 -
将
re.I或re.IGNORECASE作为re.compile()的第二个参数传递将使匹配不区分大小写。
17. . 字符通常匹配除换行符以外的任何字符。如果将 re.DOTALL 作为 re.compile() 的第二个参数传递,则点号也将匹配换行符。
18. sub() 调用将返回字符串 'X 鼓手,X 吹笛者,五个戒指,X 母鸡'。
19. re.VERBOSE 参数允许你在传递给 re.compile() 的字符串中添加空白和注释。
第十章
1. 相对路径相对于当前工作目录。
2. 绝对路径以根文件夹开始,例如 /* 或 *C:\*。
3. 在 Windows 上,它评估为 WindowsPath('C:/Users/Al')。在其他操作系统上,它评估为不同类型的 Path 对象,但具有相同的路径。
4. 表达式 'C:/Users' / 'Al' 会导致错误,因为不能使用 / 操作符来连接两个字符串。
5. os.getcwd() 函数 返回 当前工作目录。os.chdir() 函数 更改 当前工作目录。
6. . 文件夹是当前文件夹,而 .. 是父文件夹。
7. *C:\bacon\eggs* 是目录名,而 *spam.txt* 是基本名称。
8. 字符串 'r' 用于读取模式,'w' 用于写入模式,'a' 用于追加模式。
9. 以写入模式打开的现有文件将被擦除并完全覆盖。
10. read() 方法返回文件的全部内容作为一个单独的字符串值。readlines() 方法返回一个字符串列表,其中每个字符串都是文件内容的某一行。
11. shelf 值类似于字典值;它有键和值,以及 keys() 和 values() 方法,这些方法与同名的字典方法类似。
第十一章
1. shutil.copy() 函数将复制单个文件,而 shutil.copytree() 将复制整个文件夹及其所有内容。
2. shutil.move() 函数用于重命名文件以及移动它们。
3. send2trash 函数将文件或文件夹移动到回收站,而 shutil 将永久删除文件和文件夹。
4. zipfile.ZipFile() 函数与 open() 函数等价;第一个参数是文件名,第二个参数是打开 ZIP 文件的模式(读取、写入或追加)。
第十二章
1. dir 命令在 Windows 上列出文件夹内容。ls 命令在 macOS 和 Linux 上列出文件夹内容。
2. PATH 环境变量包含了一个列表,当在终端输入程序名称时,会检查这些文件夹。
3. __file__ 变量包含当前正在运行的 Python 脚本的文件名。在交互式外壳中不存在此变量。
4. cls 命令在 Windows 上清除终端,而 clear 命令在 macOS 和 Linux 上执行此操作。
5. 在 Windows 上运行 python -m venv .venv,或在 macOS 和 Linux 上运行 python3 -m venv .venv。
6. 在 Windows 上运行 python -m PyInstaller --onefile yourScript.py,或在 macOS 和 Linux 上运行 python3 -m PyInstaller --onefile yourScript.py。
第十三章
1. webbrowser 模块有一个 open() 方法,可以启动一个网络浏览器到特定的 URL,仅此而已。requests 模块可以从网络下载文件和页面。bs4 模块解析 HTML。
2. requests.get() 函数返回一个 Response 对象,该对象有一个 text 属性,其中包含以字符串形式下载的内容。
3. 如果下载有问题,raise_for_status() 方法会引发异常,如果下载成功则不执行任何操作。
4. Response 对象的 status_code 属性包含 HTTP 状态码。
5. 在计算机上以 'wb' “写二进制”模式打开新文件后,使用一个遍历 Response 对象的 iter_content() 方法的 for 循环,将块写入文件。以下是一个示例:
saveFile = open('filename.html', 'wb')
for chunk in res.iter_content(100000):
saveFile.write(chunk)
6. 大多数在线 API 返回其响应格式为 JSON 或 XML。
7. 按 F12 会在 Chrome 中打开开发者工具。在 Windows 和 Linux 上按 CTRL-SHIFT-C,或在 OS X 上按-OPTION-C,会在 Firefox 中打开开发者工具。
8. 在页面中右键单击元素,并从菜单中选择“检查元素”。
9. '#main'
10. '.highlight'
11. spam.gettext()
12. linkElem.attrs
13. 使用 from selenium import webdriver 导入 selenium 模块。
14. find_element_* 方法返回第一个匹配元素作为 WebElement 对象。find_elements_* 方法返回所有匹配元素作为 WebElement 对象的列表。
15. click() 和 send_keys() 方法分别模拟鼠标点击和键盘按键。
16. press('Control+A') 方法模拟按下 CTRL-A。
17. forward()、back() 和 refresh() WebDriver 对象方法模拟这些浏览器按钮。
18. go_forward()、go_back() 和 reload() Page 对象方法模拟这些浏览器按钮。
第十四章
1. openpyxl.load_workbook() 函数返回一个 Workbook 对象。
2. sheetnames 属性包含一个包含工作表标题的字符串列表。
3. 运行 wb['Sheet1']。
4. 使用 wb.active。
5. sheet['C5'].value 或 sheet.cell(row=5, column=3).value
6. sheet['C5'] = 'Hello' 或 sheet.cell(row=5, column=3).value = 'Hello'
7. cell.row 和 cell.column
8. 它们分别以整数形式持有工作表中的最大列和行值。
9. openpyxl.cell.column_index_from_string('M')
10. openpyxl.cell.get_column_letter(14)
11. sheet['A1':'F1']
12. wb.save('example3.xlsx')
13. 设置公式的方式与任何值相同。将单元格的 value 属性设置为公式文本的字符串。记住,公式以等号(=)开头。
14. 在调用 load_workbook() 时传递 data_only=True,使 OpenPyXL 获取公式的计算结果。
15. sheet.row_dimensions[5].height = 100
16. sheet.column_dimensions['C'].hidden = True
17. 冻结窗格是始终出现在屏幕上的行和列。它们对于标题很有用。
openpyxl.chart.Reference()、openpyxl.chart.Series()、openpyxl.chart.BarChart()、chartObj.append(seriesObj)和add_chart()
第十五章
-
要访问 Google Sheets,你需要一个凭证文件、一个 Google Sheets 的令牌文件和一个 Google Drive 的令牌文件。
-
EZSheets 有
ezsheets.Spreadsheet和ezsheets.Sheet对象。 -
调用
downloadAsExcel() Spreadsheet方法。 -
调用
ezsheets.upload()函数并传递 Excel 文件的文件名。 -
读取
ss['Students']['B2']的值。 -
调用
ezsheets.getColumnLetterOf(999)。 -
访问
Sheet对象的rowCount和columnCount属性。 -
调用
delete() Sheet方法。这只有在传递permanent=True关键字参数时才是永久的。 -
Spreadsheet()函数和Sheet() Spreadsheet方法分别创建Spreadsheet和Sheet对象。 -
EZSheets 会限制你的方法调用。
第十六章
-
conn = sqlite3.connect('example.db', isolation_level=None) -
conn.execute('CREATE TABLE students (first_name TEXT, last_name TEXT, favorite_color TEXT) STRICT') -
调用
sqlite3.connect()时传递isolation_level=None关键字参数。 -
INTEGER类似于 Python 的 int 类型,而REAL类似于 Python 的 float 类型。 -
严格模式添加了一个要求,即每个列都必须有数据类型,如果你尝试插入错误类型的数据,SQLite 会抛出异常。
-
*表示“选择表中的所有列。” -
CRUD 代表创建(Create)、读取(Read)、更新(Update)和删除(Delete),这是数据库执行的四个标准操作。
-
ACID 代表原子性(Atomic)、一致性(Consistent)、隔离性(Isolated)和持久性(Durable),这是数据库事务应该具有的四个属性。
-
INSERT查询向表中添加新记录。 -
DELETE查询从表中删除记录。 -
没有使用
WHERE子句,UPDATE查询将应用于表中的所有记录,这可能是也可能不是你想要的。 -
索引是一种组织列数据的结构,它占用更多的存储空间,但可以使查询更快。
'CREATE INDEX idx_birthdate ON cats (birthdate)'将为cats表的birthdate列创建索引。 -
外键将一个表中的记录链接到另一个表中的记录。
-
你可以通过运行查询
'DROP TABLE cats'来删除名为cats的表。 -
字符串
':memory:'用作文件名替代,以创建内存数据库。 -
iterdump()方法可以创建复制数据库的查询。你也可以直接复制数据库文件。
第十七章
-
通过将
'w'传递给open()来以写入模式打开File对象。 -
调用
getPage(4)将返回第 5 页的Page对象,因为页面 0 是第一页。 -
调用
decrypt('swordfish')。 -
通过传递一个负整数逆时针旋转页面:
-90、-180或-270。 -
docx.Document('demo.docx') -
使用
doc.paragraphs获取Paragraph对象的列表。
7. Paragraph 对象代表一段文本,它本身由一个或多个 Run 对象组成。
8. Run 对象有这些变量(不是 Paragraph 对象)。
9. True 总是使 Run 对象加粗,而 False 总是使其不加粗,无论样式的加粗设置如何。None 将使 Run 对象仅使用样式的加粗设置。
10. 调用 docx.Document() 函数。
11. doc.add_paragraph('Hello there!')
12. 整数 0 到 9。
第十八章
1. 在 Excel 中,电子表格可以包含除字符串之外的数据类型;单元格可以有不同的字体、大小或颜色设置;单元格可以有不同宽度和高度;相邻的单元格可以合并;并且可以嵌入图片和图表。
2. 您传递一个 File 对象,该对象是通过调用 open() 获得的。
3. File 对象需要以读取二进制('rb')模式为 Reader 对象打开,以写入二进制('wb')模式为 Writer 对象打开。
4. writerow() 方法。
5. delimiter 参数更改用于分隔行中单元格的字符串。lineterminator 参数更改用于分隔行的字符串。
6. 所有这些都可以用文本编辑器轻松编辑:CSV、JSON 和 XML 都是纯文本格式。
7. json.loads()
8. json.dumps()
9. XML 的格式类似于 HTML。
10. JSON 将 None 值表示为关键字 null。
11. JSON 中的布尔值以小写形式书写:true 和 false。
第十九章
1. 许多日期和时间程序使用的参考时刻。这个时刻是 1970 年 1 月 1 日,UTC。
2. time.time()
3. time.asctime()
4. time.sleep(5)
5. 它返回与传递的参数最接近的整数。例如,round(2.4) 返回 2。
6. datetime 对象代表特定的时间点。timedelta 对象代表一段时间。
7. 运行 datetime.datetime(2019, 1, 7).weekday(),它返回 0。这意味着星期一,因为 datetime 模块使用 0 表示星期一,1 表示星期二,以此类推,直到 6 表示星期日。
第二十章
1. credentials.json 和 token.json 文件告诉 EZGmail 模块在访问 Gmail 时使用哪个 Google 账户。
2. 消息代表一封单独的电子邮件,而涉及多封电子邮件的来回对话是一个线程。
3. 在传递给 search() 的字符串中包含 'has:attachment' 文本。
4. 短信电子邮件网关不一定能正常工作,不会通知您消息是否已送达,而且之前能正常工作并不意味着它们会再次工作。
5. Requests 库可以发送和接收 ntfy 通知。
第二十一章
1. RGBA 值是一个包含四个整数的元组,每个整数的范围从 0 到 255。这四个整数对应于颜色中的红色、绿色、蓝色和 alpha(透明度)的数量。
2. 调用 ImageColor.getcolor('CornflowerBlue', 'RGBA') 将返回 (100, 149, 237, 255),这是矢车菊蓝颜色的 RGBA 值。
-
箱子元组是四个整数的元组值:左边缘 x 坐标、上边缘 y 坐标、宽度和高度,分别对应。
-
Image.open('zophie.png') -
im.size是一个包含两个整数的元组,分别是宽度和高度。 -
im.crop((0, 50, 50, 50))。注意,你正在传递一个盒子元组给crop(),而不是四个单独的整数参数。 -
调用
Image对象的im.save('new_filename.png')方法。 -
ImageDraw模块包含在图像上绘制的代码。 -
ImageDraw对象具有形状绘制方法,如point()、line()或rectangle()。它们是通过将Image对象传递给ImageDraw.Draw()函数返回的。 -
plt.plot()创建折线图,plt.scatter()创建散点图,plt.bar()创建柱状图,plt.pie()创建饼图。 -
savefig()方法将图表保存为图像。 -
不可以连续两次调用
plt.show(),因为它会重置图表数据,迫使你在想要第二次显示图表时再次运行绘图代码。
第二十二章
-
Tesseract 默认识别英语。
-
PyTesseract 与 Pillow 图像库兼容。
-
image_to_string()函数接受一个Image对象并返回一个字符串。 -
不,Tesseract 只从打印文本的扫描文档中提取文本,而不是从照片中提取文本。
-
tess.get_languages()返回一个语言包字符串列表。 -
你可以将
lang='eng+jpn'关键字参数传递给pyautogui以识别图像中的英语和日语文本。 -
NAPS2 可以从 Python 脚本中运行以创建嵌入 OCR 文本的 PDF。
第二十三章
-
将鼠标移动到屏幕的任何角落。
-
pyautogui.size()函数返回一个包含两个整数的元组,分别代表屏幕的宽度和高度。 -
pyautogui.position()函数返回一个包含两个整数的元组,分别代表鼠标光标的 x 和 y 坐标。 -
moveTo()函数将鼠标移动到屏幕上的绝对坐标,而move()函数则相对于鼠标当前的位置移动鼠标。 -
pyautogui.dragTo()和pyautogui.drag() -
pyautogui.typewrite('Hello world!') -
要么向
pyautogui.write()传递一个键盘键字符串列表(例如'left'),要么向pyautogui.press()传递一个单个键盘键字符串。 -
pyautogui.screenshot('screenshot.png') -
pyautogui.PAUSE=2 -
应该使用 Selenium 来控制网络浏览器而不是 PyAutoGUI。
-
PyAutoGUI 盲目点击和输入,并且无法轻易确定它是否在正确的窗口中进行点击和输入。意外的弹出窗口或错误可能会使脚本偏离轨道,并需要你将其关闭。
-
调用
pyautogui.getWindowsWithTitle('Notepad')函数。 -
运行
w=pyatuogui.getWindowsWithTitle('Firefox'),然后运行w.activate()。
第二十四章
-
调用
engine.setProperty('rate', 300),例如,使 pyttsx3 的声音以每分钟 300 个单词的速度说话。 -
pyttsx3模块保存为 WAV 音频格式。 -
不,pyttsx3 和 Whisper 不需要在线服务或互联网访问。
-
是的,pyttsx3 和 Whisper 支持除英语以外的语言。
-
Whisper 的默认模型是
'base'。 -
SRT (SubRip Subtitle)和 VTT Web Video Text Tracks 是两种常见的字幕文件格式。
-
是的,
yt-dlp可以从 YouTube 以外的数百个视频网站下载。### 第一章 -
运算符是
+,-,*, 和/。值是'hello',-88.8, 和5。 -
字符串是
'spam';变量是spam。字符串总是以引号开头和结尾。 -
本章介绍的三种数据类型是整数、浮点数和字符串。
-
表达式是值和运算符的组合。所有表达式都会评估(即,简化)为单个值。
-
表达式评估为单个值。语句则不是。
-
bacon变量被设置为20。bacon + 1表达式不会重新分配bacon中的值(这需要一个赋值语句:bacon = bacon + 1)。 -
两个表达式都评估为字符串
'spamspamspam'。 -
变量名不能以数字开头。
-
int(),float(), 和str()函数将评估为传递给它们的值的整数、浮点数和字符串版本。 -
该表达式导致错误,因为
99是整数,而只有字符串可以用+运算符与其他字符串连接。正确的方式是I have eaten '+str(99)+' burritos.'
第二章
-
True和False,使用大写的 T 和 F,其余单词小写。 -
and,or, 和not -
True and True是True。
True and False是False。
False and True是False。
False and False是False。
True or True是True。
True or False是True。
False or True是True。
False or False是False。
not True是False。
not False是True。
False
False
True
False
False
True
-
==,!=,<,>,<=, 和>= -
==是等于运算符,比较两个值并评估为布尔值,而=是赋值运算符,用于在变量中存储值。 -
条件是在流程控制语句中使用的表达式,它评估为布尔值。
-
print('bacon')和print('ham')各自是独立的块,而第三个块是从if spam == 10:之后到最后的print('Done')之前的内容:
print('eggs')
if spam > 5:
print('bacon')
else:
print('ham')
print('spam')
- 代码:
if spam == 1:
print('Hello')
elif spam == 2:
print('Howdy')
else:
print('Greetings!')
第三章
-
按下 CTRL-C 来停止陷入无限循环的程序。
-
break语句将执行移动到循环外部并紧接其后。continue语句将执行移动到循环的开始。 -
它们都做同样的事情。
range(10)调用从0开始到(但不包括)10的范围,range(0, 10)明确告诉循环从0开始,而range(0, 10, 1)明确告诉循环在每次迭代中变量增加1。 -
代码:
for i in range(1, 11):
print(i)
和:
i = 1
while i <= 10:
print(i)
i = i + 1
- 这个函数可以用
spam.bacon()来调用。
第四章
-
函数减少了重复代码的需求。这使得程序更短,更容易阅读,也更容易更新。
-
函数中的代码在函数被调用时执行,而不是在定义函数时执行。
-
def语句定义(即创建)了一个函数。 -
函数由
def语句及其def子句中的代码组成。函数调用是将程序执行移动到函数中的操作,函数调用返回函数的返回值。 -
存在一个全局作用域,每当调用函数时都会创建一个局部作用域。
-
当函数返回时,局部作用域被销毁,其中所有的变量都会被遗忘。
-
返回值是函数调用评估到的值。像任何值一样,返回值可以用作表达式的一部分。
-
如果函数没有返回语句,它的返回值是
None。 -
global语句将迫使函数中的变量引用全局变量。 -
None的数据类型是NoneType。 -
那个
import语句导入了一个名为areallyourpetsnamederic的模块。(顺便说一下,这不是一个真正的 Python 模块。) -
这个函数可以用
spam.bacon()来调用。 -
将可能引发错误的代码行放在
try子句中。 -
可能引发错误的代码放在
try子句中。如果发生错误,将执行except子句中的代码。 -
random_number全局变量被设置为一个随机数,get_random_dice_roll()函数中的random_number变量使用全局变量。这意味着每次调用get_random_dice_roll()函数时都会返回相同的数字。
第四章
-
assert spam >= 10, 'The spam variable is less than 10.' -
要么是
assert eggs.lower() != bacon.lower() 'The eggs and bacon variables are the same!',要么是assert eggs.upper() != bacon.upper(), 'The eggs and bacon variables are the same!' -
assert False, 'This assertion always triggers.' -
要调用
logging.debug(),你必须在程序开始处添加这两行代码:
import logging
logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s -
%(levelname)s - %(message)s')
- 要使用
logging.debug()将日志消息发送到名为 programLog.txt 的文件,你必须在程序开始处添加这两行代码:
import logging
logging.basicConfig(filename='programLog.txt', level=logging.DEBUG,
format=' %(asctime)s - %(levelname)s - %(message)s')
-
DEBUG、INFO、WARNING、ERROR 和 CRITICAL
-
logging.disable(logging.CRITICAL) -
你可以在不删除日志函数调用的情况下禁用日志消息。你可以选择性地禁用低级别的日志消息。你可以创建日志消息。日志消息提供了时间戳。
-
Step In 按钮将调试器移动到函数调用中。Step Over 按钮将快速执行函数调用而不进入它。Step Out 按钮将快速执行其余代码,直到它从当前函数中退出。
-
点击继续后,调试器将在到达程序末尾或带有断点的行时停止。
-
断点是在代码行上的一种设置,当程序执行到达该行时,会导致调试器暂停。
-
在 Mu 中设置断点时,点击行号,使其旁边出现一个红色圆点。
第六章
-
空列表值,它是一个不包含任何项的列表值。这类似于
''是空字符串值。 -
spam[2]='hello'(注意,列表中的第三个值位于索引2,因为第一个索引是0。) -
'd'(注意,'3' * 2是字符串'33',在除以11之前传递给int(),最终计算结果为3。表达式可以在使用值的地方使用。) -
'd'(负索引从末尾开始计算。) -
['a', 'b'] -
1 -
[3.14, 'cat', 11, 'cat', True, 99] -
[3.14, 11, 'cat', True] -
列表连接的运算符是
+,而复制的运算符是*。 (这与字符串相同。) -
虽然
append()只会将值添加到列表的末尾,但insert()可以将它们添加到列表的任何位置。 -
del语句和remove()列表方法是两种从列表中删除值的方法。 -
列表和字符串都可以传递给
len(),有索引和切片,可以在for循环中使用,可以连接或复制,并且可以使用in和not in操作符。 -
列表是可变的;它们可以添加、删除或更改值。元组是不可变的;它们根本不能更改。此外,元组使用圆括号
(和)编写,而列表使用方括号[和]。 -
(42,)(尾随逗号是强制性的。) -
分别是
tuple()和list()函数。 -
它们包含对列表值的引用。
-
copy.copy()函数将对列表执行浅拷贝,而copy.deepcopy()函数将对列表执行深拷贝。也就是说,只有copy.deepcopy()会复制列表内部的任何列表。
第七章
-
两个大括号:
{} -
{'foo': 42} -
字典中存储的项是无序的,而列表中的项是有序的。
-
你会得到一个
KeyError错误。 -
没有区别。
in操作符检查一个值是否作为键存在于字典中。 -
表达式
'cat' in spam检查字典中是否存在'cat'键,而'cat' in spam.values()检查spam中某个键的值是否为'cat'。 -
spam.setdefault('color', 'black') -
pprint.pprint()
第八章
-
转义字符表示字符串值中难以或无法直接键入的字符。
-
转义字符
\n是换行符;转义字符\t是制表符。 -
转义字符
\\表示反斜杠字符。 -
在
Howl's中的单引号是好的,因为你已经使用双引号来标记字符串的开始和结束。
5. 多行字符串允许你在字符串中使用换行符而不需要 \n 转义字符。
6. 表达式计算结果如下:
'e'
'Hello'
'Hello'
'lo world!
7. 表达式计算结果如下:
'HELLO'
True
'hello'
8. 表达式计算结果如下:
['Remember,', 'remember,', 'the', 'fifth', 'of', 'November.']
'There-can-be-only-one.'
9. rjust(), ljust(), 和 center() 字符串方法,分别。
10. lstrip() 和 rstrip() 方法分别从字符串的左侧和右侧移除空白字符。
第九章
1. re.compile() 函数创建 Regex 对象。
2. 使用原始字符串,这样就不需要转义反斜杠。
3. search() 方法返回 Match 对象。
4. group() 方法返回匹配文本的字符串。
5. 组 0 是整个匹配,组 1 覆盖第一个括号组,组 2 覆盖第二个括号组。
6. 句点和括号可以用反斜杠转义:\., \(, 和 \).
7. 如果正则表达式没有组,则返回字符串列表。如果正则表达式有组,则返回字符串元组的列表。
8. | 字符表示两个组之间的“或者”匹配。
9. ? 字符可以表示“匹配前一个组的零次或一次”或用于表示非贪婪匹配。
10. + 匹配一个或多个。* 匹配零个或多个。
11. {3} 匹配前一个组的正好三个实例。{3,5} 匹配三个到五个实例。
12. \d, \w, 和 \s 简写字符类分别匹配单个数字、单词或空格字符。
13. \D, \W, 和 \S 简写字符类分别匹配单个不是数字、单词或空格字符的字符。
14. .* 执行贪婪匹配,而 .*? 执行非贪婪匹配。
15. 可以是 [0-9a-z] 或 [a-z0-9].
16. 将 re.I 或 re.IGNORECASE 作为 re.compile() 的第二个参数传递将使匹配不区分大小写。
17. . 字符通常匹配除换行符以外的任何字符。如果将 re.DOTALL 作为 re.compile() 的第二个参数传递,则点号也将匹配换行符。
18. sub() 调用将返回字符串 'X drummers, X pipers, five rings, X hens'.
19. re.VERBOSE 参数允许你在传递给 re.compile() 的字符串中添加空白和注释。
第十章
1. 相对路径相对于当前工作目录。
2. 绝对路径以根文件夹开始,例如 / 或 *C:*.
3. 在 Windows 上,它计算为 WindowsPath('C:/Users/Al')。在其他操作系统上,它计算为不同类型的 Path 对象,但具有相同的路径。
4. 表达式 'C:/Users' / 'Al' 会导致错误,因为不能使用 / 操作符连接两个字符串。
5. os.getcwd()函数返回当前工作目录。os.chdir()函数更改当前工作目录。
6. *.*文件夹是当前文件夹,而*..*是父文件夹。
7. *C:\bacon\eggs*是目录名,而*spam.txt*是基本名称。
8. 字符串'r'用于读取模式,'w'用于写入模式,'a'用于追加模式。
9. 以写入模式打开的现有文件将被擦除并完全覆盖。
10. read()方法返回文件的整个内容作为单个字符串值。readlines()方法返回一个字符串列表,其中每个字符串都是文件内容的行。
11. shelf 值类似于字典值;它有键和值,以及keys()和values()方法,这些方法与同名的字典方法类似。
第十一章
1. shutil.copy()函数将复制单个文件,而shutil.copytree()将复制整个文件夹及其所有内容。
2. shutil.move()函数用于重命名文件以及移动它们。
3. send2trash函数将文件或文件夹移动到回收站,而shutil将永久删除文件和文件夹。
4. zipfile.ZipFile()函数等同于open()函数;第一个参数是文件名,第二个参数是以何种模式打开 ZIP 文件(读取、写入或追加)。
第十二章
1. dir命令在 Windows 上列出文件夹内容。ls命令在 macOS 和 Linux 上列出文件夹内容。
2. PATH环境变量包含当在终端中输入程序名称时检查的文件夹列表。
3. __file__变量包含当前正在运行的 Python 脚本的文件名。在交互式 shell 中不存在此变量。
4. cls命令在 Windows 上清除终端,而clear命令在 macOS 和 Linux 上执行此操作。
5. 在 Windows 上运行python -m venv .venv,或在 macOS 和 Linux 上运行python3 -m venv .venv。
6. 在 Windows 上运行python -m PyInstaller --onefile yourScript.py,或在 macOS 和 Linux 上运行python3 -m PyInstaller --onefile yourScript.py。
第十三章
1. webbrowser模块有一个open()方法,它将启动一个网络浏览器到特定的 URL,仅此而已。requests模块可以下载网络上的文件和页面。bs4模块解析 HTML。
2. requests.get()函数返回一个Response对象,该对象有一个text属性,其中包含作为字符串下载的内容。
3. 如果下载存在问题,raise_for_status()方法会引发异常,如果下载成功则不执行任何操作。
4. Response对象的status_code属性包含 HTTP 状态码。
5. 在您的计算机上以'wb'“写入二进制”模式打开新文件后,使用一个遍历Response对象的iter_content()方法的for循环将块写入文件。以下是一个示例:
saveFile = open('filename.html', 'wb')
for chunk in res.iter_content(100000):
saveFile.write(chunk)
-
大多数在线 API 以 JSON 或 XML 格式返回其响应。
-
按 F12 在 Chrome 中打开开发者工具。在 Windows 和 Linux 上按 CTRL-SHIFT-C,或在 OS X 上按 -OPTION-C,可以在 Firefox 中打开开发者工具。
-
在页面上的元素上右键单击并从菜单中选择“检查元素”。
'#main'
-
'.highlight' -
spam.gettext() -
linkElem.attrs -
使用
from selenium import webdriver导入selenium模块。 -
find_element_*方法返回第一个匹配元素作为WebElement对象。find_elements_*方法返回所有匹配元素作为WebElement对象的列表。 -
click()和send_keys()方法分别模拟鼠标点击和键盘按键。 -
press('Control+A')方法模拟按下 CTRL-A。 -
forward(),back(), 和refresh()WebDriver对象方法模拟这些浏览器按钮。 -
go_forward(),go_back(), 和reload()Page对象方法模拟这些浏览器按钮。
第十四章
-
openpyxl.load_workbook()函数返回一个Workbook对象。 -
sheetnames属性包含一个包含工作表标题的字符串列表。 -
运行
wb['Sheet1']。 -
使用
wb.active。 -
sheet['C5'].value或sheet.cell(row=5, column=3).value -
sheet['C5']='Hello'或sheet.cell(row=5, column=3).value='Hello' -
cell.row和cell.column -
它们分别持有具有值的最高列和行,作为整数值。
-
openpyxl.cell.column_index_from_string('M') -
openpyxl.cell.get_column_letter(14) -
sheet['A1':'F1'] -
wb.save('example3.xlsx') -
公式的设置方式与任何值相同。将单元格的
value属性设置为公式文本的字符串。记住,公式以等号(=)开头。 -
在调用
load_workbook()时传递data_only=True,使 OpenPyXL 获取公式的计算结果。 -
sheet.row_dimensions[5].height=100 -
sheet.column_dimensions['C'].hidden=True -
冻结窗格是始终出现在屏幕上的行和列。它们对于标题很有用。
-
openpyxl.chart.Reference(),openpyxl.chart.Series(),openpyxl.chart.BarChart(),chartObj.append(seriesObj), 和add_chart()
第十五章
-
要访问 Google Sheets,你需要一个凭证文件、一个 Google Sheets 的令牌文件和一个 Google Drive 的令牌文件。
-
EZSheets 有
ezsheets.Spreadsheet和ezsheets.Sheet对象。 -
调用
downloadAsExcel() Spreadsheet方法。 -
调用
ezsheets.upload()函数并传递 Excel 文件的文件名。 -
读取
ss['Students']['B2']的值。 -
调用
ezsheets.getColumnLetterOf(999)。 -
访问
Sheet对象的rowCount和columnCount属性。 -
调用
delete() Sheet方法。这只有在传递permanent=True关键字参数时才是永久的。
9. Spreadsheet() 函数和 Sheet() Spreadsheet 方法分别创建 Spreadsheet 和 Sheet 对象。
10. EZSheets 将限制你的方法调用。
第十六章
1. conn = sqlite3.connect('example.db', isolation_level=None)
2. conn.execute('CREATE TABLE students (first_name TEXT, last_name TEXT, favorite_color TEXT) STRICT')
3. 调用 sqlite3.connect() 时传递 isolation_level=None 关键字参数。
4. INTEGER 类似于 Python 的 int 类型,而 REAL 类似于 Python 的 float 类型。
5. 严格模式添加了一个要求,即每个列都必须有数据类型,如果你尝试插入错误类型的数据,SQLite 将引发异常。
6. * 表示“选择表中所有列”。
7. CRUD 代表创建、读取、更新和删除,这是数据库执行的四个标准操作。
8. ACID 代表原子性、一致性、隔离性和持久性,这是数据库事务应具有的四个属性。
9. INSERT 查询向表中添加新记录。
10. DELETE 查询从表中删除记录。
11. 如果没有 WHERE 子句,UPDATE 查询将应用于表中的所有记录,这可能是你想要的,也可能不是。
12. 索引是一种组织列数据的结构,它占用更多存储空间但使查询更快。'CREATE INDEX idx_birthdate ON cats (birthdate)' 将为 cats 表的 birthdate 列创建索引。
13. 外键将一个表中的记录链接到另一个表中的记录。
14. 通过运行查询 'DROP TABLE cats' 可以删除名为 cats 的表。
15. 字符串 ':memory:' 用于代替文件名以创建内存数据库。
16. iterdump() 方法可以创建复制数据库的查询。你也可以复制数据库文件本身。
第十七章
1. 必须通过将 'w' 传递给 open() 以写入模式打开 File 对象。
2. 调用 getPage(4) 将返回第 5 页的 Page 对象,因为第 0 页是第一页。
3. 调用 decrypt('swordfish')。
4. 通过传递负整数逆时针旋转页面:-90、-180 或 -270。
5. docx.Document('demo.docx')
6. 使用 doc.paragraphs 获取 Paragraph 对象的列表。
7. Paragraph 对象表示一段文本,并且它本身由一个或多个 Run 对象组成。
8. Run 对象有这些变量(不是 Paragraph 对象)。
9. True 总是使 Run 对象加粗,而 False 总是使其不加粗,无论样式的加粗设置如何。None 将使 Run 对象仅使用样式的加粗设置。
10. 调用 docx.Document() 函数。
11. doc.add_paragraph('Hello there!')
12. 整数 0 到 9。
第十八章
1. 在 Excel 中,电子表格可以具有除字符串之外的数据类型值;单元格可以有不同的字体、大小或颜色设置;单元格可以有不同宽度和高度;相邻单元格可以合并;并且可以嵌入图片和图表。
你传递一个 File 对象,该对象是通过调用 open() 获得的。
File 对象需要以读取二进制('rb')模式打开用于 Reader 对象,以写入二进制('wb')模式打开用于 Writer 对象。
writerow() 方法。
delimiter 参数更改用于分隔行中单元格的字符串。lineterminator 参数更改用于分隔行的字符串。
所有这些都可以用文本编辑器轻松编辑:CSV、JSON 和 XML 都是纯文本格式。
json.loads()
json.dumps()
XML 的格式类似于 HTML。
JSON 将 None 值表示为关键字 null。
JSON 中的布尔值以小写形式书写:true 和 false。
第十九章
许多日期和时间程序使用的参考时刻。这个时刻是 1970 年 1 月 1 日,UTC。
time.time()
time.asctime()
time.sleep(5)
它返回与传递的参数最接近的整数。例如,round(2.4) 返回 2。
一个 datetime 对象代表一个特定的时间点。一个 timedelta 对象代表一个时间间隔。
运行 datetime.datetime(2019, 1, 7).weekday(), 它返回 0。这意味着星期一,因为 datetime 模块使用 0 表示星期一,1 表示星期二,以此类推,直到 6 表示星期日。
第二十章
credentials.json 和 token.json 文件告诉 EZGmail 模块在访问 Gmail 时使用哪个 Google 账户。
一个消息代表一封单独的电子邮件,而涉及多封电子邮件的来回对话是一个线程。
在传递给 search() 的字符串中包含 'has:attachment' 文本。
SMS 电子邮件网关不一定能正常工作,如果消息已投递则不会通知你,而且之前它们能正常工作并不意味着它们会再次工作。
The Requests 库可以发送和接收 ntfy 通知。
第二十一章
RGBA 值是一个包含四个整数的元组,每个整数的范围从 0 到 255。这四个整数分别对应颜色中的红色、绿色、蓝色和 alpha(透明度)的量。
调用 ImageColor.getcolor('CornflowerBlue', 'RGBA') 将返回 (100, 149, 237, 255),这是矢车菊蓝颜色的 RGBA 值。
一个矩形元组是一个包含四个整数的元组:左边缘 x 坐标、上边缘 y 坐标、宽度和高度,分别对应。
Image.open('zophie.png')
im.size 是一个包含两个整数的元组,分别是宽度和高度。
im.crop((0, 50, 50, 50))。注意,你传递的是一个包含四个整数的矩形元组给 crop(),而不是四个单独的整数参数。
调用 Image 对象的 im.save('new_filename.png') 方法。
ImageDraw 模块包含在图像上绘制的代码。
ImageDraw 对象具有形状绘制方法,如 point()、line() 或 rectangle()。它们是通过将 Image 对象传递给 ImageDraw.Draw() 函数返回的。
plt.plot() 创建折线图,plt.scatter() 创建散点图,plt.bar() 创建柱状图,plt.pie() 创建饼图。
11. savefig() 方法将图表保存为图像。
12. 你不能连续两次调用 plt.show(),因为它会重置图表数据,迫使你在第二次显示图表之前再次运行绘图代码。
第二十二章
1. Tesseract 默认识别英语。
2. PyTesseract 与 Pillow 图像库兼容。
3. image_to_string() 函数接受一个 Image 对象并返回一个字符串。
4. 不,Tesseract 只能从打印文本的扫描文档中提取文本,而不是从照片中提取文本。
5. tess.get_languages() 返回一个语言包字符串列表。
6. 你可以传递 lang='eng+jpn' 关键字参数来识别图像中的英语和日语文本。
7. NAPS2 可以从 Python 脚本中运行以创建嵌入 OCR 文本的 PDF。
第二十三章
1. 将鼠标移动到屏幕的任何角落。
2. pyautogui.size() 函数返回一个包含两个整数的元组,分别代表屏幕的宽度和高度。
3. pyautogui.position() 函数返回一个包含两个整数的元组,分别代表鼠标光标的 x 和 y 坐标。
4. moveTo() 函数将鼠标移动到屏幕上的绝对坐标,而 move() 函数则相对于鼠标当前的位置移动鼠标。
5. pyautogui.dragTo() 和 pyautogui.drag()
6. pyautogui.typewrite('Hello world!')
7. 可以向 pyautogui.write() 函数传递一个键盘键字符串列表(例如 'left'),或者传递一个单个键盘键字符串到 pyautogui.press()。
8. pyautogui.screenshot('screenshot.png')
9. pyautogui.PAUSE = 2
10. 你应该使用 Selenium 来控制网络浏览器而不是 PyAutoGUI。
11. PyAutoGUI 盲目点击和输入,无法轻易确定是否点击和输入到正确的窗口中。意外的弹出窗口或错误可能会使脚本偏离轨道,并需要你关闭它。
12. 调用 pyautogui.getWindowsWithTitle('Notepad') 函数。
13. 运行 w = pyautogui.getWindowsWithTitle('Firefox'),然后运行 w.activate()。
第二十四章
1. 调用 engine.setProperty('rate', 300),例如,使 pyttsx3 的语音以每分钟 300 个单词的速度说话。
2. pyttsx3 模块保存为 WAV 音频格式。
3. 不,pyttsx3 和 Whisper 不需要在线服务或互联网访问。
4. 是的,pyttsx3 和 Whisper 支持除英语之外的语言。
5. Whisper 的默认模型是 'base'。
6. SRT(SubRip Subtitle)和 VTT Web 视频文本轨道是两种常见的字幕文件格式。
7. 是的,yt-dlp可以从除 YouTube 之外的上百个视频网站下载。
- 符号
-
=(赋值运算符),10,130 -
+=(增强加赋值运算符),119 -
/=(增强除赋值运算符),119 -
%=(增强取模赋值运算符),119 -
*=(增强乘赋值运算符),119 -
-=(增强减赋值运算符),119 -
\(反斜杠) -
转义字符,190
-
行续行字符,124
-
路径分隔符(Windows),218
-
%*(批处理文件,所有参数),276 -
@(批处理文件,隐藏命令),276 -
{}(大括号) -
与字典一起使用,139
-
使用
format()方法,150 -
使用 f-strings,164
-
匹配多个限定符,198
-
^(撇号符号) -
匹配字符串开头,201
-
负字符类,193
-
:(冒号),34,468 -
$(美元符号),201 -
.(点) -
当前文件夹,222
-
正则表达式,194
-
..(两个点) 父文件夹,222 -
.*(点星号),199 -
"(双引号),160 -
==(等于) 操作符,29 -
**(指数) 操作符,6 -
/(正斜杠) -
除法操作符,6
-
路径分隔符 (macOS/Linux),218
-
>(大于) 操作符,29 -
>=(大于或等于) 操作符,29 -
#(井号字符),14,204 -
//(整数除法) 操作符,6 -
>>>(交互式外壳提示符),xli -
<(小于) 操作符,29 -
<=(小于或等于) 操作符,29 -
%(模数/余数) 操作符,6 -
*(乘法) 操作符,6 -
!=(不等于) 操作符,29 -
()(括号),6,14,127 -
|(管道字符),191,205 -
+(加号) -
加法操作符,6
-
连接操作符,8,113
-
匹配一个或多个,197
-
?(问号) -
可选匹配,196
-
SQLite 通配符,393
-
'(单引号),8,160 -
[](方括号),110,112,123 -
*(星号字符),197 -
-(减法) 操作符,6 -
'''(三引号),162 -
_(下划线),11,12,194 -
A
-
*A:* 驱动器,222
-
abs()函数,20–21 -
absolute()方法,224 -
绝对路径,222,223
-
绝对值,20
-
可访问性应用程序 (macOS),540
-
可访问的丰富互联网应用程序 (ARIA),325
-
ACID 测试 (原子性、一致性、隔离性、持久性),393
-
activate.bat (venv),263
-
activate()方法 (PyAutoGUI),555 -
active属性 (OpenPyXL),334 -
活动工作表,334
-
活动窗口,545
-
添加标志 (项目),507–512
-
add_blank_page()方法,419 -
add_break()方法 (Docx),432 -
添加项目符号到 Wiki 标记 (项目),174
-
add_heading()方法,431 -
addingBoringcoinTransactions.py,378
-
添加声音到猜数字 (项目),574
-
add_paragraph()方法,430 -
add_picture()方法,433 -
add_run()方法,430 -
AES-256,420
-
age属性 (PyTTSx3),567 -
人工智能,413–414
-
alert()函数 (PyMsgBox),275 -
代数棋类记谱法,145
-
all_caps属性 (Docx),428–429 -
all()方法,326 -
allMyCats1.py,114
-
allMyCats2.py,115
-
阿尔法透明度,494
-
alternatingText.py,173
-
交替 (
|) 操作符,191 -
ALTER TABLE查询,403,404 -
Anaconda,265
-
锚点,225
-
and布尔操作符,31 -
角标 (
<>),15,20,259,301,451 -
ANY_SINGLE常量,212 -
ANYTHING_GREEDY常量,212 -
ANYTHING_LAZY常量,212 -
API (应用程序编程接口),297,306,359,360
-
键,297,301
-
应用程序,258
-
append()方法 -
列表方法,120,142
-
PyPDF 方法,416–417
-
追加模式,232
-
苹果,259
-
应用程序,258
-
应用程序编程接口。参见 API
-
apt命令,407,528,566,578 -
存档文件,249
-
area属性 (PyAutoGUI),552 -
参数,75,130
-
ARIA (可访问的丰富互联网应用程序),325
-
arial.ttf,515
-
数组,447
-
ASCII,23
-
ASCII 艺术鱼缸程序,271
-
ASCII 字典序,123
-
ASC关键字 (SQLite),397 -
as关键字,233 -
断言,97–98
-
assert语句,97–98 -
赋值,87
-
赋值运算符 (
=),10,130 -
赋值语句,10
-
关联数组,447
-
星号 (
*) -
glob,227
-
乘法运算符,6
-
正则表达式,197,199
-
SQLite,396
-
at_least()函数 (Humre),211 -
at_least_group()函数 (Humre),211 -
at_most()函数 (Humre),211 -
at_most_group()函数 (Humre),211 -
原子一致性隔离持久性 (ACID) 测试,393
-
Atom 网页源格式,451
-
AT&T,484
-
AttributeError,64,121,540 -
属性 (HTML)。另见各个属性的名称
-
href,302 -
id,302 -
概述,302
-
attrs属性 (Beautiful Soup),308 -
auditBoringcoin.py,376
-
增量赋值运算符
-
增量加法赋值运算符 (
+=),119 -
增量除法赋值运算符 (
/=),119 -
增量模运算赋值运算符 (
%=),119 -
增量乘法赋值运算符 (
*=),119 -
增量减法赋值运算符 (
-=),119 -
automateboringstuff3 包,266
-
自动取消订阅器 (项目),490
-
B
-
*B:* 驱动,222
-
BACK_1(Humre),210 -
back()方法 (Selenium),319 -
后向引用,203
-
反斜杠 (
\) -
转义字符,190
-
行续行字符,124
-
路径分隔符 (Windows),218
-
BACK_SPACE常量 (Selenium),322 -
将文件夹备份到 ZIP 文件 (项目),252
-
backup.db,402
-
backup()方法 (SQLite),402,406 -
bacon.txt,232
-
银行家舍入,20
-
BarChart()函数 (Matplotlib),354 -
bar()函数 (Matplotlib),519 -
二进制数制,21
-
十进制数制,21
-
basicConfig()函数 (logging模块),99 -
Batchfelder,Ned,172
-
批处理文件,258
-
%*(所有参数),276 -
@(隐藏命令),276 -
Beautiful Soup,306–309
-
BeautifulSoup()函数,307 -
BEGIN查询,401 -
between()函数 (Humre),211 -
between_group()函数 (Humre),211 -
Bext 包
-
bg()函数,270 -
clear()函数,271 -
fg()函数,270 -
get_key()函数,271 -
goto()函数,271 -
height()函数,271 -
hide()函数,271 -
show()函数,271 -
title()函数,271 -
width()函数,271 -
Beyond the Basic Stuff with Python,258,461
-
bg()函数 (Bext),270 -
Big Book of Small Python Projects, The,70,154,180,271,529
-
二进制文件,229–230,411
-
二进制数,21–23,134,172
-
绑定,87
-
birthdays.py,141
-
比特,22
-
按位或运算符 (
|),204 -
空行,14,15
-
空行插入器 (项目),357
-
BLOB数据类型 (SQLite),389 -
区块链,376
-
块执行,461
-
代码块,34
-
body属性 (EZGmail),482 -
bold属性 (Docx),428–429 -
布尔
-
and运算符,31 -
二进制运算符,31
-
数据类型,28
-
not运算符,32 -
or运算符,32 -
短路,124
-
一元运算符,32
-
bool()函数,58 -
Boost Mobile,484
-
borb包,433 -
bottom属性 (PyAutoGUI),552 -
bottomleft属性 (PyAutoGUI),552 -
bottomright属性 (PyAutoGUI),552 -
边界,单词,201
-
bounding_box()方法,326 -
box属性(PyAutoGUI),552 -
变量的框隐喻,10,11
-
box元组,496 -
boxPrint.py,96
-
大括号 (
{}) -
使用字典,139
-
使用
format()方法,150 -
使用 f-strings,164
-
匹配多个限定符,198
-
断点,106
-
break语句,54 -
brew命令,528 -
浏览器
-
Chrome,303
-
DB,408
-
开发者工具,303
-
Edge,微软,303
-
Firefox,303, 318
-
使用网络浏览器打开,291
-
Tor,290
-
Browser数据类型,324 -
浏览器文本抓取器(项目),536–538
-
穷举密码攻击,435
-
bs4模块,307 -
buggyAddingProgram.py,104
-
build 文件夹(PyInstaller),285
-
内置函数,63
-
bulletPointAdder.py,174
-
By.CLASS_NAME常量,320 -
By.CSS_SELECTOR常量,320 -
By.ID常量,320 -
By.LINK_TEXT常量,320 -
By.NAME常量,320 -
By.PARTIAL_LINK_TEXT常量,320 -
By.TAG_NAME常量,320 -
bytes,22,172,296
-
bytes数据类型,296,456 -
C
-
*C:* 驱动器,218,222
-
calcProd.py,460
-
Calibri 字体,348
-
调用栈,80–81
-
驼峰命名法,12
-
验证码(Completely Automated Public Turing test to tell Computers and Humans Apart),555
-
capture_output参数,473 -
上标符号 (^)
-
匹配字符串开头,201
-
负字符类,193
-
层叠样式表。见 CSS
-
区分大小写,12,203,218,396,485
-
猫疫苗接种检查器(项目),409–410
-
ccwd命令,279 -
ccwd.py,279
-
cd命令,260 -
Cell数据类型,334 -
手机服务提供商
-
AT&T,484
-
Boost 移动,484
-
Cricket,484
-
Google Fi,484
-
Metro PCS,484
-
Republic Wireless,484
-
Sprint,484
-
T-Mobile,484
-
U.S. Cellular,484
-
Verizon,484
-
维珍移动,484
-
Xfinity 移动,484
-
单元格,在电子表格中,332,363
-
census2010.py,342
-
censuspopdata.xlsx,338
-
center属性(PyAutoGUI),552 -
center()方法,171 -
centerx属性(PyAutoGUI),552 -
centery属性(PyAutoGUI),552 -
字符类
-
创建,193
-
负数,193
-
简写,193
-
characterCount.py,145
-
字符样式,427
-
chars()函数(Humre),211 -
图表,354,517
-
Chart数据类型(OpenPyXL),354 -
ChatGPT(LLM),414,530
-
chdir()函数,221,279 -
check()方法(Playwright),327 -
棋盘,145–146,147
-
国际象棋字典验证器(项目),156
-
子元素(XML),451
-
chmod命令,277, 278, 280, 281 -
choice()函数(random模块),118,133 -
chr()函数,172 -
Chrome 浏览器,303
-
chromium.launch()函数,324 -
电路,22
-
CLASS_NAME常量(Selenium),320 -
从句,33
-
clear命令,272 -
clear()函数(Bext),271 -
clear()函数(cls/clear 命令),272 -
clear()方法(Selenium),320 -
click()函数(PyAutoGUI),544 -
click()方法(Playwright),326,327 -
click()方法(Selenium),321 -
剪贴板,270
-
剪贴板记录器(项目),281
-
cliprec.bat,283
-
cliprec.command,284
-
cliprec.desktop,284
-
cliprec.py,282
-
“关闭,打开”格式,61
-
close()方法 -
File数据类型,230,232 -
Playwright 模块,324
-
PyAutoGUI 模块,555
-
shelve模块,234 -
sqlite3模块,389 -
zipfile模块,251 -
cls命令,272 -
Cm()函数,433 -
代码点(Unicode),172
-
代码风格,12
-
硬币翻转连续(项目),137
-
Collatz 序列(项目),94
-
冒号(:),34,468
-
颜色,494
-
像素,494
-
RGBA 值,494
-
RGB 值,494
-
文本,270
-
Colorama 包,270
-
colormap变量(Pillow),495 -
column属性(OpenPyXL),334 -
columnCount属性,371 -
column_dimensions属性(OpenPyXL),351 -
column_index_from_string()函数,336 -
列,在 Excel 电子表格中
-
转换字母和数字,336
-
设置宽度,351
-
合并和取消合并,352
-
从多个 PDF 中合并选择页面(项目),422
-
Comma Code(项目),136
-
以逗号分隔,111
-
命令行参数,269,472
-
命令行界面(CLI),259
-
命令提示符,259
-
命令,258
-
名称,268
-
以逗号分隔的值。见 CSV
-
注释
-
概述,14
-
多行,162
-
比较运算符,29
-
compile()函数(re模块),188 -
编译 Python 程序,285
-
CompletedProcess数据类型,471 -
压缩文件
-
创建 ZIP 文件,249
-
提取 ZIP 文件,251
-
概述,249
-
读取 ZIP 文件,250
-
压缩类型,250
-
条件表达式,272
-
条件,33
-
confirm()函数(PyMsgBox),275,561 -
connect()函数(SQLite),388 -
Connection数据类型,388 -
控制台,259
-
控制台,Google Cloud,360
-
常量,133,149
-
上下文管理器,233
-
继续(调试器),103
-
continue语句,55 -
习惯用法,xxxii,6,12,15,219,263,388,389,399,452
-
convertAddress()函数(EZSheets),368–369 -
转换,电子表格列字母和数字,336
-
转换数据类型,17
-
将电子表格转换为其他格式(项目),381
-
coordinate属性(OpenPyXL),334 -
协调世界时(UTC),460
-
坐标系统,495
-
坐标元组,495
-
copy命令,268 -
复制 CSS 选择器,306
-
copy()函数 -
copy模块,131 -
Pillow 模块,500–501,502
-
Pyperclipimg 模块,516
-
Pyperclip 模块,173,175,270
-
shutil模块,244 -
copy模块 -
copy()函数,131 -
deepcopy()函数,131 -
copyTo()方法(EZSheets),365,374 -
copytree()函数(shutil模块),245 -
countdown()函数(PyAutoGUI),560 -
count()方法,326 -
国家代码,ISO 3166,299
-
cp1252 编码,231
-
cp命令,268 -
cProfile.run()函数,461 -
CPU,267,467,569
-
CPU,占用,282,283
-
CREATE INDEX查询,399 -
create_sheet()方法,343 -
CREATE TABLE查询,389 -
创建自定义座位卡(项目),525
-
从图像创建 PDF,533
-
凭据
-
创建,360
-
Google API,361
-
登录,362
-
撤销,362
-
板球,484
-
critical()函数(logging模块),101 -
cron,473
-
crop()方法(Pillow),499 -
cropped.png,499,500
-
裁剪图像,499–500
-
CRUD 操作,392
-
CSS(层叠样式表)
-
概述,301
-
选择器,306,327
-
CSS_SELECTOR常量(Selenium),320 -
CSV(逗号分隔值)
-
分隔符,442
-
标题行,442,443
-
行终止符,442
-
概述,438–444
-
csv模块 -
DictReader()函数,442 -
DictWriter()函数,443 -
reader()函数,439 -
writer()函数,440 -
writerow()方法,440 -
ctime()函数(time模块),460 -
当前工作目录(CWD),220,269
-
C:\Users 文件夹,222
-
自定义邀请(项目),435
-
cwd()函数,221 -
D
-
Danjou,Julien,234
-
Dash,Ubuntu Linux,278
-
仪表板应用程序,274
-
内存数据库,406
-
DatabaseError,388 -
数据库
-
备份,402,406
-
条目,385
-
外键,404
-
概述,383
-
主键,385
-
关系型,385
-
行,385
-
SQLite 功能,387
-
与电子表格相比,384
-
表,385
-
data_only命名参数,350 -
数据序列化格式,437
-
数据类型,7
-
日期算术,466
-
datetime模块,464–469 -
datetime()函数,335,464 -
fromstimestamp(),464 -
now()函数,464 -
timedelta()函数,465 -
day属性(datetime模块),464 -
DB Browser 应用程序,408
-
DBeaver Community 应用程序,408
-
debug()函数(logging模块),99 -
调试器
-
断点,106
-
继续,103
-
概述,103
-
步入,103
-
步出,104
-
步过,103
-
调试抛硬币(项目),108
-
十进制数字,21
-
decode()方法(xml模块),456 -
decrypt()方法(PyPDF),421,436 -
去重,75
-
deepcopy()函数(copy模块),131 -
默认文件扩展名应用程序,473
-
定义函数,76
-
压缩算法,250
-
def语句,74 -
DELETE常量(Selenium),322 -
DELETE FROM查询,392,401 -
delete()方法(EZSheets),365–366 -
删除不需要的文件(项目),255–256
-
分隔符(CSV),442
-
del语句,114,122 -
demo.docx,425,426,429
-
DESC关键字,397 -
开发者工具(浏览器),303
-
菱形,流程图,28
-
词典
-
检查键是否存在,143
-
get()方法,144 -
items()方法,142 -
keys()方法,142 -
概述,139
-
嵌套,154
-
setdefault()方法,144,341,377 -
无序,140
-
values()方法,142 -
dictionary.txt,435
-
DictReader()函数,442 -
DictWriter()函数,443 -
DIGIT常量(Humre),210 -
dimensions3.xlsx,351
-
dir命令,228,260 -
目录,218,221
-
disable()函数(logging模块),101 -
dishonestcapacity.py,45
-
dist文件夹(PyInstaller),285 -
Doctorow,Cory,186
-
Document数据类型(Docx),425 -
Document()函数(Docx),425,430 -
文档对象模型(DOM),453
-
docx模块 -
add_break()方法,432 -
add_heading()方法,431 -
add_picture()方法,433 -
all_caps属性,428–429 -
bold属性,428–429 -
Cm()函数,433 -
Document()函数,425,430 -
double_strike属性,428–429 -
emboss属性,428–429 -
imprint属性,428–429 -
Inches()函数,433 -
italic属性,428–429 -
outline属性,428–429 -
概述,424
-
rtl属性,428–429 -
runs属性,426 -
shadow属性,428–429 -
small_caps属性,428–429 -
strike属性,428–429 -
style属性,427 -
text属性,425 -
underline属性,428–429 -
WD_BREAK.PAGE常量,432 -
美元符号 (
$), 201 -
域名,URL,299
-
点 (
.) -
当前文件夹,222
-
正则表达式,194
-
DOTALL常量(re模块),200 -
点点 (
..) 父文件夹,222 -
点星 (
.*), 199 -
doubleClick()函数(PyAutoGUI),544 -
双否定,32
-
DOUBLE_QUOTE常量(Humre),210 -
双引号(
"),160 -
double_strike属性(Docx),428–429 -
DOWN常量(Selenium),322 -
downloadAllAttachments()函数(EZGmail),483 -
downloadAsCSV()方法(EZSheets),366 -
downloadAsExcel()方法(EZSheets),366 -
downloadAsHTML()方法(EZSheets),366 -
downloadAsODS()方法(EZSheets),366 -
downloadAsPDF()方法(EZSheets),366 -
downloadAsTSV()方法(EZSheets),366 -
downloadAttachment()函数(EZGmail),483 -
downloadFolder参数,483 -
下载
-
附件,483
-
文件,296
-
视频,571–573
-
天气预报,297
-
网络漫画,312
-
网页,294
-
下载 Google 表单数据(项目),380
-
download()方法(yt-dlp),571 -
下载 XKCD 漫画(项目),312
-
downloadXkcdComics.py,313
-
drag()函数(PyAutoGUI),545 -
拖动,545
-
dragTo()函数(PyAutoGUI),545 -
Draw()函数(Pillow),512,514 -
drawing.png,514
-
驱动器,218,225
-
DROP INDEX查询,399 -
dumps()函数(json模块),450 -
E
-
echo命令,261,578 -
Edge 浏览器,Microsoft,303
-
either()函数(Humre),211 -
Element数据类型(xml模块),453 -
Element()函数(xml模块),456 -
元素
-
HTML,301
-
XML,451
-
ElementTree模块,453 -
elif语句,37–38 -
ellipse()方法(Pillow),513,514 -
else语句,36–37 -
EMAIL_ADDRESS变量(EZGmail),481 -
基于电子邮件的计算机控制(项目),490
-
电子邮件
-
下载附件,483
-
阅读,481
-
搜索,482–483
-
发送,480–481
-
emboss属性(Docx),428–429 -
编码,172
-
encoding命名参数,231 -
加密,290
-
encrypt()方法(PyPDF),420–421 -
END常量(Selenium),322 -
end命名参数,79 -
ends_with()函数(Humre),211 -
endswith()方法,169 -
ENTER常量(Selenium),322 -
条目(数据库),385
-
enumerate()函数,118,370,415 -
环境变量,261
-
纪元,Unix,460
-
等于(
==)运算符,29 -
error()函数,101 -
错误
-
AttributeError,64,121,540 -
DatabaseError,388 -
FileNotDecryptedError,421 -
IndexError,111 -
KeyError,141,144 -
ModuleNotFoundError,267 -
NameError,15,114,189 -
OperationalError,389 -
SyntaxError,7,29 -
TypeError,9,16,122,220 -
UnboundLocalError,87 -
转义字符
-
概述,160
-
正则表达式,190
-
ESCAPE常量(Selenium),322 -
eSpeak,566
-
评估,19,33
-
exactly()函数(Humre),211 -
exactly_group()函数(Humre),211 -
example3.xlsx,438
-
example.db,387
-
Excel
-
图表,354
-
字体,348
-
公式,345,349,350,351
-
合并单元格,352
-
概述,331
-
取消合并单元格,352
-
Excel-to-CSV 转换器(项目),457
-
异常,96
-
executable属性(sys模块),267 -
execute()方法(SQLite),389 -
执行,34
-
exist_ok命名参数,244,248 -
exists()方法(pathlib模块),228 -
exitExample.py,64
-
exit()函数(sys模块),64 -
expand命名参数(Pillow),504 -
指数(
**)运算符,6 -
扩展 ASCII,231
-
可扩展标记语言。参见 XML
-
扩展名,文件,225
-
extractall()方法,251 -
从大文档中提取联系信息(项目),205
-
extractpdfimages.py,415
-
extract()方法,251 -
extractpdftext.py,413
-
extract_text()方法,413 -
ezgmail模块,480–483 -
body属性,482 -
downloadAllAttachments()函数,483 -
downloadAttachment()函数,483 -
EMAIL_ADDRESS变量,481 -
init()函数,480 -
messages属性,482 -
recent()函数,482 -
recipient属性,482 -
sender属性,482 -
send()函数,480–481 -
setup,480
-
subject属性,482 -
summary()函数,481–482 -
timestamp属性,482 -
unread()函数,481–482 -
EZSheets
-
convertAddress()函数,368–369 -
downloadAsCSV()方法,366 -
downloadAsExcel()方法,366 -
downloadAsHTML()方法,366 -
downloadAsODS()方法,366 -
downloadAsPDF()方法,366 -
downloadAsTSV()方法,366 -
getColumnLetterOf()函数,368–369 -
getColumn()方法,369–370 -
getColumnNumberOf()函数,368–369 -
getRow()方法,369–370 -
getRows()方法,370–371 -
GmailThread数据类型,481 -
listSpreadsheets()函数,364 -
概述,359–360
-
Sheet()函数,367 -
Spreadsheet()函数,364 -
updateColumn()方法,369–370 -
updateRow()方法,369–370 -
updateRows()方法,370–371 -
F
-
f''(f-string 文字),164 -
F1常量(Selenium),322 -
factorialLog.py,99
-
快速失败,98
-
FailSafeException(PyAutoGUI),541 -
假区块链加密货币骗局(项目),375
-
False值,28 -
假值,58
-
Fantasia,540
-
奇幻游戏库存(项目),156
-
fetchall()方法(SQLite),394–395 -
fg()函数(Bext),270 -
图形,517
-
File数据类型,230,231 -
文件编辑器
-
与交互式外壳的差异,13
-
概述,12
-
窗口,xl
-
文件扩展名,225,260
-
文件名,217
-
FileNotDecryptedError,421 -
fill()方法(Playwright),327 -
findall()方法,189,192 -
find_element()方法(Selenium),306,320 -
find_elements()方法(Selenium),320 -
在电子表格中寻找错误(项目),381
-
Firefox 浏览器,303,318
-
Firefox()函数,318 -
firefox.launch()函数,323 -
first属性(Playwright),326 -
fiveTimes.py,59
-
float()函数,16 -
浮点数,8,23
-
流程图,28
-
流程控制
-
代码块,34
-
break语句,54 -
条件,33
-
continue语句,55 -
elif语句,37–38 -
else语句,36–37 -
for循环,59–61 -
if语句,35–36 -
while循环,49–51 -
文件夹
-
主页,221
-
概述,218,221
-
父级,222
-
root,218
-
子文件夹,218
-
Font()函数,328 -
字体(Excel),348
-
外键,404
-
for循环 -
列表,115
-
概述,59–61
-
语句,59
-
format_description属性(Pillow),498 -
format()方法,165 -
格式说明符,165,207,301,366,390,437,498,569
-
forward()方法(Selenium),319 -
正斜杠(
/) -
除法运算符,6
-
路径分隔符(macOS/Linux),218
-
frankenstein_jpn.png,533
-
frankenstein.png,530,531,534
-
冻结窗格(Excel),353
-
freeze_panes属性(OpenPyXL),353 -
星期五的 13 号寻找者(项目),477
-
FROM关键字(SQLite),394 -
from random import *,64 -
fromstimestamp()(datetime模块),464 -
f-string,164–165
-
函数。另见各个函数的名称
-
调用,14
-
定义,76
-
def语句,74 -
概述,73
-
G
-
收集人口统计数据(项目),338
-
Gauss,Carl Friedrich,60
-
geckodriver,319
-
Gemini(LLM),530
-
gender属性(PyTTSx3),567 -
生成随机测验文件(项目),235
-
getActiveWindow()函数(PyAutoGUI),552 -
getAllTitles()函数(PyAutoGUI),552 -
getAllWindowsAt()函数(PyAutoGUI),553 -
getAllWindows()函数(PyAutoGUI),553 -
getAllWindowsWithTitle()函数(PyAutoGUI),553 -
get_attribute()方法(Selenium),320,326 -
get_by_alt_text()方法(Playwright),325 -
get_by_label()方法,(Playwright) 325 -
get_by_placeholder()方法(Playwright),325 -
get_by_role()方法(Playwright),325 -
get_by_text()方法(Playwright),325 -
getcolor()函数(Pillow),494 -
getColumnLetterOf()函数(EZSheets),368–369 -
get_column_letters()函数,336 -
getColumn()方法(EZSheets),368–369 -
getColumnNumberOf()函数(EZSheets),368–369 -
getcwd()函数,221,279 -
get()函数(requests),294,298,307 -
get_key()函数(Bext),271 -
get_languages()函数(PyTesseract),532 -
get()方法(字典),144 -
getpixel()方法(Pillow),506 -
getProperty()方法(PyTTSx3),567 -
getroot()方法(xml模块),453 -
getRow()方法(EZSheets),368–369 -
getRows()方法(EZSheets),370–371 -
gettext()方法(Beautiful Soup),308,309 -
千兆字节(GB),22,45
-
全局作用域,82
-
global语句,85 -
globalStatement.py,85
-
全局变量,82
-
glob()方法,227–228,246 -
glob 模式,227–228
-
Gmail,360
-
GmailThread数据类型,481 -
go_back()方法(Playwright),324 -
go_forward()方法(Playwright),324 -
Google Cloud,360,480
-
Google Drive API,360
-
Google Fi,484
-
Google Forms,375
-
Google Sheets API,359,360
-
goto()函数,271 -
语法,7
-
图,517
-
图形用户界面(GUI),259,472,540
-
大于(
>)运算符,29 -
大于等于(
>=)运算符,29 -
贪婪匹配,199
-
grid()函数(Matplotlib),521 -
group_either()函数(Humre),211 -
group()函数(Humre),211 -
group()方法(re模块),188,190 -
组,189
-
groups()方法(re模块),190 -
guessTheNumber.py,65
-
guests.txt,435
-
GUI(图形用户界面),259,472,540
-
H
-
Harkins,Peter Bhat,213
-
Hartley,Jonathan,270
-
哈希字符(
#),14,204 -
哈希映射,447
-
哈希表,447
-
表头行(CSV),442,443
-
无头模式,323
-
height属性(Pillow),498 -
height属性(PyAutoGUI),542,552 -
height()函数(Bext),271 -
helloFunc.py,73–74
-
helloFunc2.py,75
-
hello.mp3,272
-
hello.py,13
-
hello.txt,230,231
-
隐藏文件,279
-
hide()函数,271 -
占用 CPU,282
-
Homebrew(macOS 软件包管理器),528
-
HOME常量(Selenium),322 -
主文件夹,221
-
horizontal_flip.png,506
-
hotkey()函数(PyAutoGUI),559 -
hour属性(datetime 模块),464 -
href属性(HTML),302 -
HTML(超文本标记语言),301
-
角括号,301
-
属性,302
-
元素,301
-
概述,301
-
标签,301
-
Humre,209
-
ANY_SINGLE常量,212 -
ANYTHING_GREEDY常量,212 -
ANYTHING_LAZY常量 212 -
at_least()函数,211 -
at_least_group()函数,211 -
at_most()函数,211 -
at_most_group()函数,211 -
BACK_1常量,210 -
between()函数,211 -
between_group()函数,211 -
chars()函数,211 -
DIGIT常量,210 -
DOUBLE_QUOTE常量,210 -
either()函数,211 -
ends_with()函数,211 -
exactly()函数,211 -
exactly_group()函数,211 -
group_either()函数,211 -
group()函数,211 -
named_group()函数,211 -
NEWLINE常量,210 -
nonchars()函数,211 -
NONDIGIT常量,210 -
NONWHITESPACE常量,210 -
NONWORD常量,210 -
one_or_more()函数,211 -
one_or_more_group()函数,211 -
one_or_more_lazy()函数,211 -
one_or_more_lazy_group()函数,211 -
optional()函数,211 -
optional_group()函数,211 -
parse()函数,213 -
PERIOD常量,210 -
QUOTE常量,210 -
SOMETHING_GREEDY常量,212 -
SOMETHING_LAZY常量,212 -
starts_and_ends_with()函数,211 -
starts_with()函数,211 -
TAB常量,210 -
WHITESPACE常量,210 -
WORD常量,210 -
zero_or_more()函数,211 -
zero_or_more_group()函数,211 -
zero_or_more_lazy()函数,211 -
zero_or_more_lazy_group()函数,211 -
超文本标记语言。参见 HTML
-
超文本传输协议(HTTP),289,485
-
超文本传输协议安全(HTTPS),289
-
I
-
I常量(re 模块),203 -
id属性(HTML),302 -
ID常量(Selenium),320 -
在硬盘上识别照片文件夹(项目),524
-
IEEE-754 标准,23
-
IF NOT EXISTS,389 -
if语句,35–36 -
ImageColor.getcolor()函数,494 -
ImageColor模块(Pillow),494–495 -
Image数据类型(Pillow),496,548 -
Image数据类型(PyPDF),416 -
ImageDraw数据类型,512 -
ImageDraw.Draw()函数,512,513 -
ImageDraw模块(Pillow),512 -
ImageFont数据类型(Pillow),514,515 -
ImageFont模块(Pillow),515 -
ImageFont.truetype()函数,515 -
Image.new()函数,499 -
ImageNotFoundException(PyAutoGUI),550 -
图像站点下载器(项目),330
-
image_to_string()函数(PyTesseract),533 -
不可变,126
-
import as语句,453,517,529 -
import语句,63 -
imprint属性(Docx),428–429 -
Inches()函数(Docx),433 -
缩进,34,123–124
-
索引
-
列表,110
-
负数,111
-
SQLite,399
-
字符串,163
-
IndexError,111 -
index()列表方法,120 -
无限循环,54,56,282
-
info()函数(logging 模块),101 -
init()函数(EZGmail),480 -
init()函数(PyTTSx3),566 -
注入攻击,393
-
in关键字,59 -
内存数据库,406
-
inner_html()方法(Playwright),326 -
inner_text()方法(Playwright),326 -
in操作符,116,164 -
就地修改,121,127
-
input()函数,15,267 -
输入验证(项目),94
-
insert_blank_page()方法,419 -
INSERT INTO查询,392 -
insert()列表方法,120–121 -
检查元素,304
-
INT或(INTEGER)数据类型(SQLite),389 -
整数(或 int)数据类型,8
-
整数除法(
//)运算符,6 -
交互式棋盘模拟器(项目),147
-
交互式 shell
-
与文件编辑器的区别,13
-
概述,xl,4
-
提示(
>>>),xli -
int()函数,16,18 -
使用 Python 创造自己的电脑游戏,148
-
is_absolute()方法,223 -
isActive属性(PyAutoGUI),555 -
isalnum()字符串方法,167,168 -
isalpha()字符串方法,167,168 -
is_checked()方法(Playwright),326 -
isdecimal()字符串方法,167,168 -
is_dir()方法,228 -
is_displayed()方法(Selenium),320 -
is_enabled()方法(Playwright),326 -
is_enabled()方法(Selenium),320 -
is_encrypted属性(PyPDF),421 -
is_file()方法,228 -
islower()字符串方法,167,168 -
isMaximized属性(PyAutoGUI),554 -
isMinimized属性(PyAutoGUI),554 -
ISO 3166 国家代码,299
-
isolation_level命名参数,388 -
isPhoneNumber.py,186
-
is_selected()方法(Selenium),320 -
isspace()字符串方法,167,168 -
istitle()字符串方法,167,168 -
isupper()字符串方法,167,168 -
is_visible()方法(Playwright),326 -
italic属性(Docx),428–429 -
items()字典方法,142 -
iter_content()方法(Requests),296 -
iterdir()方法,247 -
iter()方法(xml模块),454,455 -
J
-
JavaScript,275,318,438
-
JavaScript 对象表示法(JSON),297,386,438,448–451,569
-
join()函数(os.path模块),220 -
join()字符串方法,169 -
JSON(JavaScript 对象表示法),297,386,438,448–451,569
-
json.dumps()函数,450 -
json.loads()函数,298,450,488 -
K
-
键,API,297
-
KeyboardInterrupt,56,90,91,134,135,282,462,463 -
KEYBOARD_KEYS常量(PyAutoGUI),557 -
keyDown()函数(PyAutoGUI),558 -
KeyError,141,144 -
键,字典,139–140,447,452
-
Keys数据类型(Selenium) -
BACK_SPACE常量,322 -
DELETE常量,322 -
DOWN常量,322 -
END常量,322 -
ENTER常量,322 -
ESCAPE常量,322 -
F1常量,322 -
HOME常量,322 -
LEFT常量,322 -
PAGE_DOWN常量,322 -
PAGE_UP常量,322 -
RETURN常量,322 -
RIGHT常量,322 -
TAB常量,322 -
UP常量,322 -
keys()字典方法,142 -
key=str.lower关键字参数,123,423 -
keyUp()函数(PyAutoGUI),558 -
键值对,139–140,144,447,452
-
kill()方法(subprocess模块),472 -
千字节(KB),22
-
L
-
地区(蓝光光盘和 DVD),22
-
lang命名参数(PyTesseract),533 -
languages属性(pyttsx),567 -
大型语言模型(LLM),414,530–532
-
last属性(Playwright),326 -
纬度,299
-
launchd,473
-
懒匹配,199
-
left属性(PyAutoGUI),552 -
LEFT常量(Selenium),322 -
Legend数据类型(Matplotlib),521 -
legend()函数(Matplotlib),521 -
len()函数,16,113,292 -
小于(
<)运算符,29 -
小于或等于(
<=)运算符,29 -
LibreOffice,332
-
车牌照片,529
-
LIKE操作符,396 -
LIMIT关键字,398 -
Line2D数据类型(Matplotlib),517 -
换行符(Word),432
-
LineChart(),355 -
行续行符(
\),124 -
linegraph.png,517
-
line()方法(Pillow),513,514 -
linenum属性,440 -
行终止符(CSV),442
-
lineterminator='\n\n'关键字参数,441,442 -
LINK_TEXT常量(Selenium),320 -
链接验证(项目),330
-
Linux
-
主目录,222
-
路径分隔符,218
-
根目录,218
-
终端,4,259
-
listdir()函数(os模块),247 -
list()函数,128,267 -
列表
-
连接,113
-
数据类型,110
-
索引,110
-
len()函数,113 -
list()函数,128,267 -
嵌套,154
-
切片,112
-
元组转换,128
-
listSpreadsheets()函数,364 -
列表到字典转换(项目),157
-
文字面量,30,160,161
-
littleKid.py,43–44
-
ljust()字符串方法,171 -
LLaMA(LLM),530
-
LLM(大型语言模型),414,530–532
-
load_model()函数(Whisper),568,569 -
load_workbook()函数,333,350 -
loads()函数(json模块),298,450,488 -
localGlobalSameName.py,84
-
本地作用域,82
-
本地变量,82
-
locateAllOnScreen()函数(PyAutoGUI),550 -
locateOnScreen()函数(PyAutoGUI),550 -
location属性(Selenium),320 -
Locator数据类型(Playwright),325,326 -
locator()方法,325 -
记录级别,101
-
logging模块 -
basicConfig()函数,99 -
critical()函数,101 -
debug()函数,99 -
disable()函数,101 -
error()函数,101 -
info()函数,101 -
warning()函数,101 -
登出快捷键,541
-
经度,299
-
看起来很忙(项目),563
-
循环
-
for,59–61 -
while,49–51 -
lower()字符串方法,166 -
ls命令,228,260 -
lstrip()字符串方法,171 -
M
-
macOS
-
主目录,222
-
路径分隔符,218
-
根目录,218
-
终端,4,259
-
Mad Libs 程序,240–241
-
magic8Ball2.py,125
-
makedirs()函数,223 -
映射,447
-
Match数据类型(re模块),189 -
数学运算符,6
-
Matplotlib,517
-
matrixscreensaver.py,132
-
max_column属性,335 -
maximize()方法(PyAutoGUI),555 -
maxResults命名参数,482 -
max_row属性,335 -
麦克奈特,帕特里克,195
-
餐饮成分数据库(项目),410
-
兆字节(MB),22
-
内存,10,21
-
merge_cells()方法(OpenPyXL),352 -
merge()方法(PyPDF),417 -
merge_page()方法(PyPDF),419 -
单元合并(Excel),352
-
messages属性(EZGmail),482 -
metadata.json,573
-
方法,120
-
Metro PCS,484
-
微秒,124,464,465,469
-
Microsoft,259,331,424,493
-
Microsoft Edge 浏览器,303
-
Microsoft Speech API (SAPI5),566
-
Microsoft SQL Server,384
-
Microsoft Word,424
-
midbottom属性(PyAutoGUI),552 -
middleClick()函数(PyAutoGUI),545 -
midleft属性(PyAutoGUI),552 -
midright属性(PyAutoGUI),552 -
midtop属性(PyAutoGUI),552 -
minimize()方法(PyAutoGUI),555 -
minute属性(datetime模块),464 -
mkdir()方法,223,244 -
MMS(多媒体消息服务),484
-
ModuleNotFoundError,267 -
模数/余数(
%)操作符,6 -
month属性(datetime模块),464 -
mouseDown()函数(PyAutoGUI),544 -
MouseInfo 应用程序,547–548
-
mouseInfo()函数(PyAutoGUI),547 -
mouseUp()函数(PyAutoGUI),544 -
move()函数(PyAutoGUI),543 -
move()函数(shutil模块),245 -
moveTo()函数(PyAutoGUI),542,543 -
Mu 代码编辑器 IDE
-
调试器,103
-
安装,xxxix
-
开始,xl
-
多行注释,162
-
多行字符串,149,161
-
多媒体消息服务(MMS),484
-
多重赋值技巧,117,143
-
乘法(
*)操作符,6 -
乘法表生成器(项目),356
-
可变,126,129
-
myPets.py,117
-
myProgramLog.txt,100
-
MySQL,384
-
编程的神话,xxxiv–xxxvi
-
N
-
name属性(pyttsx),567 -
NAME常量(Selenium),320 -
named_group()函数(Humre),211 -
命名参数,78–79
-
NameError,15,114,189 -
namelist()方法,250 -
变量的命名标签隐喻,10,129
-
NAPS2 应用程序,533–536
-
安装,534
-
从 Python 运行,534
-
负字符类,193
-
负索引,111
-
嵌套字典和列表,154
-
new()函数(Pillow),499 -
NEWLINE常量(Humre),210 -
new_name.txt,245
-
new_page()方法,324 -
NFTs,376
-
nonchars()函数(Humre),211 -
NONDIGIT常量(Humre),210 -
None 值,39,77–78,449
-
非贪婪匹配,199
-
NONWHITESPACE常量(Humre),210 -
NONWORD常量(Humre),210 -
Norton Commander,268
-
not布尔操作符,32,47 -
不等于(
!=)操作符,29 -
not in操作符,116,164 -
NOT NULL(SQLite),389,391 -
now()函数(datetime模块),464 -
NSSpeechSynthesizer,566
-
ntfy 服务,485
-
nth()方法(Playwright),326 -
NULL数据类型(SQLite),389 -
空值(XML),452
-
数字,8
-
O
-
OAuth,361,480
-
OCR(光学字符识别),526,529
-
车速表,22
-
Office,365,332
-
one_or_more()函数(Humre),211 -
one_or_more_group()函数(Humre),211 -
one_or_more_lazy()函数(Humre),211 -
one_or_more_lazy_group()函数(Humre),211 -
全部搜索结果打开(项目),310
-
open命令,474 -
open()函数(内置),230,233,413,439,440 -
open()函数(shelve),234 -
open()函数(webbrowser),291 -
open()方法(Pillow),496 -
openpyxl模块 -
chart.BarChart()函数,354 -
chart.LineChart(),355 -
chart.PieChart(),355 -
chart.Reference()函数,354 -
chart.ScatterChart(),355 -
chart.Series()函数,354 -
load_workbook()函数,333,350 -
utils.column_index_from_string()函数,336 -
utils.get_column_letters()函数,336 -
OpenPyXL 包,332
-
OpenStreetMap,291
-
OpenWeatherMap,297,299
-
OperationalError,389 -
oppositeday.py,44–45
-
光学字符识别(OCR),526,529
-
optional()函数(Humre),211 -
optional_group()函数(Humre),211 -
Oracle,384
-
or布尔操作符,32 -
ORDER BY子句,397 -
运算顺序,6
-
ord()函数,172 -
原点,495,541
-
os模块 -
chdir()函数,221,279 -
getcwd()函数,221,279 -
listdir()函数,247 -
makedirs()函数,223 -
path.exists()function, 229 -
path.isdir()function, 229 -
path.isfile()function, 229 -
path.join()function, 220 -
rmdir()function, 246 -
unlink()function, 246 -
walk()function, 247–249 -
outlineattribute (Docx), 428–429 -
overlay, 419
-
P
-
page breaks (Word), 432
-
Pagedata type (Playwright), 324 -
Pagedata type (PyPDF), 413 -
PAGE_DOWNconstant (Selenium), 322 -
pagesattribute, 413 -
PAGE_UPconstant (Selenium), 322 -
Paragraphdata type, 425–426 -
parameters, 75
-
parent elements (XML), 451
-
parent folder, 222, 225
-
parentheses (
()), 6, 14, 127 -
parentsattribute, 225 -
parse()function (Humre), 213 -
parse()function (xmlmodule), 453 -
parsing HTML, 304, 306
-
PARTIAL_LINK_TEXTconstant (Selenium), 320 -
passingReference.py, 130
-
password()function, 275 -
PasswordTypedata type (PyPDF), 421 -
pasted.png, 501, 502
-
paste()function (Pyperclip), 173, 175, 270, 293 -
paste()function (Pyperclipimg), 516 -
paste()method (Pillow), 500–501, 503 -
path, URL, 299
-
Path.cwd()function, 221, 223 -
Pathdata type (pathlibmodule), 218, 572 -
PATH environment variable
-
editing, 261–262
-
geckodriver for Selenium, 319
-
overview, 261
-
Path()function, 218 -
Path.home()function, 221 -
pathlibmodule -
overview, 218
-
Pathdata type, 218, 572 -
PosixPathdata type, 219 -
WindowsPathdata type, 219 -
Patterndata type, 188–189 -
pausecommand, 276 -
PAUSEvariable (PyAutoGUI), 541 -
PDF (Portable Document Format), 411
-
extracting images, 415
-
extracting text, 412–413
-
owner password, 421
-
Password Breaker, 435
-
passwords, 420, 421
-
user password, 421
-
pdfkit package, 433
-
pdfminermodule, 413 -
PDF Paranoia (project), 434
-
pdfplumber package, 433
-
PdfReader()function, 413, 415 -
pdfrw package, 433
-
PdfWriter()function, 416 -
PEP 8, 12
-
PERIODconstant (Humre), 210 -
pformat()function, 341 -
PieChart(), 355 -
pie()function (Matplotlib), 520 -
Pig Latin (project), 176
-
pigLat.py, 176
-
Pillow package, 494
-
pingcommand, 473 -
pip (pip installs packages), 264, 265
-
pipe character (
|), 191, 205 -
pits (Blu-ray discs and DVDs), 22
-
pixel()function (PyAutoGUI), 549 -
pixelMatchesColor()function (PyAutoGUI), 549 -
pixels, 23, 494, 506
-
plaintext files, 229, 235, 301, 425, 437, 447, 448, 451
-
platformattribute, 267 -
playsound()function, 272 -
playsound3package, 272 -
playwrightmodule -
chromium.launch()function, 324 -
firefox.launch()function, 323 -
overview, 323
-
webkit.launch()function, 324 -
pltmodule (Matplotlib), 517 -
bar()function, 519 -
grid()function, 521 -
legend()function, 521 -
pie()function, 520 -
plot()function, 517, 521 -
savefig()function, 517 -
scatter()function, 518 -
show()function, 517, 518, 519, 520, 521 -
title()function, 521 -
xlabel()function, 521 -
ylabel()function, 521 -
plus sign (
+) -
addition operator, 6
-
concatenation operator, 8, 113
-
match one or more, 197
-
point()method (Pillow), 512, 514 -
Point named tuple (PyAutoGUI), 543, 544, 552
-
poll()method (subprocessmodule), 471 -
polygon()method (Pillow), 513, 514 -
Popen()函数(subprocess模块),471 -
可移植文档格式。参见 PDF
-
position()函数(PyAutoGUI),543, 544 -
POSIX,219
-
PosixPath数据类型(pathlib模块),219 -
post()函数(Requests),486 -
PostgreSQL,384
-
PowerShell,259
-
pprint()函数(pprint模块),396, 397, 403 -
pprint模块 -
pformat()函数,341 -
pprint()函数,396, 397, 403 -
PRAGMA TABLE_INFO查询,391 -
PRAGMA查询,391, 405, 406 -
优先级,6, 33
-
为 OCR 预处理图像,529
-
press()函数(PyAutoGUI),558 -
press()方法(Playwright),327 -
美化计时器(项目),476–477
-
打印调试,101
-
print()函数,14, 101, 267, 270 -
printRandom.py,63
-
produceSales3.xlsx,345
-
代码分析,460
-
程序
-
执行,34
-
加载,14
-
概述,12
-
运行,13
-
保存,14
-
project.docx,217
-
prompt, xli, 4, 13, 259
-
prompt()函数(PyMsgBox),275 -
pub-sub 通知服务,485
-
purpleImage.png,499
-
推送通知
-
接收,487–489
-
发送,485–486
-
传输元数据,486–487
-
putpixel()方法(Pillow),506 -
putPixel.png,506, 507
-
pwd命令,260, 279 -
PyAutoGUI,540
-
PyAutoGUI,安全措施,541
-
pyautogui模块 -
click()函数,544 -
countdown()函数,560 -
doubleClick()函数,544 -
drag()函数,545 -
dragTo()函数,545 -
FailSafeException,541 -
getActiveWindow()函数,552 -
getAllTitles()函数,552 -
getAllWindowsAt()函数,553 -
getAllWindows()函数,553 -
getAllWindowsWithTitle()函数,553 -
hotkey()函数,559 -
ImageNotFoundException,550 -
KEYBOARD_KEYS常量,557 -
keyDown()函数,558 -
keyUp()函数,558 -
locateAllOnScreen()函数,550 -
locateOnScreen()函数,550 -
middleClick()函数,545 -
mouseDown()函数,544 -
mouseInfo()函数,547 -
mouseUp()函数,544 -
move()函数,543 -
moveTo()函数,542, 543 -
PAUSE变量,541 -
pixel()函数,549 -
pixelMatchesColor()函数,549 -
position()函数,543, 544 -
press()函数,558 -
pyautogui.py,540
-
rightClick()函数,544 -
screenshot()函数,548 -
scroll()函数,546, 547 -
size()函数,542 -
sleep()函数,560 -
useImageNotFoundException()函数,551 -
write()函数,556 -
PyCon,172, 195
-
Pygame,148
-
PyInstaller 包,285
-
pymsgbox模块 -
alert()函数,275 -
confirm()函数,275 -
概述,274
-
password()函数,275 -
prompt()函数,275 -
PyMuPDF 包,433
-
PyPDF 包,412, 415
-
pypdf.PdfReader()函数,413, 415 -
pypdf.PdfWriter()函数,416 -
pyperclipimg 包
-
copy()函数,516 -
paste()函数,516 -
pyperclip模块 -
copy()函数,173, 175, 270, 279 -
paste()函数,173, 175, 270, 293 -
PyPI,265, 577
-
PyTesseract,527
-
Python,xxxiv
-
Python-Docx 包。参见
docx模块 -
Python 包索引,265, 577
-
Python Tutor 网站,14
-
pyttsx3.init()函数,566 -
PyTTSx3 包,566
-
Q
-
限定符(正则表达式),193
-
量词(正则表达式),193, 195
-
查询(SQLite),387
-
ALTER TABLE,403, 404 -
BEGIN, 401 -
CREATE INDEX, 399 -
DELETE FROM, 392, 401 -
DROP INDEX, 399 -
INSERT INTO, 392 -
PRAGMA, 405, 406 -
PRAGMATABLE_INFO, 391 -
SELECT, 391, 392, 394 -
UPDATE, 392, 400 -
查询语言,384
-
查询字符串(URL)299
-
问号 (
?) -
可选匹配, 196
-
SQLite 通配符,393
-
quit()方法 (Selenium), 319 -
配额,Google Sheets,379
-
QUOTE常量 (Humre), 210 -
R
-
r'' (原始字符串字面量),161
-
raise_for_status()方法, 295 -
raise语句,96 -
randint()函数 (random模块), 63, 66 -
random模块 -
choice()函数, 118, 133 -
randint()函数,63, 66 -
shuffle()函数, 118 -
randomQuizGenerator.py, 236
-
range()函数,59, 62, 116 -
原始字符串, 161
-
readCensusExcel.py, 339
-
reader()函数 (csv模块), 439 -
使用剪贴板读取文本字段(项目),563
-
readlines()方法 (File数据类型), 231 -
read()方法 (File数据类型), 230 -
读取模式, 231
-
read_text()方法,230 -
REAL数据类型 (SQLite), 389 -
recent()函数 (EZGmail), 482 -
recipient属性 (EZGmail), 482 -
记录(数据库),385
-
rectangle()方法 (Pillow), 513, 514 -
矩形,流程图,28
-
Recursion_Chapter1.pdf, 413
-
Recursive Book of Recursion, The, 412
-
参考,129–130,131
-
Reference数据类型 (OpenPyXL), 354 -
refresh()方法 (EZSheets), 365 -
refresh()方法 (Selenium), 319 -
正则表达式。参见 正则表达式
-
正则表达式搜索(项目),241
-
strip()方法的正则表达式版本(项目),215 -
正则表达式
-
组,189
-
概述, 186
-
解析 HTML, 304
-
限定符,193
-
量词,193, 195
-
字符串,161
-
测试人员, 189
-
详细模式, 204
-
关系数据库,385
-
关系运算符, 29
-
相对路径, 222
-
reload()方法 (Playwright), 324 -
余数/模运算符 (
%), 6 -
re模块 -
compile()函数, 188 -
DOTALL常量, 200 -
I常量, 203 -
Match数据类型,189 -
Pattern数据类型,188–189 -
VERBOSE常量, 204 -
remove()列表方法, 121 -
从 CSV 文件中删除标题的程序,444–447
-
渲染, 302
-
重新编号文件(项目),256
-
ReportLab 包,433
-
Republic Wireless, 484
-
requests模块 -
检查错误,294
-
使用它下载文件,294
-
get()函数, 294, 298, 307 -
post()函数,486 -
resize()方法 (Pillow), 503 -
分辨率(屏幕),542
-
Response数据类型 (Requests), 294, 295, 298 -
restore()方法 (PyAutoGUI), 555 -
restyled.docx, 429
-
RETURN常量 (Selenium), 322 -
return语句, 76–77, 80 -
返回值,76 –77
-
reverse()列表方法,123 -
RGBA 值,494
-
RGB 值,494
-
right属性 (PyAutoGUI), 552 -
rightClick()函数 (PyAutoGUI), 544 -
RIGHT常量 (Selenium), 322 -
rj.txt, 296
-
rjust()方法, 170–171 -
rmdir()函数 (os模块), 246 -
rmtree()函数 (shutil模块), 246 -
银行机器人,193,203,289,435,482,483
-
机器人流程自动化 (RPA), 540
-
石头、剪刀、布,67
-
回滚事务,SQLite, 401
-
Romeo and Juliet, 23, 294, 296
-
根元素 (XML), 451
-
根目录, 218
-
rotated180.png, 504
-
rotated270.png, 504
-
rotated6_expanded.png,504,505
-
rotated6.png,504,505
-
rotated90.png,504
-
rotate()方法(Pillow),504 -
rotate()方法(PyPDF),418 -
round()函数,20,46 -
四舍五入数字,20
-
行(数据库),385
-
row属性(OpenPyXL),334 -
rowCount属性,371 -
row_dimensions属性(OpenPyXL),351 -
rowid,385 -
RPA(机器人流程自动化),540
-
rpsGame.py,67–68
-
RSS 网络馈送格式,451
-
rstrip()字符串方法,171 -
rtl属性(Docx),428–429 -
runAndWait()方法(PyTTSx3),566 -
Run数据类型(Docx),425–426 -
运行对话框,Windows,276
-
run()函数(cProfile模块),461 -
run()函数(subprocess模块),471 -
runs属性(Docx),426 -
S
-
sameNameError.py,86
-
sameNameLocalGlobal.py,86
-
sampleChart3.xlsx,354
-
sanitize()方法(yt-dlp),573 -
SAPI5(Microsoft Speech API),566
-
savefig()函数(Matplotlib),517 -
save()方法(Docx),430,431 -
save()方法(OpenPyXL),343 -
save()方法(Pillow),498 -
save_to_file()方法(PyTTSx3),568 -
SAX(XML),453
-
say()方法(PyTTSx3),566 -
ScatterChart(),355 -
scatter()函数(Matplotlib),518 -
scheme,URL,299
-
范围(Google API),361
-
范围(变量),82
-
Scott,Tom,173,290
-
screenshot()函数(PyAutoGUI),548 -
script,258
-
scroll()函数(PyAutoGUI),546,547 -
search()方法,188,192 -
searchpypi.py,310
-
second属性(datetime模块),464 -
选择性复制(项目),255
-
SELECT关键字,394 -
select()方法,306,307–308 -
SELECT查询,391,392,394 -
Selenium 包,318
-
send2trash()函数,247 -
send2trash模块,247 -
sender属性(EZGmail),482 -
send()函数(EZGmail),480–481 -
send_keys()方法(Selenium),321 -
Series数据类型(OpenPyXL),354 -
Serious Python,234
-
set_checked()方法,327 -
setdefault()方法,144,341,377 -
set()方法(xml模块),456 -
setProperty()方法(PyTTSx3),567 -
shadow属性(Docx),428–429 -
莎士比亚,威廉,294
-
工作表,332,363
-
Sheet数据类型(EZSheets),367 -
Sheet()方法(EZSheets),372–373 -
sheetnames属性,343 -
sheets属性(EZSheets),365 -
sheetTitles属性(EZSheets),365,367,373 -
shell,259
-
shell 脚本,258
-
shelve模块,234 -
短路,124
-
简写字符类,194
-
短消息服务(SMS),484
-
show()函数(Bext),271 -
show()函数(Matplotlib),517,518,519,520,521 -
showmap.py,291
-
show()方法(Pillow),496 -
shuffle()(random模块),118 -
shutil模块,244 -
copy()函数,244 -
copytree()函数,245 -
move()函数,245 -
rmtree()函数,246 -
简单的 XML API(SAX),453
-
简单倒计时(项目),474
-
simplecountdown.py,474
-
唱“99 瓶啤酒”(项目),575
-
单引号(
'),8,160 -
size属性(Pillow),498 -
size属性(PyAutoGUI),552 -
size属性(Selenium),320 -
size()函数(PyAutoGUI),542 -
Size命名元组(PyAutoGUI),542,552 -
sleep()函数(PyAutoGUI),560 -
sleep()函数(time模块),89,92,135,271,274,461 -
切片,112,163
-
slow_mo命名参数,324 -
small_caps属性 (Docx),428–429 -
Smith, Kurtwood,289
-
SMS (短信服务),484
-
电子邮件网关
-
缺点,485
-
概述,484–485
-
蛇形命名法,12
-
Snowstorm 程序,273–274
-
SOMETHING_GREEDY常量 (Humre),212 -
SOMETHING_LAZY常量 (Humre),212 -
sonnet29.txt,231
-
《魔法师的学徒》,540
-
sort()列表方法,98,122–123,397,422,423 -
源 (HTML),302
-
source命令,264 -
spam.txt,230
-
spike.py,91
-
spiralDraw.py,545
-
splitlines()方法,488 -
split()方法,170 -
Spotlight,277
-
电子表格,331,363。另见 工作簿
-
电子表格应用程序,331
-
Spreadsheet数据类型 (EZSheets),364 -
Spreadsheet()函数 (EZSheets),364 -
Sprint,484
-
SQL (结构化查询语言),384
-
SQLite,384
-
应用程序
-
DB Browser,408
-
DBeaver 社区,408
-
sqlite3.exe,407
-
SQLite Studio,408
-
比较,387
-
索引,399
-
注入攻击,393
-
概述,384
-
rowid,385 -
严格模式,390
-
类型亲和力,390
-
sqlite3.exe 应用程序,407
-
sqlite3模块,384 -
connect()函数,388 -
DatabaseError,388 -
OperationalError,389 -
sqlite_version变量,390 -
sqlite_schema表,391 -
SQLite Studio 应用程序,408
-
方括号 (
[]),110,112,123 -
SRT (SubRip Subtitle),570
-
印章,419
-
标准库,63
-
标准输出,473
-
星号字符 (
*),197 -
start命令,474 -
start()方法 (Playwright),324 -
starts_and_ends_with()函数 (Humre),211 -
starts_with()函数 (Humre),211 -
startswith()字符串方法,169 -
st_atime属性,226 -
stat()方法,225 -
stat_result数据类型,225 -
status_code属性,294 -
st_ctime属性,226 -
stdout属性,473 -
词干,225
-
range()的步长参数,62,335 -
Step In (调试器),103
-
Step Out (调试器),104
-
Step Over (调试器),103
-
st_mtime属性,226 -
stop()方法 (Playwright),324 -
strftime指令,467–468 -
strftime()函数 (time模块),467–468 -
str()函数,16,18 -
严格模式 (SQLite),390
-
strike属性 (Docx),428–429 -
字符串
-
连接,8
-
复制到剪贴板,173
-
f-strings,164
-
插值,165
-
长度,16
-
文字面量,160
-
方法,166–171
-
多行,149,161
-
概述,7–8,160
-
从剪贴板粘贴,173
-
原始,161
-
复制,9
-
三重引号,162,204
-
strip()字符串方法,171,172 -
强密码检测 (项目),215
-
strptime()函数 (time模块),468–469 -
结构化查询语言 (SQL),384
-
st_size属性,226 -
样式 (Word),425
-
style属性 (Docx),427 -
段落和运行样式 (Word),427
-
SubElement()函数 (xml模块),456 -
子元素 (XML),451
-
子文件夹,218
-
subject属性 (EZGmail),482 -
sub()方法 (re模块),203 -
submit()方法,321 -
submit.png,551
-
subprocess.Popen()函数,471,472 -
subprocess.run()函数,470–471 -
SubRip 子标题 (SRT),570
-
减法 (
-) 操作符,6 -
sudo命令,407,528,566,578 -
后缀,225
-
summary()函数 (EZGmail),481–482 -
Super Stopwatch (项目),462–464
-
suprocess模块,470 -
svelte.png,503
-
unlink()函数(os模块),246 -
unmerge_cells()方法(OpenPyXL),352 -
取消合并单元格(Excel),352
-
unread()函数(EZGmail),481–482 -
未终止的字符串字面量,8
-
UP常量(Selenium),322 -
更新电子表格(项目),344–347
-
updateColumn()方法(EZSheets),368–369 -
updatedProduceSales3.xlsx,347
-
updateProduce.py,346
-
UPDATE查询,392,400 -
updateRow()方法(EZSheets),368–369 -
updateRows()方法(EZSheets),370–371 -
upper()方法,166 -
URL(统一资源定位符)
-
域名,299
-
概述,290,299,310
-
路径,299
-
查询字符串,299
-
方案,299
-
U.S. Cellular,484
-
useImageNotFoundException()函数(PyAutoGUI),551 -
UTC(协调世界时),460
-
UTF-8 编码,23,172,173
-
V
-
validateInput.py,168
-
value属性(OpenPyXL),334 -
值(键值对),139–140,447,452
-
values()字典方法,142 -
vampire.py,39–40
-
vampire2.py,41–42
-
变量
-
驼峰命名法,12
-
初始化,10
-
隐喻,10,11,129
-
名称,11
-
概述,12
-
覆盖,10–11
-
蛇形命名法,12
-
venv模块,263 -
VERBOSE常量(re模块),204 -
详细模式,204
-
威瑞森,484
-
version_info.major, 267 -
version_info.minor,267 -
vertical_flip.png,506
-
查看页面源代码,302
-
查看源代码,302
-
维珍移动,484
-
虚拟环境,263
-
虚拟专用网络(VPN),290
-
Voice数据类型,567 -
电压,22
-
VTT(网络视频文本轨道),570
-
W
-
wait()方法,471 -
WAL(写前日志),388
-
walk()函数,247–249 -
warning()函数,101 -
watermark.pdf,419
-
WD_BREAK.PAGE,432 -
天气 API,297
-
web3,376
-
网络应用,258
-
webbrowser模块,291 -
WebDriver 数据类型,318,319
-
webdriver.Firefox()函数,318 -
WebElement 数据类型,319–320
-
网络馈送格式
-
Atom,451
-
RSS,451
-
webkit.launch()函数,324 -
网络视频文本轨道(VTT),570
-
WHERE子句,394,400,401 -
where命令,263 -
which命令,262 -
while循环,49–51,61 -
while语句,49 -
whisper.load_model()函数,568,569 -
Whisper 模型
-
'base',569 -
'large-v3',569 -
'medium',569 -
'small',569 -
'tiny',569 -
Whisper 包,568
-
空白,6,170,171,449,452
-
WHITESPACE常量(Humre),210 -
width属性(Pillow),498 -
width属性(PyAutoGUI),542,552 -
width()函数(Bext),271 -
威利森,西蒙,xxxvii
-
Win32Window数据类型(PyAutoGUI),552 -
Window数据类型(PyAutoGUI),552 -
Windows,微软
-
命令提示符,4,259
-
主目录,222
-
路径分隔符,218
-
PowerShell,259
-
根目录,218
-
终端,259
-
WindowsPath数据类型,219 -
with语句,233 -
单词边界,201
-
WORD常量(Humre),210 -
工作簿,332
-
Workbook数据类型,333 -
Workbook()函数,343 -
工作表,332
-
Worksheet数据类型,334 -
写前日志(WAL),388
-
写二进制模式,296
-
writeFormula3.xlsx,350
-
write()函数(PyAutoGUI),556 -
write()方法(File数据类型),230,232,413 -
write()方法(ZipFile),250 -
写模式,232
-
writer()函数(csv模块),440 -
writerow()方法,440,442 -
write_text()方法,230 -
编写游戏机器人 (项目), 563
-
X
-
x属性 (PyAutoGUI), 544 -
x 坐标, 495, 496
-
Xfinity Mobile, 484
-
xlabel()函数 (Matplotlib), 521 -
XML (可扩展标记语言), 297, 438
-
元素, 451
-
子元素, 451
-
父元素, 451
-
根元素, 451
-
子元素, 451
-
概述, 297
-
tag属性, 454 -
text属性, 454 -
xml.dom模块, 453 -
xml.etree.ElementTree模块, 453 -
xml.sax模块, 453 -
XPath, 306, 327, 455
-
Y
-
YAML, 447
-
y属性 (PyAutoGUI), 544 -
y 坐标, 495, 496
-
year属性 (datetime模块), 464 -
ylabel()函数 (Matplotlib), 521 -
yourName.py, 52
-
yourName2.py, 54
-
yourScript.bat, 277
-
yourScript.command, 277
-
yourScript.desktop, 278
-
yourScript.py, 259, 267, 269, 276, 285
-
YoutubeDL()函数 (yt-dlp), 571 -
YouTube Transcriber (项目), 575
-
yt_dlp模块, 571 -
yt-dlp 包, 571
-
yt_dlp.YoutubeDL()函数, 571 -
Z
-
zero_or_more()函数 (Humre), 211 -
zero_or_more_group()函数 (Humre), 211 -
zero_or_more_lazy()函数 (Humre), 211 -
zero_or_more_lazy_group()函数 (Humre), 211 -
zigzag.py, 89
-
ZIP_DEFLATED属性, 250 -
ZIP 文件, 249
-
ZipFile数据类型, 249, 250 -
ZipFile()函数, 250 -
zipfile模块, 249 -
zipfile.ZIP_DEFLATED属性, 250 -
zipfile.ZipFile()函数, 250 -
ZipInfo数据类型, 251 -
Zira 语音, 567
-
Zona, Carina C., 195
-
zophie.jpg, 498
-
zophie.png, 496, 498, 516
-
符号
-
=(赋值运算符), 10, 130 -
+=(增强加法赋值运算符), 119 -
/=(增强除法赋值运算符), 119 -
%=(增强取模赋值运算符), 119 -
*=(增强乘法赋值运算符), 119 -
-=(增强减法赋值运算符), 119 -
\(反斜杠) -
转义字符, 190
-
行续行符, 124
-
路径分隔符 (Windows), 218
-
%*(批处理文件,所有参数), 276 -
@(批处理文件,隐藏命令), 276 -
{}(花括号) -
使用字典, 139
-
使用
format()方法, 150 -
使用 f-strings, 164
-
匹配多个限定符, 198
-
^( caret 符号) -
匹配字符串开头, 201
-
负字符类, 193
-
:(冒号), 34, 468 -
$(美元符号), 201 -
.(点) -
当前文件夹, 222
-
正则表达式, 194
-
..(点点) 父文件夹, 222 -
.*(点星号), 199 -
"(双引号), 160 -
==(等于) 运算符, 29 -
**(指数) 运算符, 6 -
/(正斜杠) -
除法运算符, 6
-
路径分隔符 (macOS/Linux), 218
-
>(大于) 运算符, 29 -
>=(大于或等于) 运算符, 29 -
#(井号), 14, 204 -
//(整数除法) 运算符, 6 -
>>>(交互式 shell 提示符), xli -
<(小于) 运算符, 29 -
<=(小于或等于) 运算符, 29 -
%(取模/余数) 运算符, 6 -
*(乘法) 运算符, 6 -
!=(不等于) 运算符, 29 -
()(圆括号), 6, 14, 127 -
|(管道字符), 191, 205 -
+(加号) -
加法运算符, 6
-
连接运算符, 8, 113
-
匹配一个或多个, 197
-
?(问号) -
可选匹配, 196
-
SQLite 通配符, 393
-
'(单引号), 8, 160 -
[](方括号), 110, 112, 123 -
*(星号字符), 197 -
-(减法) 运算符, 6 -
'''(三引号), 162 -
_(下划线), 11, 12, 194 -
A
-
*A:* 驱动器, 222
-
abs()函数, 20–21 -
absolute()方法, 224 -
绝对路径, 222, 223
-
绝对值, 20
-
可访问性应用 (macOS), 540
-
可访问的富互联网应用 (ARIA), 325
-
ACID 测试 (原子一致性隔离持久), 393
-
activate.bat (venv), 263
-
activate()方法 (PyAutoGUI), 555 -
active属性 (OpenPyXL), 334 -
活动工作表, 334
-
活动窗口, 545
-
添加徽标 (项目), 507–512
-
add_blank_page()方法, 419 -
add_break()方法 (Docx), 432 -
向维基标记添加项目符号 (项目), 174
-
add_heading()方法, 431 -
addingBoringcoinTransactions.py, 378
-
为猜数字添加声音 (项目), 574
-
add_paragraph()方法, 430 -
add_picture()方法, 433 -
add_run()方法, 430 -
AES-256, 420
-
age属性 (PyTTSx3), 567 -
人工智能, 413–414
-
alert()函数 (PyMsgBox), 275 -
代数棋类记谱法, 145
-
all_caps属性 (Docx), 428–429 -
all()方法, 326 -
allMyCats1.py, 114
-
allMyCats2.py, 115
-
阿尔法透明度, 494
-
alternatingText.py, 173
-
替换 (
|) 运算符, 191 -
ALTER TABLE查询, 403, 404 -
Anaconda, 265
-
锚点, 225
-
and布尔运算符, 31 -
角括号 (
<>), 15, 20, 259, 301, 451 -
ANY_SINGLE常量, 212 -
ANYTHING_GREEDY常量, 212 -
ANYTHING_LAZY常量, 212 -
API (应用程序编程接口), 297, 306, 359, 360
-
键, 297, 301
-
应用程序, 258
-
append() -
列表方法, 120, 142
-
PyPDF 方法, 416–417
-
追加模式, 232
-
苹果, 259
-
应用程序, 258
-
应用程序编程接口. 见 API
-
apt命令, 407, 528, 566, 578 -
归档文件, 249
-
area属性 (PyAutoGUI), 552 -
参数, 75, 130
-
ARIA (可访问的富互联网应用), 325
-
arial.ttf, 515
-
数组, 447
-
ASCII, 23
-
ASCII 艺术鱼缸程序, 271
-
ASCII 字母顺序, 123
-
ASC关键字 (SQLite), 397 -
as关键字, 233 -
断言, 97–98
-
assert语句, 97–98 -
分配, 87
-
赋值运算符 (
=), 10, 130 -
赋值语句, 10
-
关联数组, 447
-
星号 (
*) -
glob, 227
-
乘法运算符, 6
-
正则表达式, 197, 199
-
SQLite, 396
-
at_least()函数 (Humre), 211 -
at_least_group()函数 (Humre), 211 -
at_most()函数 (Humre), 211 -
at_most_group()函数 (Humre), 211 -
原子一致性隔离持久 (ACID) 测试, 393
-
Atom 网络馈送格式, 451
-
AT&T, 484
-
AttributeError, 64, 121, 540 -
属性 (HTML). 另见 各个属性名称
-
href, 302 -
id, 302 -
概述, 302
-
attrs属性 (Beautiful Soup), 308 -
auditBoringcoin.py, 376
-
扩展赋值运算符
-
扩展加法赋值运算符 (
+=), 119 -
扩展除法赋值运算符 (
/=), 119 -
扩展取模赋值运算符 (
%=), 119 -
扩展乘法赋值运算符 (
*=), 119 -
扩展减法赋值运算符 (
-=), 119 -
automateboringstuff3 包, 266
-
自动取消订阅者 (项目), 490
-
B
-
*B:* 驱动器, 222
-
BACK_1(Humre), 210 -
back()方法 (Selenium), 319 -
后向引用, 203
-
反斜杠 (
\) -
转义字符, 190
-
行续行符, 124
-
路径分隔符(Windows), 218
-
BACK_SPACE常量(Selenium), 322 -
将文件夹备份到 ZIP 文件(项目), 252
-
backup.db, 402
-
backup()方法(SQLite), 402, 406 -
bacon.txt, 232
-
银行家舍入法, 20
-
BarChart()函数(Matplotlib), 354 -
bar()函数(Matplotlib), 519 -
二进制数系统, 21
-
十进制数系统, 21
-
basicConfig()函数(logging模块), 99 -
Batchfelder, Ned, 172
-
批处理文件, 258
-
%*(所有参数), 276 -
@(隐藏命令), 276 -
Beautiful Soup, 306–309
-
BeautifulSoup()函数, 307 -
BEGIN查询, 401 -
between()函数(Humre), 211 -
between_group()函数(Humre), 211 -
Bext 包
-
bg()函数, 270 -
clear()函数, 271 -
fg()函数, 270 -
get_key()函数, 271 -
goto()函数, 271 -
height()函数, 271 -
hide()函数, 271 -
show()函数, 271 -
title()函数, 271 -
width()函数, 271 -
Beyond the Basic Stuff with Python, 258, 461
-
bg()函数(Bext), 270 -
Big Book of Small Python Projects, The, 70, 154, 180, 271, 529
-
二进制文件, 229–230, 411
-
二进制数, 21–23, 134, 172
-
绑定, 87
-
birthdays.py, 141
-
位, 22
-
按位或运算符(
|), 204 -
空行, 14, 15
-
空行插入器(项目), 357
-
BLOB数据类型(SQLite), 389 -
区块链, 376
-
块执行, 461
-
代码块, 34
-
body属性(EZGmail), 482 -
bold属性(Docx), 428–429 -
布尔
-
and运算符, 31 -
二进制运算符, 31
-
数据类型, 28
-
not运算符, 32 -
or运算符, 32 -
短路, 124
-
一元运算符, 32
-
bool()函数, 58 -
Boost Mobile, 484
-
borb包, 433 -
bottom属性(PyAutoGUI), 552 -
bottomleft属性(PyAutoGUI), 552 -
bottomright属性(PyAutoGUI), 552 -
边界,单词,201
-
bounding_box()方法, 326 -
box属性(PyAutoGUI), 552 -
变量的框隐喻, 10, 11
-
box元组, 496 -
boxPrint.py, 96
-
大括号(
{}) -
与字典一起使用, 139
-
使用
format()方法, 150 -
使用 f-strings, 164
-
匹配多个限定符, 198
-
断点, 106
-
break语句, 54 -
brew命令, 528 -
浏览器
-
Chrome, 303
-
DB, 408
-
开发者工具, 303
-
Edge, Microsoft, 303
-
Firefox, 303, 318
-
使用网络浏览器打开, 291
-
Tor, 290
-
Browser数据类型, 324 -
浏览器文本抓取器(项目), 536–538
-
暴力破解密码攻击, 435
-
bs4模块, 307 -
buggyAddingProgram.py, 104
-
build 文件夹(PyInstaller), 285
-
内置函数, 63
-
bulletPointAdder.py, 174
-
By.CLASS_NAME常量, 320 -
By.CSS_SELECTOR常量, 320 -
By.ID常量, 320 -
By.LINK_TEXT常量, 320 -
By.NAME常量, 320 -
By.PARTIAL_LINK_TEXT常量, 320 -
By.TAG_NAME常量, 320 -
bytes, 22, 172, 296
-
bytes数据类型, 296, 456 -
C
-
*C:* 驱动器, 218, 222
-
calcProd.py, 460
-
Calibri 字体, 348
-
调用栈, 80–81
-
驼峰命名法, 12
-
验证码(Completely Automated Public Turing test to tell Computers and Humans Apart), 555
-
capture_output参数, 473 -
箭头符号 (^)
-
匹配字符串开头, 201
-
负字符类, 193
-
级联样式表。见 CSS
-
区分大小写,12,203,218,396,485
-
猫疫苗接种检查器(项目),409–410
-
ccwd命令,279 -
ccwd.py,279
-
cd命令,260 -
Cell数据类型,334 -
手机服务提供商
-
AT&T,484
-
Boost Mobile,484
-
板球,484
-
Google Fi,484
-
Metro PCS,484
-
Republic Wireless,484
-
Sprint,484
-
T-Mobile,484
-
U.S. Cellular,484
-
Verizon,484
-
Virgin Mobile,484
-
Xfinity Mobile,484
-
单元格,在电子表格中,332,363
-
census2010.py,342
-
censuspopdata.xlsx,338
-
center属性(PyAutoGUI),552 -
center()方法,171 -
centerx属性(PyAutoGUI),552 -
centery属性(PyAutoGUI),552 -
字符类
-
创建,193
-
负数,193
-
简写,193
-
characterCount.py,145
-
字符样式,427
-
chars()函数(Humre),211 -
图表,354,517
-
Chart数据类型(OpenPyXL),354 -
ChatGPT(LLM),414,530
-
chdir()函数,221,279 -
check()方法(Playwright),327 -
象棋盘,145–146,147
-
国际象棋字典验证器(项目),156
-
子元素(XML),451
-
chmod命令,277,278,280,281 -
choice()函数(random模块),118,133 -
chr()函数,172 -
Chrome 浏览器,303
-
chromium.launch()函数,324 -
电路,22
-
CLASS_NAME常量(Selenium),320 -
从句,33
-
clear命令,272 -
clear()函数(Bext),271 -
clear()函数(cls/clear 命令),272 -
clear()方法(Selenium),320 -
click()函数(PyAutoGUI),544 -
click()方法(Playwright),326,327 -
click()方法(Selenium),321 -
剪贴板,270
-
剪贴板记录器(项目),281
-
cliprec.bat,283
-
cliprec.command,284
-
cliprec.desktop,284
-
cliprec.py,282
-
“关闭,打开”格式,61
-
close()方法 -
File数据类型,230,232 -
剧本模块,324
-
PyAutoGUI 模块,555
-
shelve模块,234 -
sqlite3模块,389 -
zipfile模块,251 -
cls命令,272 -
Cm()函数,433 -
代码点(Unicode),172
-
代码风格,12
-
硬币翻转连续(项目),137
-
Collatz 序列(项目),94
-
冒号(:),34,468
-
颜色,494
-
像素,494
-
RGBA 值,494
-
RGB 值,494
-
文本,270
-
Colorama 包,270
-
colormap变量(Pillow),495 -
column属性(OpenPyXL),334 -
columnCount属性,371 -
column_dimensions属性(OpenPyXL),351 -
column_index_from_string()函数,336 -
列,在 Excel 电子表格中
-
转换字母和数字,336
-
设置宽度,351
-
合并和取消合并,352
-
从多个 PDF 中合并选择页面(项目),422
-
Comma Code(项目),136
-
逗号分隔,111
-
命令行参数,269,472
-
命令行界面(CLI),259
-
命令提示符,259
-
命令,258
-
名称,268
-
逗号分隔值。见 CSV
-
注释
-
概述,14
-
多行,162
-
比较运算符,29
-
compile()函数(re模块),188 -
编译 Python 程序,285
-
CompletedProcess数据类型,471 -
压缩文件
-
创建 ZIP 文件,249
-
提取 ZIP 文件,251
-
概述,249
-
读取 ZIP 文件,250
-
压缩类型,250
-
条件表达式,272
-
条件,33
-
confirm()函数(PyMsgBox),275,561 -
connect()函数(SQLite),388 -
Connection数据类型,388 -
控制台,259
-
控制台,Google Cloud,360
-
常量,133,149
-
上下文管理器,233
-
Continue(调试器),103
-
continue语句,55 -
习惯用法,xxxii,6,12,15,219,263,388,389,399,452
-
convertAddress()函数(EZSheets),368–369 -
转换,电子表格列字母和数字,336
-
转换数据类型,17
-
将电子表格转换为其他格式(项目),381
-
coordinate属性(OpenPyXL),334 -
协调世界时(UTC),460
-
坐标系统,495
-
坐标元组,495
-
copy命令,268 -
复制 CSS 选择器,306
-
copy()函数 -
copy模块,131 -
Pillow 模块,500–501,502
-
Pyperclipimg 模块,516
-
Pyperclip 模块,173,175,270
-
shutil模块,244 -
copy模块 -
copy()函数,131 -
deepcopy()函数,131 -
copyTo()方法(EZSheets),365,374 -
copytree()函数(shutil模块),245 -
countdown()函数(PyAutoGUI),560 -
count()方法,326 -
国家代码,ISO 3166,299
-
cp1252 编码,231
-
cp命令,268 -
cProfile.run()函数,461 -
CPU,267,467,569
-
CPU,占用,282,283
-
CREATE INDEX查询,399 -
create_sheet()方法,343 -
CREATE TABLE查询,389 -
创建自定义座位卡(项目),525
-
从图像创建 PDF,533
-
凭据
-
创建,360
-
Google API,361
-
登录,362
-
撤销,362
-
板球,484
-
critical()函数(logging模块),101 -
cron, 473
-
crop()方法(Pillow),499 -
cropped.png,499,500
-
裁剪图像,499–500
-
CRUD 操作,392
-
CSS(层叠样式表)
-
概述,301
-
选择器,306,327
-
CSS_SELECTOR常量(Selenium),320 -
CSV(逗号分隔值)
-
分隔符,442
-
标题行,442,443
-
行终止符,442
-
概述,438–444
-
csv模块 -
DictReader()函数,442 -
DictWriter()函数,443 -
reader()函数,439 -
writer()函数,440 -
writerow()方法,440 -
ctime()函数(time模块),460 -
当前工作目录(CWD),220,269
-
C:\Users 文件夹,222
-
自定义邀请(项目),435
-
cwd()函数,221 -
D
-
Danjou, Julien,234
-
Dash,Ubuntu Linux,278
-
仪表板应用程序,274
-
内存数据库,406
-
DatabaseError,388 -
数据库
-
备份,402,406
-
条目,385
-
外键,404
-
概述,383
-
主键,385
-
关系型,385
-
行,385
-
SQLite 功能,387
-
与电子表格相比,384
-
表,385
-
data_only命名参数,350 -
数据序列化格式,437
-
数据类型,7
-
日期算术,466
-
datetime模块,464–469 -
datetime()函数,335,464 -
fromstimestamp(),464 -
now()函数,464 -
timedelta()函数,465 -
day属性(datetime模块),464 -
DB Browser 应用程序,408
-
DBeaver Community 应用程序,408
-
debug()函数(logging模块),99 -
调试器
-
断点,106
-
Continue,103
-
概述,103
-
Step In,103
-
Step Out,104
-
Step Over,103
-
抛硬币调试(项目),108
-
十进制数字,21
-
decode()方法(xml模块),456 -
decrypt()方法(PyPDF),421,436 -
去重,75
-
deepcopy()函数(copy模块),131 -
默认文件扩展名应用,473
-
定义函数,76
-
Deflate 压缩算法,250
-
def语句,74 -
DELETE常量(Selenium),322 -
DELETE FROM查询,392,401 -
delete()方法(EZSheets),365–366 -
删除不需要的文件(项目),255–256
-
分隔符(CSV),442
-
del语句,114,122 -
demo.docx,425,426,429
-
DESC关键字,397 -
开发者工具(浏览器),303
-
菱形,流程图,28
-
字典
-
检查键是否存在,143
-
get()方法,144 -
items()方法,142 -
keys()方法,142 -
概述,139
-
嵌套,154
-
setdefault()方法,144,341,377 -
无序,140
-
values()方法,142 -
dictionary.txt,435
-
DictReader()函数,442 -
DictWriter()函数,443 -
DIGIT常量(Humre),210 -
dimensions3.xlsx,351
-
dir命令,228,260 -
目录,218,221
-
disable()函数(logging模块),101 -
dishonestcapacity.py,45
-
dist文件夹(PyInstaller),285 -
Doctorow,Cory,186
-
Document数据类型(Docx),425 -
Document()函数(Docx),425,430 -
文档对象模型 (DOM),453
-
docx模块 -
add_break()方法,432 -
add_heading()方法,431 -
add_picture()方法,433 -
all_caps属性,428–429 -
bold属性,428–429 -
Cm()函数,433 -
Document
()函数,425,430 -
double_strike属性,428–429 -
emboss属性,428–429 -
imprint属性,428–429 -
Inches()函数,433 -
italic属性,428–429 -
outline属性,428–429 -
概述,424
-
rtl属性,428–429 -
runs属性,426 -
shadow属性,428–429 -
small_caps属性,428–429 -
strike属性,428–429 -
style属性,427 -
text属性,425 -
underline属性,428–429 -
WD_BREAK.PAGE常量,432 -
美元符号 (
$), 201 -
域名,URL,299
-
点 (
.) -
当前文件夹,222
-
正则表达式,194
-
DOTALL常量(re模块),200 -
点点 (
..) 父文件夹,222 -
点星 (
.*),199 -
doubleClick()函数(PyAutoGUI),544 -
双重否定,32
-
DOUBLE_QUOTE常量(Humre),210 -
双引号 (
"), 160 -
double_strike属性(Docx),428–429 -
DOWN常量(Selenium),322 -
downloadAllAttachments()函数(EZGmail),483 -
downloadAsCSV()方法(EZSheets),366 -
downloadAsExcel()方法 (EZSheets), 366 -
downloadAsHTML()方法(EZSheets),366 -
downloadAsODS()方法 (EZSheets),366 -
downloadAsPDF()方法(EZSheets),366 -
downloadAsTSV()方法 (EZSheets),366 -
downloadAttachment()函数(EZGmail),483 -
downloadFolder参数,483 -
下载
-
附件,483
-
文件,296
-
视频,571–573
-
天气预报,297
-
网络漫画,312
-
网页,294
-
下载 Google 表单数据(项目),380
-
download()方法(yt-dlp),571 -
下载 XKCD 漫画(项目),312
-
downloadXkcdComics.py,313
-
drag()函数(PyAutoGUI),545 -
拖动,545
-
dragTo()函数(PyAutoGUI),545 -
Draw()函数(Pillow),512,514 -
drawing.png,514
-
驱动器,218,225
-
DROP INDEX查询,399 -
dumps()函数(json模块),450 -
E
-
echo命令,261,578 -
Edge 浏览器,Microsoft,303
-
either()函数(Humre),211 -
Element数据类型(xml模块),453 -
Element()函数(xml模块),456 -
元素
-
HTML,301
-
XML,451
-
ElementTree模块,453 -
elif语句, 37–38 -
ellipse()方法(Pillow),513,514 -
else语句, 36–37 -
EMAIL_ADDRESS变量(EZGmail),481 -
基于电子邮件的计算机控制(项目),490
-
电子邮件
-
下载附件,483
-
阅读,481
-
搜索,482–483
-
发送,480–481
-
emboss属性(Docx),428–429 -
编码,172
-
encoding命名参数, 231 -
加密,290
-
encrypt()方法(PyPDF),420–421 -
END常量(Selenium),322 -
end命名参数, 79 -
ends_with()函数(Humre),211 -
endswith()方法, 169 -
ENTER常量(Selenium),322 -
条目(数据库),385
-
enumerate()函数, 118,370,415 -
环境变量,261
-
纪元,Unix,460
-
等于(
==)运算符,29 -
error()函数, 101 -
错误
-
AttributeError, 64, 121, 540 -
DatabaseError, 388 -
FileNotDecryptedError, 421 -
IndexError, 111 -
KeyError, 141, 144 -
ModuleNotFoundError, 267 -
NameError, 15, 114, 189 -
OperationalError, 389 -
SyntaxError, 7,29 -
TypeError, 9,16,122,220 -
UnboundLocalError, 87 -
转义字符
-
概述,160
-
正则表达式,190
-
ESCAPE常量(Selenium),322 -
eSpeak,566
-
评估,19,33
-
exactly()函数(Humre),211 -
exactly_group()函数(Humre),211 -
*example3.xlsx*, 438 -
*example.db*, 387 -
Excel
-
图表,354
-
字体,348
-
公式,345,349,350,351
-
合并单元格,352
-
概述,331
-
取消合并单元格,352
-
Excel-to-CSV 转换器(项目),457
-
异常,96
-
executable属性(sys模块),267 -
execute()方法(SQLite),389 -
执行,34
-
exist_ok命名参数, 244,248 -
exists()方法(pathlib模块),228 -
*exitExample.py*, 64 -
exit()函数(sys模块),64 -
expand命名参数(Pillow),504 -
指数(
**)运算符,6 -
扩展 ASCII,231
-
可扩展标记语言。参见 XML
-
扩展名,文件,225
-
extractall()方法, 251 -
从大型文档中提取联系信息(项目),205
-
extractpdfimages.py, 415 -
extract()方法, 251 -
*extractpdftext.py*, 413 -
extract_text()方法, 413 -
ezgmail模块, 480–483 -
body属性, 482 -
downloadAllAttachments()函数, 483 -
downloadAttachment()函数, 483 -
EMAIL_ADDRESS变量, 481 -
init()函数, 480 -
messages属性, 482 -
recent()函数, 482 -
recipient属性, 482 -
sender属性, 482 -
send()函数, 480–481 -
设置,480
-
subject属性, 482 -
summary()函数, 481–482 -
timestamp属性, 482 -
unread()函数, 481–482 -
EZSheets
-
convertAddress()函数, 368–369 -
downloadAsCSV()方法, 366 -
downloadAsExcel()方法, 366 -
downloadAsHTML()方法, 366 -
downloadAsODS()方法, 366 -
downloadAsPDF()方法, 366 -
downloadAsTSV()方法, 366 -
getColumnLetterOf()函数, 368–369 -
getColumn()方法, 369–370 -
getColumnNumberOf()函数, 368–369 -
getRow()方法, 369–370 -
getRows()方法, 370–371 -
GmailThread数据类型, 481 -
listSpreadsheets()函数, 364 -
概述,359–360
-
Sheet()函数, 367 -
Spreadsheet()函数, 364 -
updateColumn()方法, 369–370 -
updateRow()方法, 369–370 -
updateRows()方法, 370–371 -
F
-
f''(f-string 文字),164 -
F1常量(Selenium),322 -
factorialLog.py,99
-
快速失败,98
-
FailSafeException(PyAutoGUI),541 -
假冒区块链加密货币骗局(项目),375
-
False值,28 -
假值,58
-
Fantasia,540
-
奇幻游戏库存(项目),156
-
fetchall()方法(SQLite),394–395 -
fg()函数(Bext),270 -
图形,517
-
File数据类型,230,231 -
文件编辑器
-
与交互式外壳的差异,13
-
概述,12
-
窗口,xl
-
文件扩展名,225,260
-
文件名,217
-
FileNotDecryptedError,421 -
fill()方法(Playwright),327 -
findall()方法,189,192 -
find_element()方法(Selenium),306,320 -
find_elements()方法(Selenium),320 -
在电子表格中查找错误(项目),381
-
Firefox 浏览器,303,318
-
Firefox()函数,318 -
firefox.launch()函数,323 -
first属性(Playwright),326 -
fiveTimes.py,59
-
float()函数,16 -
浮点数,8,23
-
流程图,28
-
流程控制
-
代码块,34
-
break语句,54 -
条件,33
-
continue语句,55 -
elif语句,37–38 -
else语句,36–37 -
for循环,59–61 -
if语句,35–36 -
while循环,49–51 -
文件夹
-
主页,221
-
概述,218,221
-
父级,222
-
根,218
-
子文件夹,218
-
Font()函数,328 -
字体(Excel),348
-
外键,404
-
for循环 -
列表,115
-
概述,59–61
-
语句,59
-
format_description属性(Pillow),498 -
format()方法,165 -
格式说明符,165,207,301,366,390,437,498,569
-
forward()方法(Selenium),319 -
正斜杠(
/) -
除法运算符,6
-
路径分隔符(macOS/Linux),218
-
frankenstein_jpn.png,533
-
frankenstein.png,530,531,534
-
冻结窗格(Excel),353
-
freeze_panes属性(OpenPyXL),353 -
13 号星期五查找器(项目),477
-
FROM关键字(SQLite),394 -
from random import *,64 -
fromstimestamp()(datetime模块),464 -
f-string,164–165
-
函数。另见各个函数的名称
-
调用,14
-
定义,76
-
def语句,74 -
概述,73
-
G
-
收集人口统计数据(项目),338
-
高斯,卡尔·弗里德里希,60
-
geckodriver,319
-
Gemini(LLM),530
-
gender属性(PyTTSx3),567 -
生成随机测验文件(项目),235
-
getActiveWindow()函数(PyAutoGUI),552 -
getAllTitles()函数(PyAutoGUI),552 -
getAllWindowsAt()函数(PyAutoGUI),553 -
getAllWindows()函数(PyAutoGUI),553 -
getAllWindowsWithTitle()函数(PyAutoGUI),553 -
get_attribute()方法(Selenium),320,326 -
get_by_alt_text()方法(Playwright),325 -
get_by_label()方法,(Playwright)325 -
get_by_placeholder()方法(Playwright),325 -
get_by_role()方法(Playwright),325 -
get_by_text()方法(Playwright),325 -
getcolor()函数(Pillow),494 -
getColumnLetterOf()函数(EZSheets),368–369 -
get_column_letters()函数,336 -
getColumn()方法(EZSheets),368–369 -
getColumnNumberOf()函数(EZSheets),368–369 -
getcwd()函数,221,279 -
get()函数(requests),294,298,307 -
get_key()函数(Bext),271 -
get_languages()函数(PyTesseract),532 -
get()方法(字典),144 -
getpixel()方法(Pillow),506 -
getProperty()方法(PyTTSx3),567 -
getroot()方法(xml模块),453 -
getRow()方法(EZSheets),368–369 -
getRows()方法(EZSheets),370–371 -
gettext()方法(Beautiful Soup),308,309 -
吉字节(GB),22,45
-
全局作用域,82
-
global语句,85 -
globalStatement.py,85
-
全局变量,82
-
glob()方法,227–228,246 -
glob 模式,227–228
-
Gmail,360
-
GmailThread数据类型,481 -
go_back()方法(Playwright),324 -
go_forward()方法(Playwright),324 -
Google Cloud,360,480
-
Google Drive API,360
-
Google Fi,484
-
Google Forms,375
-
Google Sheets API,359,360
-
goto()函数,271 -
语法,7
-
图,517
-
图形用户界面(GUI),259,472,540
-
大于(
>)运算符,29 -
大于或等于(
>=)运算符,29 -
惯性匹配,199
-
grid()函数(Matplotlib),521 -
group_either()函数(Humre),211 -
group()函数(Humre),211 -
group()方法(re模块),188,190 -
组,189
-
groups()方法(re模块),190 -
guessTheNumber.py,65
-
guests.txt,435
-
GUI(图形用户界面),259,472,540
-
H
-
Harkins,Peter Bhat,213
-
Hartley,Jonathan,270
-
哈希字符(
#),14,204 -
哈希映射,447
-
哈希表,447
-
标题行(CSV),442,443
-
无头模式,323
-
height属性(Pillow),498 -
height属性(PyAutoGUI),542,552 -
height()函数(Bext),271 -
helloFunc.py,73–74
-
helloFunc2.py,75
-
hello.mp3,272
-
hello.py,13
-
hello.txt,230,231
-
隐藏文件,279
-
hide()函数,271 -
占用 CPU,282
-
Homebrew(macOS 软件包管理器),528
-
HOME常量(Selenium),322 -
主文件夹,221
-
horizontal_flip.png,506
-
hotkey()函数(PyAutoGUI),559 -
hour属性(datetime模块),464 -
href属性(HTML),302 -
HTML(超文本标记语言),301
-
角括号,301
-
属性,302
-
元素,301
-
概述,301
-
标签,301
-
Humre,209
-
ANY_SINGLE常量,212 -
ANYTHING_GREEDY常量,212 -
ANYTHING_LAZY常量,212 -
at_least()函数,211 -
at_least_group()函数,211 -
at_most()函数,211 -
at_most_group()函数,211 -
BACK_1常量,210 -
between()函数,211 -
between_group()函数,211 -
chars()函数,211 -
DIGIT常量,210 -
DOUBLE_QUOTE常量,210 -
either()函数,211 -
ends_with()函数,211 -
exactly()函数,211 -
exactly_group()函数,211 -
group_either()函数,211 -
group()函数,211 -
named_group()函数,211 -
NEWLINE常量,210 -
nonchars()函数,211 -
NONDIGIT常量,210 -
NONWHITESPACE常量,210 -
NONWORD常量,210 -
one_or_more()函数,211 -
one_or_more_group()函数,211 -
one_or_more_lazy()函数,211 -
one_or_more_lazy_group()函数,211 -
optional()函数,211 -
optional_group()函数,211 -
parse()函数,213 -
PERIOD常量,210 -
QUOTE常量,210 -
SOMETHING_GREEDY常量,212 -
SOMETHING_LAZY常量,212 -
starts_and_ends_with()函数,211 -
starts_with()函数,211 -
TAB常量,210 -
WHITESPACE常量,210 -
WORD常量,210 -
zero_or_more()函数,211 -
zero_or_more_group()函数,211 -
zero_or_more_lazy()函数,211 -
zero_or_more_lazy_group()函数,211 -
超文本标记语言。参见 HTML
-
超文本传输协议(HTTP),289,485
-
超文本传输协议安全(HTTPS),289
-
I
-
I常量(re模块),203 -
id属性(HTML),302 -
ID常量(Selenium),320 -
识别硬盘上的照片文件夹(项目),524
-
IEEE-754 标准,23
-
IF NOT EXISTS,389 -
if语句,35–36 -
ImageColor.getcolor()函数,494 -
ImageColor模块(Pillow),494–495 -
Image数据类型(Pillow),496,548 -
Image数据类型(PyPDF),416 -
ImageDraw数据类型,512 -
ImageDraw.Draw()函数,512,513 -
ImageDraw模块(Pillow),512 -
ImageFont数据类型(Pillow),514,515 -
ImageFont模块(Pillow),515 -
ImageFont.truetype()函数,515 -
Image.new()函数,499 -
ImageNotFoundException(PyAutoGUI),550 -
图像站点下载器(项目),330
-
image_to_string()函数(PyTesseract),533 -
不可变,126
-
import as语句,453,517,529 -
import语句,63 -
imprint属性(Docx),428–429 -
Inches()函数(Docx),433 -
缩进,34,123–124
-
索引
-
列表,110
-
负数,111
-
SQLite,399
-
字符串,163
-
IndexError,111 -
index()列表方法,120 -
无限循环,54,56,282
-
info()函数(logging模块),101 -
init()函数(EZGmail),480 -
init()函数(PyTTSx3),566 -
注入攻击,393
-
in关键字,59 -
内存数据库,406
-
inner_html()方法(Playwright),326 -
inner_text()方法(Playwright),326 -
in操作符,116,164 -
就地修改,121,127
-
input()函数,15,267 -
输入验证(项目),94
-
insert_blank_page()方法,419 -
INSERT INTO查询,392 -
insert()列表方法,120–121 -
检查元素,304
-
INT或(INTEGER)数据类型(SQLite),389 -
整数(或 int)数据类型,8
-
整数除法(
//)运算符,6 -
交互式棋盘模拟器(项目),147
-
交互式外壳
-
与文件编辑器的区别,13
-
概述,xl,4
-
提示(
>>>),xli -
int()函数,16,18 -
使用 Python 创造自己的电脑游戏,148
-
is_absolute()方法,223 -
isActive属性(PyAutoGUI),555 -
isalnum()字符串方法,167,168 -
isalpha()字符串方法,167,168 -
is_checked()方法(Playwright),326 -
isdecimal()字符串方法,167,168 -
is_dir()方法,228 -
is_displayed()方法(Selenium),320 -
is_enabled()方法(Playwright),326 -
is_enabled()方法(Selenium),320 -
is_encrypted属性(PyPDF),421 -
is_file()方法,228 -
islower()字符串方法,167,168 -
isMaximized属性(PyAutoGUI),554 -
isMinimized属性(PyAutoGUI),554 -
ISO 3166 国家代码,299
-
isolation_level命名参数,388 -
isPhoneNumber.py,186
-
is_selected()方法(Selenium),320 -
isspace()字符串方法,167,168 -
istitle()字符串方法,167,168 -
isupper()字符串方法,167,168 -
is_visible()方法(Playwright),326 -
italic属性(Docx),428–429 -
items()字典方法,142 -
iter_content()方法(Requests),296 -
iterdir()方法,247 -
iter()方法(xml模块),454,455 -
J
-
JavaScript,275,318,438
-
JavaScript 对象表示法 (JSON) 297,386,438,448–451,569
-
join()函数(os.path模块),220 -
join()字符串方法,169 -
JSON(JavaScript 对象表示法),297,386,438,448–451,569
-
json.dumps()函数,450 -
json.loads()函数,298,450,488 -
K
-
密钥,API,297
-
KeyboardInterrupt,56,90,91,134,135,282,462,463 -
KEYBOARD_KEYS常量(PyAutoGUI),557 -
keyDown()函数(PyAutoGUI),558 -
KeyError,141,144 -
键,字典,139–140,447,452
-
Keys数据类型(Selenium) -
BACK_SPACE常量,322 -
DELETE常量,322 -
DOWN常量,322 -
END常量,322 -
ENTER常量,322 -
ESCAPE常量,322 -
F1常量,322 -
HOME常量,322 -
LEFT常量,322 -
PAGE_DOWN常量,322 -
PAGE_UP常量,322 -
RETURN常量,322 -
RIGHT常量,322 -
TAB常量,322 -
UP常量,322 -
keys()字典方法,142 -
key=str.lower关键字参数,123,423 -
keyUp()函数(PyAutoGUI),558 -
键值对,139–140,144,447,452
-
kill()方法(subprocess模块),472 -
千字节 (KB), 22
-
L
-
地区(蓝光光盘和 DVD),22
-
lang命名参数(PyTesseract),533 -
languages属性(pyttsx),567 -
大型语言模型 (LLM),414,530–532
-
last属性(Playwright),326 -
纬度,299
-
launchd,473
-
懒匹配,199
-
left属性(PyAutoGUI),552 -
LEFT常量(Selenium),322 -
Legend数据类型(Matplotlib),521 -
legend()函数(Matplotlib),521 -
len()函数,16,113,292 -
小于 (
<) 操作符,29 -
小于或等于 (
<=) 操作符,29 -
LibreOffice,332
-
车牌照片,529
-
LIKE操作符,396 -
LIMIT关键字,398 -
Line2D数据类型(Matplotlib),517 -
行中断(Word),432
-
LineChart(),355 -
行续字符 (
\), 124 -
linegraph.png,517
-
line()方法(Pillow),513,514 -
linenum属性,440 -
行终止符(CSV),442
-
lineterminator='\n\n'关键字参数,441,442 -
LINK_TEXT常量(Selenium),320 -
链接验证(项目),330
-
Linux
-
主文件夹,222
-
路径分隔符,218
-
根文件夹,218
-
终端,4,259
-
listdir()函数(os模块),247 -
list()函数,128,267 -
列表
-
连接,113
-
数据类型,110
-
索引,110
-
len()函数,113 -
list()函数,128,267 -
嵌套的,154
-
切片,112
-
元组转换,128
-
listSpreadsheets()函数,364 -
列表到字典转换(项目),157
-
文字,30,160,161
-
littleKid.py,43–44
-
ljust()字符串方法,171 -
LLaMA (LLM),530
-
LLM(大型语言模型),414,530–532
-
load_model()函数(Whisper),568,569 -
load_workbook()函数,333,350 -
loads()函数(json模块),298,450,488 -
localGlobalSameName.py,84
-
局部作用域,82
-
局部变量,82
-
locateAllOnScreen()函数(PyAutoGUI),550 -
locateOnScreen()函数(PyAutoGUI),550 -
location属性(Selenium),320 -
Locator数据类型(Playwright),325,326 -
locator()方法,325 -
日志级别,101
-
logging模块 -
basicConfig()函数,99 -
critical()函数,101 -
debug()函数,99 -
disable()函数,101 -
error()函数,101 -
info()函数,101 -
warning()函数,101 -
退出热键,541
-
经度,299
-
看起来很忙(项目),563
-
循环
-
for,59–61 -
while,49–51 -
lower()字符串方法,166 -
ls命令,228,260 -
lstrip()字符串方法,171 -
M
-
macOS
-
主目录,222
-
路径分隔符,218
-
根目录,218
-
终端,4,259
-
Mad Libs 程序,240–241
-
magic8Ball2.py,125
-
makedirs()函数,223 -
映射,447
-
Match数据类型(re模块),189 -
数学运算符,6
-
Matplotlib,517
-
matrixscreensaver.py,132
-
max_column属性,335 -
maximize()方法(PyAutoGUI),555 -
maxResults命名参数,482 -
max_row属性,335 -
麦克肯齐,帕特里克,195
-
餐饮成分数据库(项目),410
-
兆字节(MB),22
-
内存,10,21
-
merge_cells()方法(OpenPyXL),352 -
merge()方法(PyPDF),417 -
merge_page()方法(PyPDF),419 -
合并单元格(Excel),352
-
messages属性(EZGmail),482 -
metadata.json,573
-
方法,120
-
Metro PCS,484
-
微秒,124,464,465,469
-
微软,259,331,424,493
-
微软 Edge 浏览器,303
-
微软语音 API(SAPI5),566
-
微软 SQL Server,384
-
微软 Word,424
-
midbottom属性(PyAutoGUI),552 -
middleClick()函数(PyAutoGUI),545 -
midleft属性(PyAutoGUI),552 -
midright属性(PyAutoGUI),552 -
midtop属性(PyAutoGUI),552 -
minimize()方法(PyAutoGUI),555 -
minute属性(datetime模块),464 -
mkdir()方法,223,244 -
MMS(多媒体消息服务),484
-
ModuleNotFoundError,267 -
模数/余数(
%)运算符,6 -
month属性(datetime模块),464 -
mouseDown()函数(PyAutoGUI),544 -
MouseInfo 应用程序,547–548
-
mouseInfo()函数(PyAutoGUI),547 -
mouseUp()函数(PyAutoGUI),544 -
move()函数(PyAutoGUI),543 -
move()函数(shutil模块),245 -
moveTo()函数(PyAutoGUI),542,543 -
Mu 代码编辑器 IDE
-
调试器,103
-
安装,xxxix
-
开始,xl
-
多行注释,162
-
多行字符串,149,161
-
多媒体消息服务(MMS),484
-
多重赋值技巧,117,143
-
乘法(
*)运算符,6 -
乘法表制作器(项目),356
-
可变,126,129
-
myPets.py,117
-
myProgramLog.txt,100
-
MySQL,384
-
编程的神话,xxxiv–xxxvi
-
N
-
name属性(pyttsx),567 -
NAME常量(Selenium),320 -
named_group()函数(Humre),211 -
命名参数,78–79
-
NameError,15,114,189 -
namelist()方法,250 -
变量的命名标签隐喻,10,129
-
NAPS2 应用程序,533–536
-
安装,534
-
从 Python 运行,534
-
负字符类,193
-
负索引,111
-
嵌套字典和列表,154
-
new()函数(Pillow),499 -
NEWLINE常量(Humre),210 -
new_name.txt,245
-
new_page()方法,324 -
NFTs,376
-
nonchars()函数(Humre),211 -
NONDIGIT常量(Humre),210 -
None值,39,77–78,449 -
非贪婪匹配,199
-
NONWHITESPACE常量(Humre),210 -
NONWORD常量(Humre),210 -
Norton Commander,268
-
not布尔运算符,32,47 -
不等于(
!=)运算符,29 -
not in运算符,116,164 -
NOT NULL(SQLite),389,391 -
now()函数(datetime模块),464 -
NSSpeechSynthesizer,566
-
ntfy 服务,485
-
nth()方法(Playwright),326 -
NULL数据类型(SQLite),389 -
空值(XML),452
-
数字,8
-
O
-
OAuth,361,480
-
OCR(光学字符识别),526,529
-
车速表,22
-
Office,365,332
-
one_or_more()函数(Humre),211 -
one_or_more_group()函数(Humre),211 -
one_or_more_lazy()函数(Humre),211 -
one_or_more_lazy_group()函数(Humre),211 -
全部打开搜索结果(项目),310
-
open命令,474 -
open()函数(内置),230,233,413,439,440 -
open()函数(shelve),234 -
open()函数(webbrowser),291 -
open()方法(Pillow),496 -
openpyxl模块 -
chart.BarChart()函数,354 -
chart.LineChart(),355 -
chart.PieChart(),355 -
chart.Reference()函数,354 -
chart.ScatterChart(),355 -
chart.Series()函数,354 -
load_workbook()函数,333,350 -
utils.column_index_from_string()函数,336 -
utils.get_column_letters()函数,336 -
OpenPyXL 包,332
-
OpenStreetMap,291
-
OpenWeatherMap,297,299
-
OperationalError,389 -
oppositeday.py,44–45
-
光学字符识别(OCR),526,529
-
optional()函数(Humre),211 -
optional_group()函数(Humre),211 -
Oracle,384
-
or布尔运算符,32 -
ORDER BY子句,397 -
运算顺序,6
-
ord()函数,172 -
原点,495,541
-
os模块 -
chdir()函数,221,279 -
getcwd()函数,221,279 -
listdir()函数,247 -
makedirs()函数,223 -
path.exists()函数,229 -
path.isdir()函数,229 -
path.isfile()函数,229 -
path.join()函数,220 -
rmdir()函数,246 -
unlink()函数,246 -
walk()函数,247–249 -
outline属性(Docx),428–429 -
叠加,419
-
P
-
页面分节(Word),432
-
Page数据类型(Playwright),324 -
Page数据类型(PyPDF),413 -
PAGE_DOWN常量(Selenium),322 -
pages属性,413 -
PAGE_UP常量(Selenium),322 -
Paragraph数据类型,425–426 -
参数,75
-
父元素(XML),451
-
父文件夹,222,225
-
括号(()`),6,14,127
-
parents属性,225 -
parse()函数(Humre),213 -
parse()函数(xml模块),453 -
解析 HTML,304,306
-
PARTIAL_LINK_TEXT常量(Selenium),320 -
passingReference.py,130
-
password()函数,275 -
PasswordType数据类型(PyPDF),421 -
pasted.png,501,502
-
paste()函数(Pyperclip),173,175,270,293 -
paste()函数(Pyperclipimg),516 -
paste()方法(Pillow),500–501,503 -
路径,URL,299
-
Path.cwd()函数,221,223 -
Path数据类型(pathlib模块),218,572 -
PATH 环境变量
-
编辑,261–262
-
geckodriver for Selenium,319
-
概述,261
-
Path()函数,218 -
Path.home()函数,221 -
pathlib模块 -
概述,218
-
Path数据类型,218,572 -
PosixPath数据类型,219 -
WindowsPath数据类型,219 -
Pattern数据类型,188–189 -
pause命令,276 -
PAUSE变量(PyAutoGUI),541 -
PDF(可移植文档格式),411
-
提取图像,415
-
提取文本,412–413
-
所有者密码,421
-
密码破丨解丨器,435
-
密码,420,421
-
用户密码,421
-
pdfkit 包,433
-
pdfminer模块,413 -
PDF Paranoia(项目),434
-
pdfplumber 包,433
-
PdfReader()函数,413,415 -
pdfrw 包,433
-
PdfWriter()函数,416 -
PEP 8,12
-
PERIOD常量(Humre),210 -
pformat()函数,341 -
PieChart()函数,355 -
pie()函数(Matplotlib),520 -
Pig Latin(项目),176
-
pigLat.py,176
-
Pillow 包,494
-
ping命令,473 -
pip(安装包),264,265
-
管道字符(
|),191,205 -
沟洞(蓝光光盘和 DVD),22
-
pixel()函数(PyAutoGUI),549 -
pixelMatchesColor()函数(PyAutoGUI),549 -
像素,23,494,506
-
纯文本文件,229,235,301,425,437,448,451
-
platform属性,267 -
playsound()函数,272 -
playsound3包,272 -
playwright模块 -
chromium.launch()函数,324 -
firefox.launch()函数,323 -
概述,323
-
webkit.launch()函数,324 -
plt模块(Matplotlib),517 -
bar()函数,519 -
grid()函数,521 -
legend()函数,521 -
pie()函数,520 -
plot()函数,517,521 -
savefig()函数,517 -
scatter()函数,518 -
show()函数,517,518,519,520,521 -
title()函数,521 -
xlabel()函数,521 -
ylabel()函数,521 -
加号(
+) -
加法运算符,6
-
连接运算符,8,113
-
匹配一个或多个,197
-
point()方法(Pillow),512,514 -
命名元组(PyAutoGUI),543,544,552
-
poll()方法(subprocess模块),471 -
polygon()方法(Pillow),513,514 -
Popen()函数(subprocess模块),471 -
可移植文档格式。见 PDF
-
position()函数(PyAutoGUI),543,544 -
POSIX,219
-
PosixPath数据类型(pathlib模块),219 -
post()函数(Requests),486 -
PostgreSQL,384
-
PowerShell,259
-
pprint()函数(pprint模块),396,397,403 -
pprint模块 -
pformat()函数,341 -
pprint()函数,396,397,403 -
PRAGMA TABLE_INFO查询,391 -
PRAGMA查询,391,405,406 -
优先级,6,33
-
预处理图像以进行 OCR,529
-
press()函数(PyAutoGUI),558 -
press()方法(Playwright),327 -
美化计时器(项目),476–477
-
打印调试,101
-
print()函数,14,101,267,270 -
printRandom.py,63
-
produceSales3.xlsx,345
-
性能分析代码,460
-
程序
-
执行,34
-
加载,14
-
概述,12
-
运行,13
-
保存,14
-
project.docx,217
-
提示,xli,4,13,259
-
prompt()函数(PyMsgBox),275 -
发布/订阅通知服务,485
-
purpleImage.png,499
-
推送通知
-
接收,487–489
-
发送,485–486
-
传输元数据,486–487
-
putpixel()方法(Pillow),506 -
putPixel.png,506,507
-
pwd命令,260,279 -
PyAutoGUI,540
-
PyAutoGUI,安全措施,541
-
pyautogui模块 -
click()函数,544 -
countdown()函数,560 -
doubleClick()函数,544 -
drag()函数,545 -
dragTo()函数,545 -
FailSafeException,541 -
getActiveWindow()函数,552 -
getAllTitles()函数,552 -
getAllWindowsAt()函数,553 -
getAllWindows()函数,553 -
getAllWindowsWithTitle()函数,553 -
hotkey()函数,559 -
ImageNotFoundException,550 -
KEYBOARD_KEYS常量,557 -
keyDown()函数,558 -
keyUp()函数,558 -
locateAllOnScreen()函数,550 -
locateOnScreen()函数,550 -
middleClick()函数,545 -
mouseDown()函数,544 -
mouseInfo()函数,547 -
mouseUp()函数,544 -
move()函数,543 -
moveTo()函数,542,543 -
PAUSE变量,541 -
pixel()函数,549 -
pixelMatchesColor()函数,549 -
position()函数,543,544 -
press()函数,558 -
pyautogui.py,540
-
rightClick()函数,544 -
screenshot()函数,548 -
scroll()函数,546,547 -
size()函数,542 -
sleep()函数,560 -
useImageNotFoundException()函数,551 -
write()函数,556 -
PyCon,172,195
-
Pygame,148
-
PyInstaller 包,285
-
pymsgbox模块 -
alert()函数,275 -
confirm()函数,275 -
概述,274
-
password()函数,275 -
prompt()函数,275 -
PyMuPDF 包,433
-
PyPDF 包,412,415
-
pypdf.PdfReader()函数,413,415 -
pypdf.PdfWriter()函数,416 -
pyperclipimg 包
-
copy()函数,516 -
paste()函数,516 -
pyperclip模块 -
copy()函数,173,175,270,279 -
paste()函数,173,175,270,293 -
PyPI,265,577
-
PyTesseract,527
-
Python,xxxiv
-
Python-Docx 包。参见
docx模块 -
Python 包索引,265,577
-
Python Tutor 网站,14
-
pyttsx3.init()函数,566 -
PyTTSx3 包,566
-
Q
-
限定符(正则表达式),193
-
量词(正则表达式),193,195
-
查询(SQLite),387
-
ALTER TABLE,403,404 -
BEGIN,401 -
CREATE INDEX,399 -
DELETE FROM,392,401 -
DROP INDEX,399 -
INSERT INTO,392 -
PRAGMA,405,406 -
PRAGMA TABLE_INFO,391 -
SELECT,391,392,394 -
UPDATE,392,400 -
查询语言,384
-
查询字符串(URL)299
-
问号(
?) -
可选匹配,196
-
SQLite 通配符,393
-
quit()方法(Selenium),319 -
配额,Google Sheets,379
-
QUOTE常量(Humre),210 -
R
-
r''(原始字符串字面量),161
-
raise_for_status()方法,295 -
raise语句,96 -
randint()函数(random模块),63,66 -
random模块 -
choice()函数,118,133 -
randint()函数,63,66 -
shuffle()函数,118 -
randomQuizGenerator.py,236
-
range()函数,59,62,116 -
原始字符串,161
-
readCensusExcel.py,339
-
reader()函数(csv模块),439 -
使用剪贴板读取文本字段(项目),563
-
readlines()方法(File数据类型),231 -
read()方法(File数据类型),230 -
读取模式,231
-
read_text()方法,230 -
REAL数据类型(SQLite),389 -
recent()函数(EZGmail),482 -
recipient属性(EZGmail),482 -
记录(数据库),385
-
rectangle()方法(Pillow),513,514 -
矩形,流程图,28
-
递归书,递归,413
-
递归书,递归,412
-
参考,129–130,131
-
Reference数据类型(OpenPyXL),354 -
refresh()方法(EZSheets),365 -
refresh()方法 (Selenium), 319 -
正则表达式。见 正则表达式
-
正则表达式搜索 (项目), 241
-
strip()方法的正则表达式版本 (项目), 215 -
正则表达式
-
组,189
-
概述,186
-
解析 HTML, 304
-
限定符,193
-
量词,193,195
-
字符串,161
-
测试人员, 189
-
详细模式,204
-
关系数据库,385
-
关系运算符,29
-
相对路径, 222
-
reload()方法 (Playwright), 324 -
余数/模运算符 (
%), 6 -
re模块 -
compile()函数, 188 -
DOTALL常量,200 -
I常量, 203 -
Match数据类型, 189 -
Pattern数据类型,188–189 -
VERBOSE常量, 204 -
remove()列表方法, 121 -
从 CSV 文件中删除标题的程序, 444–447
-
渲染, 302
-
重编号文件 (项目),256
-
ReportLab 包,433
-
Republic Wireless, 484
-
requests模块 -
检查错误,294
-
使用它下载文件, 294
-
get()函数, 294, 298, 307 -
post()函数,486 -
resize()方法 (Pillow), 503 -
分辨率(屏幕),542
-
Response数据类型 (Requests), 294, 295, 298 -
restore()方法 (PyAutoGUI), 555 -
restyled.docx, 429
-
RETURN常量 (Selenium), 322 -
return语句, 76–77, 80 -
返回值,76 –77
-
reverse()列表方法, 123 -
RGBA 值,494
-
RGB 值,494
-
right属性 (PyAutoGUI), 552 -
rightClick()函数 (PyAutoGUI), 544 -
RIGHT常量 (Selenium), 322 -
rj.txt, 296
-
rjust()方法,170–171 -
rmdir()函数 (os模块), 246 -
rmtree()函数 (shutil模块), 246 -
银行机器人, 193, 203, 289, 435, 482, 483
-
机器人流程自动化 (RPA), 540
-
石头、剪刀、布, 67
-
SQLite 中的回滚事务,401
-
罗密欧与朱丽叶,23,294,296
-
根元素 (XML), 451
-
根目录,218
-
rotated180.png, 504
-
rotated270.png, 504
-
rotated6_expanded.png, 504,505
-
rotated6.png, 504, 505
-
rotated90.png, 504
-
rotate()方法 (Pillow), 504 -
rotate()方法 (PyPDF), 418 -
round()函数, 20, 46 -
四舍五入数字, 20
-
行(数据库),385
-
row属性 (OpenPyXL), 334 -
rowCount属性, 371 -
row_dimensions属性 (OpenPyXL), 351 -
rowid, 385 -
RPA (机器人流程自动化), 540
-
rpsGame.py, 67–68
-
RSS 网络馈送格式,451
-
rstrip()字符串方法, 171 -
rtl属性 (Docx), 428–429 -
runAndWait()方法 (PyTTSx3), 566 -
Run数据类型 (Docx),425–426 -
运行对话框,Windows, 276
-
run()函数 (cProfile模块), 461 -
run()函数 (subprocess模块), 471 -
runs属性 (Docx), 426 -
S
-
sameNameError.py, 86
-
sameNameLocalGlobal.py, 86
-
sampleChart3.xlsx, 354
-
sanitize()方法 (yt-dlp), 573 -
SAPI5 (Microsoft Speech API), 566
-
savefig()函数 (Matplotlib), 517 -
save()方法 (Docx), 430, 431 -
save()方法 (OpenPyXL), 343 -
save()方法 (Pillow), 498 -
save_to_file()方法 (PyTTSx3), 568 -
SAX (XML), 453
-
say()方法 (PyTTSx3), 566 -
ScatterChart(), 355 -
scatter()函数 (Matplotlib), 518 -
方案,URL,299
-
范围(Google API),361
-
范围(变量),82
-
斯科特,汤姆, 173, 290
-
screenshot()函数 (PyAutoGUI), 548 -
脚本,258
-
scroll()函数 (PyAutoGUI), 546, 547 -
search()方法, 188, 192 -
searchpypi.py,310
-
second属性(datetime模块),464 -
选择性复制(项目),255
-
SELECT关键词,394 -
select()方法,306,307–308 -
SELECT查询,391,392,394 -
Selenium 包,318
-
send2trash()函数,247 -
send2trash模块,247 -
sender属性(EZGmail),482 -
send()函数(EZGmail),480–481 -
send_keys()方法(Selenium),321 -
Series数据类型(OpenPyXL),354 -
Serious Python,234
-
set_checked()方法,327 -
setdefault()方法,144,341,377 -
set()方法(xml模块),456 -
setProperty()方法(PyTTSx3),567 -
shadow属性(Docx),428–429 -
莎士比亚,威廉,294
-
工作表,332,363
-
Sheet数据类型(EZSheets),367 -
Sheet()方法(EZSheets),372–373 -
sheetnames属性,343 -
sheets属性(EZSheets),365 -
sheetTitles属性(EZSheets),365,367,373 -
shell,259
-
shell 脚本,258
-
shelve模块,234 -
短路,124
-
简写字符类,194
-
短消息服务(SMS),484
-
show()函数(Bext),271 -
show()函数(Matplotlib),517,518,519,520,521 -
showmap.py,291
-
show()方法(Pillow),496 -
shuffle()(random模块),118 -
shutil模块,244 -
copy()函数,244 -
copytree()函数,245 -
move()函数,245 -
rmtree()函数,246 -
简单 API for XML (SAX),453
-
简单倒计时(项目),474
-
simplecountdown.py,474
-
唱“99 瓶啤酒”(项目),575
-
单引号(
'),8,160 -
size属性(Pillow),498 -
size属性(PyAutoGUI),552 -
size属性(Selenium),320 -
size()函数(PyAutoGUI),542 -
Size命名元组(PyAutoGUI),542,552 -
sleep()函数(PyAutoGUI),560 -
sleep()函数(time模块),89,92,135,271,274,461 -
切片,112,163
-
slow_mo命名参数,324 -
small_caps属性(Docx),428–429 -
Smith, Kurtwood,289
-
SMS(短消息服务),484
-
电子邮件网关
-
缺点,485
-
概述,484–485
-
蛇形命名法,12
-
雪暴程序,273–274
-
SOMETHING_GREEDY常量(Humre),212 -
SOMETHING_LAZY常量(Humre),212 -
sonnet29.txt,231
-
Sorcerer’s Apprentice, The,540
-
sort()列表方法,98,122–123,397,422,423 -
source(HTML),302
-
source命令,264 -
spam.txt,230
-
spike.py,91
-
spiralDraw.py,545
-
splitlines()方法,488 -
split()方法,170 -
Spotlight,277
-
电子表格,331,363。另见 工作簿
-
电子表格应用程序,331
-
Spreadsheet数据类型(EZSheets),364 -
Spreadsheet()函数(EZSheets),364 -
Sprint,484
-
SQL(结构化查询语言),384
-
SQLite,384
-
apps
-
DB Browser,408
-
DBeaver Community,408
-
sqlite3.exe,407
-
SQLite Studio,408
-
比较,387
-
索引,399
-
注入攻击,393
-
概述,384
-
rowid,385 -
严格模式,390
-
类型亲和力,390
-
sqlite3.exe 应用程序,407
-
sqlite3模块,384 -
connect()函数,388 -
DatabaseError,388 -
OperationalError,389 -
sqlite_version变量,390 -
sqlite_schema表,391 -
SQLite Studio 应用程序,408
-
方括号(
[]),110,112,123 -
SRT(SubRip Subtitle),570
-
印章,419
-
标准库,63
-
标准输出,473
-
星号字符(
*),197 -
start命令, 474 -
start()方法(Playwright), 324 -
starts_and_ends_with()函数(Humre), 211 -
starts_with()函数(Humre), 211 -
startswith()字符串方法, 169 -
st_atime属性, 226 -
stat()方法, 225 -
stat_result数据类型, 225 -
status_code属性, 294 -
st_ctime属性, 226 -
stdout属性, 473 -
词干,225
-
range()的步长参数,62, 335 -
步入(调试器), 103
-
步出(调试器), 104
-
步过(调试器), 103
-
st_mtime属性, 226 -
stop()方法(Playwright), 324 -
strftime指令,467–468 -
strftime()函数(time模块), 467–468 -
str()函数, 16, 18 -
严格模式(SQLite), 390
-
strike属性(Docx), 428–429 -
字符串
-
连接,8
-
复制到剪贴板,173
-
f-strings,164
-
插值,165
-
长度,16
-
字面量,160
-
方法,166–171
-
多行,149, 161
-
概述,7–8, 160
-
从剪贴板粘贴,173
-
原始数据,161
-
复制,9
-
三重引号,162, 204
-
strip()字符串方法, 171, 172 -
强密码检测(项目), 215
-
strptime()函数(time模块), 468–469 -
结构化查询语言(SQL), 384
-
st_size属性, 226 -
样式(Word), 425
-
style属性(Docx), 427 -
段落和运行样式(Word), 427
-
SubElement()函数(xml模块), 456 -
子元素(XML), 451
-
子文件夹,218
-
subject属性(EZGmail), 482 -
sub()方法(re模块), 203 -
submit()方法, 321 -
submit.png, 551
-
subprocess.Popen()函数, 471, 472 -
subprocess.run()函数, 470–471 -
SubRip 子标题(SRT), 570
-
减法(
-)运算符, 6 -
sudo命令, 407, 528, 566, 578 -
后缀,225
-
summary()函数(EZGmail), 481–482 -
超级计时器(项目), 462–464
-
suprocess模块, 470 -
svelte.png, 503
-
SVG 图像,451
-
Sweigart, Al, 363, 376
-
sweigartcats.db, 394–407, 409
-
sweigartcats-queries.txt, 407
-
SyntaxError, 7, 29 -
sys模块 -
argv变量, 269, 292 -
executable属性, 267 -
exit()函数, 64 -
platform属性, 267 -
version_info.major, 267 -
version_info.minor, 267 -
系统 Python,264
-
T
-
TAB常量(Humre), 210 -
TAB常量(Selenium), 322 -
表格打印器(项目), 181
-
表格(数据库), 385, 391
-
表格分隔值(TSV), 441–442, 570
-
标签(HTML), 301
-
tag属性(xml模块), 454 -
Tag数据类型(Beautiful Soup), 308 -
tag_name属性, 320 -
TAG_NAME常量(Selenium), 320 -
任务计划程序,473
-
太字节(TB), 22, 45
-
终端,259, 270
-
终止程序,13, 64
-
三元运算符,272
-
Tesseract,527
-
tesseract.exe, 527
-
tess.get_languages()函数(PyTesseract), 532 -
tess.image_to_string()函数 (PyTesseract), 533 -
text属性(Docx), 425 -
text属性(Requests), 294, 298, 307 -
text属性(Selenium), 320 -
text属性(xml模块), 454 -
基于文本的用户界面(TUI), 268
-
TEXT数据类型(SQLite), 389 -
text()方法(Pillow), 514 -
text.png, 515, 516
-
文字识别,526
-
文字转语音(TTS), 566
-
第三方包,173, 209, 247, 270
-
tiled.png, 502, 503
-
瓦片制作器(项目), 524
-
timedelta数据类型(datetime模块), 465 -
电压,22
-
VTT(网络视频文本轨道),570
-
W
-
wait()方法,471 -
WAL(写前日志),388
-
walk()函数,247–249 -
warning()函数,101 -
watermark.pdf,419
-
WD_BREAK.PAGE,432 -
天气 API,297
-
web3,376
-
网络应用,258
-
webbrowser模块,291 -
WebDriver 数据类型,318,319
-
webdriver.Firefox()函数,318 -
WebElement 数据类型,319–320
-
网络馈送格式
-
Atom,451
-
RSS,451
-
webkit.launch()函数,324 -
网络视频文本轨道(VTT),570
-
WHERE子句,394,400,401 -
where命令,263 -
which命令,262 -
while循环,49–51,61 -
while语句,49 -
whisper.load_model()函数,568,569 -
Whisper 模型
-
'base',569 -
'large-v3',569 -
'medium',569 -
'small',569 -
'tiny',569 -
Whisper 包,568
-
空白字符,6,170,171,449,452
-
WHITESPACE常量(Humre),210 -
width属性(Pillow),498 -
width属性(PyAutoGUI),542,552 -
width()函数(Bext),271 -
Willison,Simon,xxxvii
-
Win32Window数据类型(PyAutoGUI),552 -
Window数据类型(PyAutoGUI),552 -
Windows,微软
-
命令提示符,4,259
-
主文件夹,222
-
路径分隔符,218
-
PowerShell,259
-
根目录,218
-
终端,259
-
WindowsPath数据类型,219 -
with语句,233 -
单词边界,201
-
WORD常量(Humre),210 -
工作簿,332
-
Workbook数据类型,333 -
Workbook()函数,343 -
工作表,332
-
Worksheet数据类型,334 -
写前日志(WAL),388
-
写二进制模式,296
-
writeFormula3.xlsx,350
-
write()函数(PyAutoGUI),556 -
write()方法(File数据类型),230,232,413 -
write()方法(ZipFile),250 -
写入模式,232
-
writer()函数(csv模块),440 -
writerow()方法,440,442 -
write_text()方法,230 -
编写游戏机器人(项目),563
-
X
-
x属性(PyAutoGUI),544 -
x 坐标,495,496
-
Xfinity 移动,484
-
xlabel()函数(Matplotlib),521 -
XML(可扩展标记语言),297,438
-
元素,451
-
子节点,451
-
父节点,451
-
根目录,451
-
子元素,451
-
概览,297
-
tag属性,454 -
text属性,454 -
xml.dom模块,453 -
xml.etree.ElementTree模块,453 -
xml.sax模块,453 -
XPath,306,327,455
-
Y
-
YAML,447
-
y属性(PyAutoGUI),544 -
y 坐标,495,496
-
year属性(datetime模块),464 -
ylabel()函数(Matplotlib),521 -
yourName.py,52
-
yourName2.py,54
-
yourScript.bat,277
-
yourScript.command,277
-
yourScript.desktop,278
-
yourScript.py,259,267,269,276,285
-
YoutubeDL()函数(yt-dlp),571 -
YouTube 转录器(项目),575
-
yt_dlp模块,571 -
yt-dlp 包,571
-
yt_dlp.YoutubeDL()函数,571 -
Z
-
zero_or_more()函数(Humre),211 -
zero_or_more_group()函数(Humre),211 -
zero_or_more_lazy()函数(Humre),211 -
zero_or_more_lazy_group()函数(Humre),211 -
zigzag.py,89
-
ZIP_DEFLATED属性,250 -
ZIP 文件,249
-
ZipFile数据类型,249,250 -
ZipFile()函数,250 -
zipfile模块,249 -
zipfile.ZIP_DEFLATED属性,250 -
zipfile.ZipFile()函数,250 -
ZipInfo数据类型,251 -
Zira 语音,567
-
Zona,Carina C.,195
-
zophie.jpg,498
-
zophie.png,496,498,516

一个流程图,展示了如何评估数学表达式“括号中的 5 减 1,乘以 7 加 1 除以 3 减 1 的结果”。首先,5 减 1 简化为 4。接下来,7 加 1 简化为 8。然后,3 减 1 简化为 2。之后,8 除以 2 简化为 4。最后,4 乘以 4 得到结果,16。
返回文本
一个图表展示了传递给 print 函数的表达式“你将在‘ + str(int(myage) + 1) + ‘年后’,如何评估其最终值。首先,“my age”被替换为字符串“4”。然后,“int”消失,字符串“4”被替换为整数 4。接下来,4 加 1 评估为 5。之后,“str”消失,整数“5”变为字符串“5”。最后,字符串“你将在”和“5”以及“年后”被加在一起。最终结果是字符串“你将在 5 年后。”
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向问题“是否在下雨?”这个问题引出两个箭头,一个标记为“是”,一个标记为“否”。“否”分支指向标记为“出去”的框,一个最终的箭头指向标记为“结束”的框。“是”分支指向问题“有伞吗?”这个问题再次分支成“是”和“否”箭头。“是”箭头指向“出去”框。“否”箭头指向标记为“稍等一会儿”的框,该框又指向标记为“是否在下雨?”的问题。“是”箭头回到“稍等一会儿”框。“否”箭头指向“出去”框。
返回文本
一个图表评估了括号中的表达式“四小于五”和括号中的“五小于六”。首先,“四小于五”简化为“True”。接下来,“五小于六”简化为 True。最后,“True and True”简化为最终值,True。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向标记为“名字等于 Alice”的框,该框又指向决策点“名字等于 Alice”。一个“真”分支指向标记为“打印(‘Hi,Alice.’)”的框,该框又指向“结束”。一个“假”分支直接指向“结束”。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向标记为“名字等于 Alice”的框,该框又指向决策点“名字等于 Alice”。一个“真”分支指向标记为“打印(‘Hi,Alice.’)”的框,该框又指向“结束”。一个“假”分支指向标记为“打印(‘Hello, stranger.’)”的框,该框又指向“结束”。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向标记为“名字等于 Alice”的框,该框又指向标记为“年龄等于 15”的框。这个框又指向决策点“名字等于 Alice”。一个“真”分支指向标记为“打印(‘Hi, Alice.’)”的框,该框又指向“结束”。一个“假”分支指向决策点“年龄小于 12”。一个“真”分支指向标记为“打印(‘You are not Alice, kiddo.’)”的框,该框又指向“结束”。一个“假”分支直接指向“结束。”
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向决策点“名字等于 Alice”。一个“真”箭头指向标记为“打印(‘Hi, Alice.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄小于 12”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘You are not Alice, Kiddo.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄大于 2000”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘Unlike you, Alice is not an undead, immortal vampire.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄大于 100”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘You are not Alice, grannie.’)”的框,该框又指向结束。一个“假”箭头直接指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向决策点“名字等于 Alice”。一个“真”箭头指向标记为“打印(‘Hi, Alice.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄小于 12”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘You are not Alice, kiddo.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄大于 100”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘You are not Alice, grannie.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄大于 2000”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘Unlike you, Alice is not an undead, immortal vampire.’)”的框,该框又指向结束。一个“假”箭头直接指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向决策点“名字等于 Alice”。一个“真”箭头指向标记为“打印(‘Hi, Alice.’)”的框,该框又指向结束。一个“假”箭头指向决策点“年龄小于 12”。从这个决策点出发,一个“真”箭头指向标记为“打印(‘You are not Alice, kiddo.’)”的框,该框又指向结束。一个“假”箭头指向标记为“打印(‘You are neither Alice nor a little kid.”)”的框,该框又指向结束。
返回文本
一个显示分配给变量“real_capacity”的 Python 表达式评估的图表。表达式从“str(round(advertised_capacity multiplied by discrepancy, 2)).”开始。首先,“advertised_capacity”评估为 10,“discrepancy”评估为“0.9094947017729282”。接下来,“round(10 multiplied by 0.9094947017729282, 2)”评估为“round(9.094947017729282, 2)”。之后,表达式简化为“str(9.09)”,得到最终值,字符串“9.09”。
返回文本
一个以标记为“开始”的框开始的流程图。一条箭头指向决策点“spam 小于 5”。一个 True 箭头指向“打印(‘Hello, world.’),”该框指向“spam 等于 spam 加 1”的框,该框指向 End。一个 False 箭头直接指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一条箭头指向决策点“spam 小于 5”。一个 True 箭头指向“打印(‘Hello, world.’),”该框指向“spam 等于 spam 加 1”的框,该框又指向回到决策点“spam 小于 5”。一个 False 箭头直接指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一条箭头指向决策点“名称不等于‘你的名字’”。一个 True 箭头指向“打印(‘请输入你的名字。’)”的框,该框指向“名称等于输入()”的框,该框又指向回到决策点“名称不等于‘你的名字’”。一个 False 箭头指向“打印(‘谢谢!’)”的框,该框指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一条箭头指向决策点“True”。从这里,一个被划掉的“False”分支指向“打印(Thank You!)”的框,该框指向 End,而一个 True 箭头指向“打印(‘请输入你的名字。’)”的框,该框指向“名称等于输入()”的框,该框指向决策点“名称等于‘你的名字’”。从这里,一个 True 箭头指向一个标记为“break”的框,该框指向“打印(Thank You!)”,该框指向 End。一个 False 箭头回到流程图中的第一个决策点,“True”。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向决策点“True。”从那里,一个被划掉的“False”分支指向“print(‘Access granted.’)”的框,然后指向结束,而一个 True 箭头指向“print(‘Who are you?’)”的框,然后指向“name equals input()”的框,然后指向决策点“name is not equal to ‘Joe’。”从这里,一个 True 箭头指向标记为“continue”的框,然后回到流程图中的第一个决策点“True。”一个 False 箭头指向“print(‘Hello, Joe. What is the password? (It is a fish.)’)”的框,然后指向“password equals input()”的框,然后指向决策点“password is equal to ‘swordfish.’”从那里,一个 false 箭头回到原始决策点 True,而一个 True 箭头指向标记为“break”的框,然后指向“print(‘Access granted.’),然后指向结束。
返回文本
一个以标记为“开始”的框开始的流程图。一个箭头指向标记为“print(‘Hello’)”的框,然后指向决策点“for I in range (5)。”从那里,一个标记为“looping”的箭头指向“print(‘On this iteration, I is set to ‘ + str(i)),”的框,然后回到之前的决策点,“for I in range (5)。”在那个决策点,另一个标记为“Done looping”的箭头指向结束。
返回文本
从左到右的名称堆栈的演变。堆栈开始时为空,然后包含 Alice,然后包含 Bob 在 Alice 之上,然后包含 Carol 在 Bob 和 Alice 之上,然后包含 Bob 在 Alice 之上,然后包含 Alice,然后包含 David 在 Alice 之上,然后包含 Alice,然后为空。
返回文本
从左到右的函数调用堆栈的演变。堆栈开始时为空,然后包含 a(),然后包含 b()在 a()之上,然后包含 c()在 b()和 a()之上,然后包含 b()在 a()之上,然后包含 a(),然后包含 d()在 a()之上,然后包含 a(),然后为空。
返回文本
Mu 界面的截图。左侧是一个 Python 程序,第一行被突出显示,“print(‘Enter the first number to add:’)。”右侧是“名称”和“值”列表,其中包含变量名称和值。屏幕底部是消息“正在调试模式下运行。使用停止、继续和单步工具栏按钮来调试脚本。”
返回文本
Mu 界面的截图。左侧是一个 Python 程序,第二行被突出显示,“first = input()”。右侧是“名称”和“值”列表,其中包含变量名称和值。
返回文本
Mu 界面的截图。左侧是一个 Python 程序,最后一行被突出显示,“print(‘The sum is ‘ + first + second + third)”。右侧是“名称”和“值”列表,其中包含变量名称和值。
返回文本
一个显示列表“spam 等于“cat”, “bat”, “rat”, “elephant”中的每个项目对应一个索引的图表。“Cat”对应索引“spam 0”,“bat”对应索引“spam 1”,“rat”对应索引“spam 2”,“elephant”对应索引“spam 3。”
返回文本
首先,Python 赋值语句“spam 等于 42”表示为带有标签“spam”的值“42”。其次,Python 赋值语句“eggs 等于 spam”表示为带有两个标签的值“42”,标签分别为“spam”和“eggs”。第三,Python 赋值语句“spam 等于 99”表示为两个值;“42”带有标签“eggs”,而“99”带有标签“spam”。
返回文本
首先,Python 赋值语句“spam 等于 42”表示为带有标签“spam”的值“[0, 1, 2, 3]”。其次,Python 赋值语句“eggs 等于 spam”表示为带有两个标签的值“[0, 1, 2, 3]”,标签分别为“spam”和“eggs”。第三,Python 赋值语句“eggs[1] = ‘Hello’”表示为带有两个标签“eggs”和“spam”的值“[0, ‘Hello’, 2, 3]”。
返回文本
一个显示 Path 对象值评估的图表。Path(‘spam’)/bacon’变为 WindowsPath(‘spam/bacon’)/‘eggs’。然后变为 WindowsPath(‘spam/bacon/eggs’) /‘ham’。最终值是 WindowsPath(‘spam/bacon/eggs/ham’)。
返回文本
一个显示嵌套文件夹和文件的图表,同时显示目录中每个级别的文件夹或文件的相对路径和绝对路径。第一个文件夹是“C:\”,其相对路径是“..\”,其绝对路径是“C:\”。在这个文件夹中有一个“bacon”文件夹。其相对路径是“.\”,其绝对路径是“C:\bacon”。在 bacon 中有一个“fizz”文件夹。其相对路径是“.\fizz”,其绝对路径是“C:\bacon\fizz”。在 fizz 中有一个文件,“spam.txt。”其相对路径是“.\fizz\spam.txt”和其绝对路径是“C:\bacon\fizz\spam.txt。”“bacon”文件夹还有一个“spam.txt”文件。其相对路径是“.\spam.txt”和其绝对路径是“C:\bacon\fizz\spam.txt”。“C:\”文件夹包含另一个文件夹,“eggs。”其相对路径是“..\eggs”和其绝对路径是“C:\eggs\spam.txt”。Eggs 包含一个文件,“spam.txt:. 其相对路径是“..\eggs\spam.txt”和其绝对路径是“C:\eggs\spam.txt”。最后,“C:\”文件夹直接包含其自己的“spam.txt”文件。其相对路径是“..\spam.txt”和其绝对路径是“C:\spam.txt”。
返回文本
Windows 和 macOS 文件路径的图示,显示了锚点、父目录、名称、驱动器、主体和后缀。在 Windows 路径“C:\Users\Al\spam.txt”中,驱动器是“C:”,锚点是“C:\”,父目录是“\Users\Al\”,名称是“spam.txt”,主体是“spam”,后缀是“.txt”。在 macOS 文件路径“/home/al/spam.txt”中,锚点是“/”,父目录是“home/al/”,名称是“spam.txt”,主体是“spam”,后缀是“.txt”。
返回文本
一个包含多行文本的 Word 文档,文本使用不同的字体。第一行使用手写体字体,内容为“能有机会陪伴”。第二行使用粗体、无衬线字体,内容为“机器警察”。第三行使用与第一行相同的字体,内容为“在 11010 记忆巷的夜晚”。第四行使用无衬线字体,内容为“4 月 1 日”。最后一行再次使用手写体字体,内容为“在 7 点钟”。
返回文本


浙公网安备 33010602011771号