Python 自动化指南(繁琐工作自动化)第二版:零、前言

关于作者

Al Sweigart 是一名软件开发人员和技术书籍作者。Python 是他最喜欢的编程语言,他是该语言的几个开源模块的开发者。他的其他书籍可以在他的网站上根据知识共享许可免费获得。他的猫现在重 11 磅。

关于技术评审

Philip James 从事 Python 工作已经超过十年,是 Python 社区的常客。他的演讲主题从 Unix 基础到开源社交网络。Philip 是 BeeWare 项目的核心贡献者,与他的伴侣 Nic 和她的猫 River 住在旧金山湾区。

Image

“你刚刚在两个小时内完成了我们三个人需要两天才能完成的事情”。21 世纪初,我的大学室友在一家零售电子商店工作。偶尔,商店会收到来自其他商店的数千种产品价格的电子表格。一个由三名员工组成的团队会将电子表格打印在厚厚的一叠纸上,并在他们之间进行分配。对于每种产品的价格,他们会查找他们商店的价格,并注意到他们的竞争对手卖得更低的所有产品。通常需要几天时间。

“你知道,如果你有打印输出的原始文件,我可以写一个程序来做,”我的室友告诉他们,当他看到他们坐在地板上,文件散落一地。

几个小时后,他编写了一个短程序,从文件中读取竞争对手的价格,在商店的数据库中找到产品,并记录竞争对手是否更便宜。他还是编程新手,所以他花了大部分时间在一本编程书上查找文档。实际的程序运行只需要几秒钟。我的室友和他的同事那天吃了一顿超长的午餐。

这就是计算机编程的力量。电脑就像一把瑞士军刀,你可以为它配置无数的任务。许多人花几个小时点击和打字来完成重复的任务,没有意识到如果给他们正确的指令,他们正在使用的机器可以在几秒钟内完成工作。

这本书是给谁的?

软件是我们今天使用的许多工具的核心:几乎每个人都使用社交网络进行交流,许多人的手机中都有联网的计算机,大多数办公室工作都需要与计算机交互才能完成工作。因此,对会编码的人的需求激增。无数的书籍、交互式网络教程和开发人员训练营承诺将雄心勃勃的初学者变成年薪六位数的软件工程师。

这本书不适合那些人。是给其他人的。

就其本身而言,这本书不会把你变成一个专业的软件开发人员,就像几堂吉他课不会把你变成一个摇滚明星一样。但是,如果你是一名办公室职员、行政人员、学者或其他任何使用计算机工作或娱乐的人,你将学习编程的基础知识,这样你就可以自动完成如下简单的任务:

  • 移动和重命名数以千计的文件,并将它们分类到文件夹中
  • 填写在线表格—无需打字
  • 每当网站更新时,从网站下载文件或复制文本
  • 让您的电脑向您发送自定义通知
  • 更新或格式化 Excel 电子表格
  • 查看你的电子邮件,发送预先写好的回复

这些任务对人类来说很简单,但很耗时,而且它们通常如此琐碎或具体,以至于没有现成的软件来执行它们。然而,只要掌握一点编程知识,你就可以让你的计算机替你完成这些任务。

惯例

这本书不是作为参考手册设计的;这是给初学者的指南。编码风格有时违背最佳实践(例如,一些程序使用全局变量),但这是一种折衷,使代码更容易学习。这本书是为写一次性代码的人而写的,所以没有太多时间花在风格和优雅上。复杂的编程概念——如面向对象编程、列表理解和生成器——没有被涵盖,因为它们增加了复杂性。经验丰富的程序员可能会指出本书中的代码可以改变以提高效率的方法,但本书主要关注的是让程序以最少的努力工作。

什么是编程?

电视程序和电影经常显示程序员在发光的屏幕上疯狂地输入 1 和 0 的神秘数据流,但现代编程并没有那么神秘。编程就是输入指令让计算机执行的行为。这些指令可能会处理一些数字,修改文本,在文件中查找信息,或通过互联网与其他计算机通信。

所有程序都使用基本指令作为构建模块。以下是一些最常见的英语单词:

  • “如果式九这样做;否则就那样做”。
  • “如果此条件为真,则执行此操作;否则,请执行该操作”。
  • “这个动作做 27 次。”
  • “继续这样做,直到这个条件成立.”

您也可以组合这些构件来实现更复杂的决策。例如,下面是用 Python 编程语言编写的简单程序的编程指令,称为源代码。从顶部开始,Python 软件运行每一行代码(一些行只在某个条件为真时运行,否则 Python 运行一些其他行),直到它到达底部。

   passwordFile = open('SecretPasswordFile.txt') # ➊
   secretPassword = passwordFile.read() # ➋
   print('Enter your password.') # ➌
   typedPassword = input()
   if typedPassword == secretPassword: # ➍
      print('Access granted') # ➎
      if typedPassword == '12345': # ➏
          print('That password is one that an idiot puts on their luggage.') # ➐
  else:
      print('Access denied') # ➑

您可能对编程一无所知,但是您可能仅仅通过阅读就能对前面的代码做些什么做出合理的猜测。首先打开文件secretpasswordfile.txt➊,读取里面的秘密密码 ➋。然后,提示用户输入密码(从键盘) ➌。这两个密码被比较 ➍,如果它们相同,程序将访问授权打印到屏幕 ➎。接下来,程序检查密码是否是12345➏,并提示这个选择可能不是密码 ➐ 的最佳选择。如果密码不相同,程序将拒绝访问打印到屏幕 ➑ 上。

什么是 Python?

Python是一种编程语言(具有用于编写被认为是有效的 Python 代码的语法规则)和读取源代码(用 Python 语言编写)并执行其指令的 Python 解释器软件。你可以在python.org免费下载 Python 解释器,有 Linux、MacOS、Windows 版本。

Python 这个名字来自超现实主义的英国喜剧组合 Monty Python,而不是来自蛇。Python 程序员被亲切地称为 Pythonistas,Monty Python 和 serpentine 参考资料通常都是 Pepper Python 教程和文档。

程序员不需要懂多少数学

我听到的关于学习编程最常见的焦虑是认为它需要大量的数学知识。实际上,除了基本的算术,大多数编程不需要数学。事实上,擅长编程和擅长解数独谜题并没有什么不同。

要解决数独难题,必须在 9×9 棋盘的每一行、每一列和每个 3×3 的内部方块中填入数字 1 到 9。提供一些数字是为了给你一个开始,你可以通过根据这些数字进行推断来找到解决方案。在图 0-1 所示的拼图中,由于 5 出现在第一排和第二排,所以它不能再次出现在这几排。因此,在右上角的网格中,它必须位于第三行。由于最后一列中也有一个 5,所以 5 不能放在 6 的右边,所以它必须放在 6 的左边。解决一行、一列或一个正方形将为剩下的谜题提供更多的线索,当你填写一组数字 1 到 9,然后填写另一组数字时,你将很快解决整个网格。

image

图 0-1:一个新的数独谜题(左)及其解答(右)。尽管使用数字,数独并不涉及太多数学。(图片维基共享资源)

数独涉及数字并不意味着你必须擅长数学才能算出答案。编程也是如此。就像解决数独难题一样,编写程序包括将问题分解成单独的、详细的步骤。同样,当调试程序(也就是发现并修复错误)时,你会耐心地观察程序在做什么,并找到 BUG 的原因。像所有技能一样,你编程越多,你就会变得越好。

活到老学到老的编程

我听到的关于学习编程的第二个最常见的焦虑是,人们认为他们太老了,学不了了。我在网上看到许多人的评论,他们认为对他们来说已经太晚了,因为他们已经(喘息!)23 岁。显然,学习编程还不算“太老”:许多人在晚年才开始学习。

要成为一名有能力的程序员,你不需要从小就开始。但是程序员作为神童的形象是持久不变的。不幸的是,当我告诉别人我开始编程时是在小学,我助长了这个神话。

然而,与 20 世纪 90 年代相比,现在学习编程要容易得多。今天,有更多的书,更好的搜索引擎,和更多的在线问答网站。最重要的是,编程语言本身更加用户友好。由于这些原因,我在小学到高中毕业期间学到的所有编程知识,在今天大约十几个周末就能学会。我的领先并不算领先。

对编程有一个“成长心态”是很重要的——换句话说,要明白人们通过实践来发展编程技能。他们不仅仅是天生的程序员,现在编程不熟练并不意味着你永远不能成为专家。

编程是一种创造性活动

编程是一项创造性的任务,就像绘画、写作、编织或建造乐高城堡一样。就像画一张空白的画布,制作软件有很多约束,但有无限的可能性。

编程和其他创造性活动的区别在于,编程的时候,你的电脑里有你需要的所有原材料;你不需要购买任何额外的画布、颜料、胶片、纱线、乐高块或电子元件。一台十年前的电脑功能强大,足以编写程序。一旦你的程序写好了,它可以被完美地复制无数次。一件毛衣一次只能由一个人穿,但是一个有用的程序可以很容易地在网上与全世界分享。

关于这本书

这本书的第一部分涵盖了基本的 Python 编程概念,第二部分涵盖了可以让计算机自动完成的各种任务。第二部分的每一章都有专题项目供你研究。以下是你在每章中会发现的内容的简要概述。

第一部分:Python 编程基础知识

第一章:Python 基础知识 涵盖了表达式,Python 指令最基本的类型,以及如何使用 Python 交互式 Shell 软件进行代码实验。

第二章:流程控制 解释了如何让程序决定执行哪些指令,这样你的代码就可以智能地响应不同的条件。

第三章:函数 指导你如何定义自己的函数,这样你就可以把代码组织成更易管理的块。

第四章:列表 介绍列表数据类型,说明如何组织数据。

第五章:字典和结构化数据 介绍了字典数据类型,并向您展示了更强大的数据组织方式。

第六章:操纵字符串 涵盖了处理文本数据(在 Python 中称为字符串)。

第二部分:自动化任务

第七章:正则表达式的模式匹配 讲述了 Python 如何操作字符串和用正则表达式搜索文本模式。

第八章:输入验证 解释了你的程序如何验证用户给它的信息,确保用户的数据以一种不会在程序的其余部分引起错误的格式到达。

第九章:读写文件 解释了你的程序如何读取文本文件的内容并将信息保存到你硬盘上的文件中。

第十章:组织文件 展示了 Python 如何比人类用户更快地复制、移动、重命名和删除大量文件。还解释了压缩和解压缩文件。

第十一章:调试 展示了如何使用 Python 的各种 BUG 查找和 BUG 修复工具。

第十二章:网页抓取 展示了如何编写能够自动下载网页并解析网页信息的程序。这就是所谓的网页抓取

第十三章:使用 Excel 电子表格 涵盖了以编程方式操作 Excel 电子表格,这样你就不必阅读它们了。当您需要分析数百或数千个文档时,这很有帮助。

第十四章:使用谷歌表格 讲述了如何使用 Python 读取和更新谷歌表格,一个流行的基于 Web 的电子表格应用。

第十五章:使用 PDF 和 Word 文档 涵盖了以编程方式读取 Word 和 PDF 文档。

第十六章:使用 CSV 文件和 JSON 数据 继续解释如何以编程方式操作文档,现在讨论 CSV 和 JSON 文件。

第十七章:计时、调度任务、启动程序 解释了 Python 程序如何处理时间和日期,以及如何调度你的计算机在特定时间执行任务。还展示了 Python 程序如何启动非 Python 程序。

第十八章:发送电子邮件和短信 解释了如何编写可以代表你发送电子邮件和短信的程序。

第十九章:操作图像 解释了如何以编程方式操作图像,如 JPEG 或 PNG 文件。

第二十章:用 GUI 自动化控制键盘和鼠标 解释了如何通过编程控制鼠标和键盘来自动化点击和按键。

附录 A:安装第三方模块 向您展示了如何用有用的附加模块扩展 Python。

附录 B:运行程序 向您展示了如何从代码编辑器之外在 Windows、MacOS 和 Linux 上运行您的 Python 程序。

附录 C:练习题答案 在每章末尾提供练习题的答案和一些附加的上下文。

下载安装 Python

你可以为 Windows,MacOS,Ubuntu 免费下载 Python。如果你从网站的下载页面下载最新版本,这本书里的所有程序都可以运行。

警告

一定要下载 Python 3 的某个版本(比如 3.8.0)。本书中的程序是为在 Python 3 上运行而编写的,在 Python 2 上可能无法正确运行。

在下载页面上,您可以找到适用于每种操作系统的 64 位和 32 位计算机的 Python 安装程序,所以首先要弄清楚您需要哪个安装程序。如果你的电脑是在 2007 年或之后购买的,它很可能是 64 位系统。否则,您有一个 32 位版本,但以下是如何确定的方法:

  • 在 Windows 上,选择开始 -> 控制面板 -> 系统,检查系统类型是 64 位还是 32 位。
  • 在 MacOS 上,进入苹果菜单,选择关于这台 Mac -> 更多信息 -> 系统报告 -> 硬件,然后查看处理器名称字段。如果它显示英特尔酷睿单核或英特尔酷睿双核,则您拥有的是 32 位机器。如果它说别的(包括 Intel Core 2 Duo),你是 64 位机。
  • 在 Ubuntu Linux 上,打开终端,运行命令uname -m。一个响应i686表示 32 位,x86_64表示 64 位。

在 Windows 上,下载 Python 安装程序(文件名将以msi结尾)。并双击它。按照安装程序在屏幕上显示的说明安装 Python,如下所示:

  1. 选择为所有用户安装,点击下一步
  2. 点击下一步,接受接下来几个窗口的默认选项。

在 MacOS 上,下载适合您的 MacOS 版本的dmg文件并双击它。按照安装程序在屏幕上显示的说明安装 Python,如下所示:

  1. 当 DMG 包在新窗口中打开时,双击Python.mpkg文件。您可能需要输入管理员密码。
  2. 点击继续接受接下来几个窗口的默认选项,点击同意接受许可。
  3. 在最后一个窗口,点击安装

如果您运行的是 Ubuntu,您可以按照以下步骤从终端安装 Python:

  1. 打开终端窗口。
  2. 输入sudo apt-get install python3
  3. 输入sudo apt-get install idle3
  4. 输入sudo apt-get install python3-pip

下载安装 Mu

Python 解释器是运行你的 Python 程序的软件,而 Mu 编辑器软件是你进入你的程序的地方,就像你在文字处理器中打字一样。可以从codewith.mu下载 Mu。

在 Windows 和 MacOS 上,下载适用于您的操作系统的安装程序,然后双击安装程序文件来运行它。如果您使用的是 MacOS,运行安装程序会打开一个窗口,您必须将 Mu 图标拖到应用文件夹图标上才能继续安装。如果你用的是 Ubuntu,你需要把 Mu 作为 Python 包安装。在这种情况下,单击下载页面的 Python 包部分中的说明按钮。

启动 Mu

安装完成后,让我们启动 Mu。

  • 在 Windows 7 或更高版本上,单击屏幕左下角的开始图标,在搜索框中输入 Mu ,然后选择它。
  • 在 MacOS 上,打开 Finder 窗口,点击应用,然后点击 mu-editor
  • 在 Ubuntu 上选择应用 -> 配件 -> 终端然后输入python3–mu

Mu 第一次运行时,将出现一个选择模式窗口,其中包含 Adafruit CircuitPython、BBC Micro:Bit、Pygame Zero 和 Python 3 选项。选择 Python 3 。您可以随时通过单击编辑器窗口顶部的模式按钮来更改模式。

您需要下载 Mu 版本 1.10.0 或更高版本,以便安装本书中介绍的第三方模块。在撰写本文时,1.10.0 是一个 alpha 版本,在下载页面上作为一个独立于主要下载链接的链接列出。

起动 IDLE

本书使用 Mu 作为编辑器和交互式 Shell。然而,您可以使用任意数量的编辑器来编写 Python 代码。集成开发和学习环境(IDLE) 软件随 Python 一起安装,如果出于某种原因你不能安装或运行 Mu,它可以作为第二个编辑器。我们现在开始闲着吧。

  • 在 Windows 7 或更高版本上,点击屏幕左下角的开始图标,在搜索框中输入IDLE,选择 IDLE (Python GUI)
  • 在 MacOS 上,打开 Finder 窗口,点击应用,点击 Python 3.8 ,然后点击空闲图标。
  • 在 Ubuntu 上,选择应用 -> 配件 -> 终端,然后输入idle3。(您也可以点击屏幕顶部的应用,选择编程,然后点击空闲 3 。)

交互式 Shell

当您运行 Mu 时,出现的窗口称为文件编辑器窗口。点击 REPL 按钮可以打开交互式 Shell。Shell 是一种程序,可以让你在计算机中输入指令,就像 MacOS 和 Windows 上的终端或命令提示符一样。Python 的交互式 Shell 允许您输入运行 Python 解释器软件的指令。计算机读取你输入的指令并立即运行。

在 Mu 中,交互式 Shell 是窗口下半部分的一个窗格,包含以下文本:

Jupyter QtConsole 4.3.1
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit
(AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]:

如果空闲运行,交互式 Shell 是首先出现的窗口。它应该大部分是空白的,除了如下所示的文本:

Python 3.8.0b1 (tags/v3.8.0b1:3b5deb0116, Jun 4 2019, 19:52:55) [MSC v.1916
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

In [1]:>>>称为提示符。本书中的例子将使用交互式 Shell 的>>>提示符,因为它更常见。如果您从终端或命令提示符运行 Python,他们也会使用>>>提示符。In [1]:提示符是由另一个流行的 Python 编辑器 Jupyter 笔记本发明的。

例如,在提示符旁边的交互式 Shell 中输入以下内容:

>>> print('Hello, world!')

在您键入该行并按下ENTER之后,交互式 Shell 应该显示以下响应:

>>> print('Hello, world!')
Hello, world!

你只是给了计算机一个指令,它就做了你告诉它做的事情!

安装第三方模块

一些 Python 代码要求您的程序导入模块。其中一些模块是 Python 自带的,但其他模块是由 Python 核心开发团队之外的开发人员创建的第三方模块。附录 A 详细说明了如何使用pip程序(Windows 上)或pip3程序(MacOS 和 Linux 上)安装第三方模块。当这本书指导你安装特定的第三方模块时,请查阅附录 A 。

如何寻求帮助

程序员倾向于通过在互联网上搜索问题的答案来学习。这与许多人习惯的学习方式大相径庭——通过亲自授课并能回答问题的老师。把互联网作为教室的好处在于,有整个社区的人可以回答你的问题。的确,你的问题很可能已经有人回答了,答案就在网上等着你去寻找。如果您遇到一个错误消息或在使您的代码工作时遇到困难,您不会是第一个遇到问题的人,并且找到解决方案比您想象的要容易。

比如我们故意造成一个错误:在交互 Shell 中输入'42' + 3。您现在不需要知道这条指令是什么意思,但是结果应该是这样的:

   >>> '42' + 3
   Traceback (most recent call last): # ➊
     File "<pyshell#0>", line 1, in <module>
       '42' + 3
   TypeError: Can't convert 'int' object to str implicitly # ➋
   >>>

出现错误消息 ➋ 是因为 Python 无法理解你的指令。错误消息的回溯部分 ➊ 显示了 Python 遇到问题的具体指令和行号。如果您不确定如何理解某个特定的错误信息,请在线搜索。输入“类型错误:无法将int对象隐式转换为str”(包括引号)到你最喜欢的搜索引擎中,你应该会看到大量的链接解释错误信息的含义以及导致错误的原因,如图图 0-2 所示。

image

图 0-2:错误信息的谷歌搜索结果非常有用。

你会经常发现其他人和你有同样的问题,而且其他一些乐于助人的人已经回答了这个问题。没有人能了解编程的所有知识,所以寻找技术问题的答案是任何软件开发人员日常工作的一部分。

询问编程问题

如果你在网上搜索不到答案,可以试着在 Stack Overflow 或r/learnprogramming的“学习编程”子栏目中找人问问。但是请记住,有一些聪明的方法可以询问编程问题,帮助别人帮助你。首先,请务必阅读这些网站上的常见问题部分,了解张贴问题的正确方式。

询问编程问题时,请记住执行以下操作:

  • 解释你正在努力做什么,而不仅仅是你做了什么。这让你的助手知道你是否在错误的轨道上。

  • 指定错误发生的点。它是在程序开始时发生,还是在你做了某个动作后才发生?

  • 复制粘贴整个错误信息和你的代码到pastebin.com或者gist.github.com.

    这些网站使得在线与人分享大量代码变得容易,而不会丢失任何文本格式。然后,您可以将发布代码的 URL 放在您的电子邮件或论坛帖子中。举个例子,这里有一些我上传的代码:pastebin.com/SzP2DbFxasweigart/6912168

  • 解释你已经尝试做了什么来解决你的问题。这告诉人们你已经做了一些工作来自己解决问题。

  • 列出你正在使用的 Python 版本。(第 2 版 Python 解释器和第 3 版 Python 解释器之间有一些关键区别。)另外,说出你运行的是哪个操作系统和版本。

  • 如果错误是在您更改代码后出现的,请准确解释您更改了什么。

  • 说你是否能在每次运行程序时重现错误,或者它是否只在你执行某些操作后才发生。如果是后者,请解释这些行为是什么。

也要始终遵循良好的在线礼仪。例如,不要把你的问题全部大写,或者对试图帮助你的人提出不合理的要求。

你可以在位于autbor.com/help的博客中找到更多关于如何寻求编程帮助的信息。你可以在r/learnprogramming/wiki/faq/找到一个关于编程的常见问题列表,以及在r/cscareerquestions/wiki/index找到一份软件开发工作的类似列表。

我喜欢帮助人们发现 Python。我在inventwithpython.com/blog的博客上写编程教程,有问题可以在al@inventwithpython.com联系我。尽管如此,如果你把你的问题发到r/inventwithpython,你可能会得到更快的回复。

总结

对于大多数人来说,他们的电脑只是一个电器而不是一个工具。但是通过学习如何编程,你将获得现代世界中最强大的工具之一,并且你将在这个过程中获得乐趣。编程不是脑外科手术——业余爱好者尝试和犯错误是可以的。

这本书假设你没有编程知识,会教你很多,但你可能会有超出范围的问题。请记住,提出有效的问题并知道如何找到答案是您编程之旅中的无价工具。

我们开始吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/6121.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MobTech 秒验|本机号码一键登录会泄露隐私吗

本机号码一键登录是一种新型的应用登录方式&#xff0c;它可以利用运营商的数据网关认证能力&#xff0c;实现手机号免密登录&#xff0c;提高用户体验和转化率&#xff0c;降低验证成本和流失率。本机号码一键登录支持三大运营商号码认证&#xff0c;3秒内完成手机号验证&…

Java小课堂:自定义注解(案例:自定义DecimalFormat注解)

文章目录 引言I 预备知识1.1 元注解1.2 Target注解的ElementType枚举1.3 Retention注解的RetentionPolicy枚举II 自定义注解2.1 基本条件2.2 注解自定义属性的格式III 案例3.1 自定义DecimalFormat注解3.2 自定义json序列化解析引言 需求: 编辑费率限制的值时填写几位就保存几…

如何在前端中实现精美的图片和文字的垂直对齐

&#x1f31f;所属专栏&#xff1a;前端只因变凤凰之路 &#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚 &#x1f62e;前言&#xff1a;该系列将持续更新前端的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&#x1f449;文章…

关于线性与条带化下LVM增加磁盘数据分布的讨论

关于线性与条带化下LVM增加磁盘数据分布的讨论一、环境介绍二、线性模式逻辑卷创建逻辑卷删除三、条带化逻辑卷创建逻辑卷删除LVM有两种模式&#xff1a;线性模式&#xff1a;先写满组成线性逻辑卷的第一个物理卷&#xff0c;再向第2个物理卷中写入数据&#xff0c;以此类推&am…

必看>>>>Linux数据库被其他服务器远程访问(修改权限、开设端口)

目录 一&#xff1a;修改权限 1.1 进入Linux数据库 1.2 修改数据库的远程连接权限 1.2.1 数据库远程权限修改命令 1.2.2 数据库远程权限查看命名 1.3 给Linux机添加端口 1.4 远程数据库连接 注意mysql中的中英文输入 一&#xff1a;修改权限 1.1 进入Linux数据库 文章…

【职场热点】软件测试岗位,真正达到月收入1万以上的有多少

在某一线城市相亲角&#xff0c;有位阿姨自称孩子是程序员、36岁、月入3万8&#xff0c;并直言“月入1万如讨饭”&#xff0c;引来大量互联网人自嘲式认领“乞丐”身份。今年2月&#xff0c;“月收入一万”的鄙视链压力给到了二线城市&#xff0c;有位入行2年的软件测试员发帖称…

1-python基础

1.字面量 被写在代码中固定的值 2.注释 # 单行注释""" 多行注释1&#xff1a;三对双引号 """ 多行注释2&#xff1a;三对单引号 3.变量与输出 age10 # 变量赋值 print("我今年",age,"岁") &#xff08;1&#xff09;pri…

Java数据类型与变量

1.字面常量 public class Demo{ public static void main(String[] args){ System.Out.println("hello world!"); System.Out.println(300); System.Out.println(3.1415926); System.Out.println(T); System.Out.println(true); System.Out.println(false); } 其中…

【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中ParticleSystem组件是一个用于创建粒子效果的工具&#xff0c;可用于实现火花、爆炸、雪花等效果。 目录 一、组件属性 二、组件使用 三、效果演示 四、性能优化 一、组件属性 属性…

迅为3A5000_7A2000工控主板,龙芯自主指令集架构全国产工业级板卡性能

迅为iTOP-3A5000开发板核心板底板方式&#xff0c;底板资料开源&#xff0c;提供底板的原理图和PCB工程文件&#xff0c;可以根据需求定制属于自己的开发板。 核心板也支持工业级核心板定制开发。 根据二进制翻译功能使用&#xff0c;可流畅运行WIN和Android系统APP。 支持Loo…

renderdoc resource manager说明

*写在前面 只针对renderdoc opengl es 场景进行说明&#xff0c; vukan的没有&#xff0c;不过其实应该也差不多啦&#xff0c;若有必要后面再考虑补上。本文使用 文字图代码 的方式叙述&#xff0c;若只想了解原理过程&#xff0c;可忽略代码部分&#xff0c; 由于renderdoc代…

文章生成器-免费的文章生成器

随着信息爆炸的时代&#xff0c;自媒体人员不仅需要创造性的策略&#xff0c;还需要快速产生具有高质量文章的能力&#xff0c;这样才能快速响应趋势并保持优势。文章生成器&#xff0c;一款基于人工智能和自然语言处理技术的文本生成软件&#xff0c;可在没有任何人工干预的情…

企业搭建帮助中心的额方式有哪些?

帮助中心对于企业价值的重要性在于提高客户满意度和忠诚度&#xff0c;增强企业品牌形象&#xff0c;促进业务增长和提高利润率。通过提供详细的帮助文档和客户支持&#xff0c;企业可以向客户传达其专业知识和技能&#xff0c;并帮助客户更好地使用其产品或服务。这将提高客户…

C++(Qt)软件调试---使用任务管理器导出Dump(6)

C(Qt)软件调试—使用任务管理器导出Dump&#xff08;6&#xff09; 文章目录C(Qt)软件调试---使用任务管理器导出Dump&#xff08;6&#xff09;1、前言2、软件下载3、使用三款软件导出Dump4、软件下载地址更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f44…

『.NET Tools』在.NET中实现汉字转拼音,只要一个方法就够了!

&#x1f4e3;读完这篇文章里你能收获到 傻瓜式扩展方法直接使用可实现汉字转拼音及汉字转拼音首字母功能感谢点赞收藏&#xff0c;避免下次找不到~ 文章目录一、代码引用Step 1 : 安装包&#xff0c;通过Nuget安装包Step 2 : 代码通过扩展方法/帮助类实现实现汉字转拼音实现汉…

谷粒商城-redis分布式锁系列

1.压力测试出的内存泄漏及解决&#xff08;可跳过&#xff09; 使用jmeter对查询产品分类列表接口进行压力测试&#xff0c;出现了堆外内存溢出异常。 我们设置的虚拟机堆内存100m&#xff0c;并不是堆外内存100m 产生堆外内存溢出&#xff1a;OutOfDirectMemoryError 原因是…

2023.4.3

ctrlf:全局替换 alt鼠标左键&#xff1a;整列编辑 ctrlaltl&#xff1a;格式化 AJAX 简介 概念&#xff1a;AJAX&#xff1a;异步&#xff08;客户端不用等待服务端的反应&#xff09;的Javascript和XML AJAX的作用&#xff1a; 与服务器进行数据交互&#xff1a;通过AJA…

Adaptive AUTOSAR——Execution Management(VRTE 3.0 R21-11)

ChatGPT回答&#xff1a; Adaptive AUTOSAR Execution Management 模块是用于管理软件执行的模块&#xff0c;其主要功能包括&#xff1a; 任务调度&#xff1a;支持对任务进行调度和执行&#xff0c;以实现系统中各个功能的协调运行&#xff1b;软件组件管理&#xff1a;支持对…

python 读取xml从入门到精通

XML &#xff08;Extensible Markup Language&#xff09;&#xff0c;可扩展标记语言&#xff0c;是一种被广泛应用于网络上的文件格式。在互联网上&#xff0c;网页里的信息都以 XML格式存储&#xff0c;例如 HTML、 CSV、 JSON等。随着电子商务的发展&#xff0c;人们需要在…

【面试】Java异常面试题

文章目录Java异常架构与异常关键字Java异常简介Java异常架构1. Throwable2. Error&#xff08;错误&#xff09;3. Exception&#xff08;异常&#xff09;4. 受检异常与非受检异常Java异常关键字Java异常处理声明异常抛出异常捕获异常如何选择异常类型常见异常处理方式直接抛出…
最新文章