你好,Python:让电脑听你的话
第1章:你好,Python——让电脑听你的话
从一个让人崩溃的周一早晨说起
想象这样一个场景:周一早上,你刚端起咖啡杯,就收到老板发来的一封邮件——“把这100份合同里的甲方名称和合同金额提取出来,整理成Excel表格,下午开会要用。”
你打开第一份文档,眼睛开始扫描、复制、粘贴;然后是第二份、第三份……十分钟后,你的手指开始发酸,眼睛开始发酸,脑子开始发木。更要命的是,老板又发来一条消息:“刚才发错了,应该是上周的那批合同。”
你盯着屏幕,心里有一万只羊驼在奔跑。这种场景,在办公室里几乎每天都在上演。我们花费大量的时间做着机械重复的工作,却很少停下来思考:这些工作,能不能让电脑自动完成?
答案是:能。而且比你想象的简单得多。
今天,我要向你介绍一位神奇的朋友——Python。学会它,你的电脑就能乖乖听你的话,帮你处理那些繁琐的重复劳动。你只需要告诉它“做什么”,它就会替你完成“怎么做”。从此告别加班,告别复制粘贴,告别那些让你怀疑人生的数据整理工作。
什么是Python?——一位会讲人话的朋友
在正式介绍Python之前,我们需要先理解一个概念:什么是编程?
让我们把时间拨回到没有电脑的年代。想象你是一家餐厅的老板,每天要处理大量的订单。如果全靠人工口头传达,点单员说“上菜”,厨师就开始做,做完了再等点单员来取。这种方式效率低下,而且容易出错。
后来,你引进了一套呼叫系统。点单员在系统里输入“3号桌,红烧肉”,系统把这个信息传达给厨房的显示屏,厨师看到后开始烹饪。这个“系统”就是一种程序,它能够理解你的指令并执行相应的操作。
电脑程序的原理与此类似。只不过,我们需要用一种电脑能够“听懂”的语言来编写指令。这种语言,就叫做编程语言。
Python就是众多编程语言中的一种。但它有一个独特之处——它是一门更容易读懂的语言。打个比方,如果把编程语言比作与电脑沟通的工具,那么有些语言像是穿着西装打领带的正式对话,需要遵循复杂的语法规则;而Python则像是朋友间的闲聊,用简单直白的句子就能表达意思。
当你用Python写代码时,你可能会写出这样的指令:
```python print("你好,世界!") ```
这句话的意思是“让电脑在屏幕上显示'你好,世界!'”。看,即使你完全不懂编程,大概也能猜到这句话的意思吧?这就是Python的设计哲学——让代码像英语一样自然、易读。
或许你会好奇,为什么这门语言叫“Python”而不是别的名字?这里有个小故事。Python的创造者Guido van Rossum是英国喜剧团体Monty Python的忠实粉丝。这部喜剧以幽默、轻松著称,而Guido在设计Python时,也希望这门语言能让编程变得同样轻松愉快。所以,Python的名字其实是向这部喜剧致敬,而非来自那种大蟒蛇。虽然后来Python的 logo 确实采用了蛇的形象,但这完全是巧合。
为什么选择Python?——五大理由让你无法拒绝
在编程语言的世界里,可供选择的工具很多:C语言、Java、JavaScript、R、MATLAB……每一门语言都有自己的特点和适用场景。那么,为什么我们要在众多选择中推荐Python呢?
理由一:简单易学,对初学者极度友好
Python的语法设计遵循一个核心原则:用一种方法,最好只有一种方法来完成一件事。这意味着你不需要在面对同一个问题时,学习多种不同的写法。这种简洁性大大降低了学习门槛。
让我们来做个对比。同样是输出“Hello World”这句话,用不同的语言来写:
C语言: ```c #include <stdio.h> int main() { printf("Hello World!\n"); return 0; } ```
Java: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } ```
Python: ```python print("Hello World!") ```
感受一下差距?Python只需要一行代码,而C语言和Java需要写一个完整的程序框架。对于初学者来说,这种简洁性意味着你可以把更多精力放在理解编程思想上,而不是被复杂的语法规则吓退。
理由二:功能强大,应用领域广泛
别被Python的简单外表欺骗了。虽然它学起来容易,但功能却一点都不弱。事实上,Python是当今世界上应用最广泛的编程语言之一。
在数据分析和科学计算领域,Python几乎是无可争议的王者。著名的pandas、numpy、matplotlib等库让数据分析变得前所未有的简单。在人工智能和机器学习领域,TensorFlow、PyTorch、Keras等框架都提供了Python接口,全球最顶尖的AI研究大多使用Python进行。在Web开发领域,Django和Flask等框架可以快速构建网站应用。在自动化运维领域,Python是运维工程师的必备技能。
更重要的是,在办公自动化这个我们最关心的领域,Python拥有`openpyxl`(处理Excel)、`python-docx`(处理Word)、`pyautogui`(模拟鼠标键盘操作)、`selenium`(自动化浏览器操作)等众多利器。可以说,Python几乎可以处理你在办公室里能想到的一切自动化需求。
理由三:社区活跃,资源丰富
一门编程语言好不好用,很大程度上取决于它的生态圈是否繁荣。Python在这方面表现优异。
根据Stack Overflow的开发者调查,Python已经连续多年成为“最受欢迎”的编程语言。这意味着当你遇到问题时,很容易在网上找到解决方案。GitHub上有数以百万计的Python开源项目,你可以学习优秀的代码,也可以站在巨人的肩膀上。
对于办公自动化来说,Python有着极其丰富的第三方库。几乎你遇到的每一个办公场景,都有人在GitHub上分享过类似的解决方案。你不需要从头开始造轮子,只需要学会搜索和借鉴。
理由四:跨平台,一套代码多处运行
无论你使用的是Windows电脑、Mac电脑,还是Linux服务器,Python都能完美运行。这意味着你用Python写的自动化脚本,可以在家里的电脑、公司的电脑、甚至是云服务器上运行,真正做到“一套代码,走遍天下”。
理由五:自动化办公的首选利器
这是我们最看重的理由。在办公自动化领域,Python拥有压倒性的优势。
与Excel自带的VBA相比,Python更加通用、可维护性更强、功能更丰富。与专业的RPA(机器人流程自动化)软件相比,Python完全免费、更加灵活、扩展性更好。与其他编程语言相比,Python在处理文档、表格、邮件等办公场景时有着天然的便利性。
综合以上五个理由,Python无疑是办公自动化的最佳选择。它不需要你成为编程高手,不需要你花几年时间系统学习,只需要你跟着这本书,一步一步实践,就能让Python成为你工作中的得力助手。
安装Python——你的第一个重要决定
好,现在你已经决定学习Python了。第一步当然是要把它安装到你的电脑上。
在安装之前,我们需要了解一个概念:Python环境。Python本身只是一个核心引擎,它提供的是基本的编程功能。但为了让Python发挥更大的作用,我们通常还需要安装各种库(library)。打个比方,如果Python是电脑的操作系统,那么库就是安装在系统上的各种应用程序。
管理Python本身和这些库,有多种方式。对于初学者,我们强烈推荐使用Anaconda。
为什么要用Anaconda?
想象一下,如果你想买一台电脑,有两种选择:一种是自己去电脑城,挑选各种零部件(CPU、主板、内存、硬盘、显卡……),然后自己组装;另一种是直接买一台整机,所有零部件已经搭配好,开箱即用。
Anaconda就像是那个“整机”。它是一个包含了Python解释器、上百个常用科学计算库、以及包管理工具的完整发行版。对于办公自动化来说,Anaconda已经包含了大部分你需要用到的库,安装简单,配置方便。
如果选择原生Python,你需要分别安装Python本身,然后使用pip命令逐个安装需要的库。对于初学者来说,这个过程可能会遇到各种版本冲突、依赖缺失的问题,让人头疼不已。Anaconda则帮你把一切都安排好了。
下载Anaconda
现在让我们开始安装。首先,打开你的浏览器,访问Anaconda的官方网站:
``` https://www.anaconda.com ```
在首页你会看到一个醒目的“Download”按钮,点击它。你会看到Anaconda为不同操作系统提供的下载版本。
重要提示:下载时请认准Python 3.x版本(目前最新是3.11或3.12)。Python 2.x已经停止维护,不要下载那个版本。
根据你的操作系统选择对应的安装包:
- 如果你使用的是Windows系统,点击“64-Bit Graphical Installer”
- 如果你使用的是macOS系统,根据芯片类型选择(Apple M1/M2选ARM64,Intel芯片选x86_64)
- 如果你使用的是Linux系统,选择对应的64-Bit installer
安装包比较大(大约800MB左右),下载可能需要一些时间。
Windows系统安装详解
下载完成后,找到你下载的`.exe`文件,双击它启动安装向导。
第一步是欢迎界面,点击“Next”继续。
第二步是阅读许可协议,点击“I Agree”接受。
第三步是选择安装类型。对于大多数用户来说,选择"Just Me"即可,这意味着只有当前Windows用户可以使用Anaconda。如果你需要所有用户都能使用,可以选择"All Users"。
第四步是选择安装位置。建议安装在默认位置(通常是C盘的用户目录下),除非你的C盘空间不足。如果需要更改安装位置,请确保路径中不要包含中文或特殊字符。
第五步是高级选项。这里有两个选项:
- 第一个选项“Add Anaconda3 to my PATH environment variable”是问你是否要把Anaconda添加到系统环境变量中。**不建议勾选**,因为这可能会与你电脑上可能存在的其他Python版本冲突。
- 第二个选项“Register Anaconda3 as my default Python 3.x”是问你是否要把Anaconda设为默认的Python环境。**建议勾选**。
设置完成后,点击“Install”开始安装。安装过程可能需要几分钟时间。
安装完成后,你会看到安装成功的提示。点击“Next”,然后点击“Finish”完成安装。
macOS系统安装详解
下载完成后,找到你下载的`.pkg`文件,双击启动安装向导。
按照提示一路点击“继续”,接受许可协议,选择安装位置,然后输入你的电脑密码确认安装。安装过程可能需要几分钟。
安装完成后,打开Finder,进入“应用程序”文件夹,你应该能看到Anaconda-Navigator的图标。这意味着安装成功了。
验证安装是否成功
安装完成后,我们需要验证一下Python是否正确安装。
在Windows系统中,点击左下角的开始菜单,搜索"Anaconda Prompt",点击打开。在macOS或Linux系统中,打开Terminal(终端)应用。
在打开的窗口中,输入以下命令:
```bash python --version ```
按下回车键,你应该能看到类似这样的输出:
``` Python 3.11.5 ```
这说明Python已经正确安装了。版本号可能会因为下载时间不同而略有差异,但只要是3.x版本就没问题。
接下来再输入:
```bash conda --version ```
你应该能看到conda的版本号。conda是Anaconda自带的包管理工具,我们之后会经常用到它。
第一个Python程序——Hello World
终于到了激动人心的时刻!让我们来写第一个Python程序。
在编程界,有一个传统:学习任何一门编程语言,你的第一个程序都是让它在屏幕上输出"Hello World"(你好,世界)。这个传统起源于1978年出版的《C程序设计语言》一书,作者Brian Kernighan用这个简单的例子来介绍C语言。从此以后,"Hello World"就成了每个程序员的入门仪式。
今天,你也将完成这个仪式。
使用Jupyter Notebook编写代码
Anaconda为我们提供了一个叫做Jupyter Notebook的优秀工具。它是一种交互式的编程环境,让你可以在浏览器中编写和运行Python代码。Jupyter的优势在于:代码和运行结果可以同时显示,而且支持逐段运行,非常适合学习和实验。
让我们启动Jupyter Notebook。
在Windows系统中,点击开始菜单,搜索"Jupyter Notebook",点击打开。在macOS系统中,可以在应用程序文件夹中找到Anaconda-Navigator,然后从中启动Jupyter Notebook。
浏览器会自动打开,显示Jupyter的主界面。你会看到当前文件夹下的文件列表。
现在,让我们创建第一个代码文件。点击右上角的"New"按钮,选择"Python 3"。
浏览器会打开一个新的标签页,这就是Jupyter Notebook的编辑界面。页面中有一个小的输入框,这就是我们编写代码的地方。
在输入框中,键入以下代码:
```python print("Hello World!") ```
然后,按下键盘上的Shift+Enter键(或者点击工具栏上的运行按钮),你就会看到代码下方的输出结果:
``` Hello World! ```
恭喜你!你已经完成了第一个Python程序。这行代码的作用是:在屏幕上显示"Hello World!"这段文字。`print()`是Python的一个内置函数,专门用来输出信息。而引号中的内容,就是你要显示的具体文字。
print函数的小实验
让我们来做几个小实验,加深对`print()`函数的理解。
实验一:显示中文
```python print("你好,Python!") ```
运行后,你会看到:
``` 你好,Python! ```
Python完全支持中文显示,这为我们编写中文注释和输出提供了便利。
实验二:显示数字
```python print(2024) ```
运行后,你会看到:
``` 2024 ```
注意,数字不需要加引号。如果给数字加上引号,它就变成了文字,而不是数字了。
实验三:同时显示多个内容
```python print("我的第一个Python程序,运行年份是", 2024) ```
运行后,你会看到:
``` 我的第一个Python程序,运行年份是 2024 ```
`print()`函数可以同时显示多个内容,它们之间会自动用空格分隔。
实验四:数学计算
```python print(1 + 2 + 3) ```
运行后,你会看到:
``` 6 ```
Python可以直接进行数学计算,而不仅仅是显示文字。
代码注释——给自己留的备忘录
在编写代码时,添加注释(comment)是一个好习惯。注释是写给人类看的说明文字,电脑在运行程序时会忽略它们。
在Python中,单行注释以井号`#`开头:
```python
这是一行注释,电脑会忽略它
print("Hello") # 这也是注释,写在代码后面 ```
当你写了一个复杂的程序,过了一段时间再看,可能就忘了某段代码是做什么的。注释就像是你给未来的自己留的备忘录,能帮助你快速理解代码的意图。
在Jupyter Notebook中,你还可以使用Markdown单元格来写更详细的说明。在菜单栏中选择“Cell”→“Cell Type”→“Markdown”,就可以把一个单元格变成文本编辑模式,用来写格式化的说明文字。我们这本书的内容,就是在Jupyter Notebook中用Markdown单元格编写而成的。
变量——数据的收纳盒
现在你已经学会了让电脑显示信息。接下来,我们要学习如何存储信息。
在日常生活中,我们经常需要把东西放进盒子里,然后给盒子贴上标签,以便以后找到。Python中的变量(variable)就像是这样一个标签盒子。你可以把数据放进变量里,然后通过变量名来使用这些数据。
变量的赋值
在Python中,使用等号`=`来给变量赋值:
```python name = "张三" age = 25 ```
这两行代码做了两件事:
- 创建了一个叫`name`的变量,把字符串"张三"放进去
- 创建了一个叫`age`的变量,把数字25放进去
注意,字符串需要用引号包围,数字则不需要。
现在,让我们用`print()`函数来查看这些变量的值:
```python print(name) print(age) ```
运行后会输出:
``` 张三 25 ```
你还可以把多个变量放在同一个`print()`函数里:
```python print("我叫", name, ",今年", age, "岁") ```
输出:
``` 我叫 张三 ,今年 25 岁 ```
变量的命名规则
给变量起名字并不是随意的,需要遵循以下规则:
1. 变量名只能由字母、数字和下划线组成,不能包含空格或其他特殊字符。例如:`user_name`是正确的,`user name`是错误的。
2. 变量名不能以数字开头。例如:`name1`是正确的,`1name`是错误的。
3. 变量名不能使用Python的保留关键字。例如:`if`、`for`、`while`、`class`等都是Python的特殊词语,不能用作变量名。
4. 变量名区分大小写。`Name`和`name`是两个不同的变量。
给变量起名字是有讲究的。好的变量名应该见名知意,让人一眼就能看出这个变量存储的是什么。比如,`user_name`比`n`更容易理解,`total_price`比`tp`更有意义。
在Python社区,有一个约定俗成的命名规范:变量名使用小写字母,单词之间用下划线分隔。例如:`first_name`、`monthly_salary`、`file