漫画版Python入门到精通

  • 名称:漫画版Python入门到精
  • 分类:程序设计  
  • 观看人数:加载中
  • 时间:2023/3/3 15:13:05

在大数据和人工智能时代,Python是一门举足轻重的编程语言。本书通过漫画讲解Python,学习起来生动有趣,非常值得我们阅读和学习。

如果你要学习编程,Python 就是你最好的选择了,因为它的语法相对于其他语言而言更加的简单,很多时候,就算没有学习过编程的人也能大致看明白程序想要做的事情。


我们学习一种编程语言,更多时候其实是学习一种语法,这种语法跟我们学英语时的语法没有什么差别,都是要求你根据一定的规则去使用它,如果我们不按照英文的语法规则去讲英语,大多数人都是听不明白你在讲什么的,编程也是相同的道理,如果你不按照规则去编写程序,计算机也是不会明白你想要做什么的。

为什选它?

Python是一种非常接近自然语言的高级编程语言,因此易于学习和使用。Python被各行各业和包括Google在内的公司使用,它被应用于开发Web、桌面应用系统管理和机器学习。Python在数据科学领域和机械学习社区是很受欢迎的语言。希望这些理由可以说服你开始学习Python这门语言。

💡 补充:在测试行业里很多自动化、工具也都在使用Python,如果没有任何开发语言基础,简单易学可以快速入门的它是非常不错的选择。

环境配置

安装Python

运行python脚本需要安装依赖环境,让我们从官方 https://www.python.org/downloads/ 进行下载。

需要注意的是默认下载页面的版本,一般是最新的Release版本,如图中的红圈出是3.10.6,如果是纯学习3.6+都可以,这里笔者为了兼容更好选择了3.8.10版本,后续的代码演示也会基于此版本。

下载历史版本需要在 looking for specific release?里查找,比如Ctrl+F搜索到了Python 3.8.10,点击对应行的Download即会跳转到下载页面。

💡 Tips:图中还可以看到3.8.11、12版本,这个两个是后来的小版本升级,进入download只有源码包,没有直接安装包,所以为了方便安装我们最终选定10版本。

如果你使用的是windows用户,可以点击图中红色框内对应系统位数版本下载,如果是Mac用户选择绿色框内对应os系统版本下载,其他linux系统则需要通过source版本配置。

安装包方法进行安装比较简单就省略了,如果有问题或者需要配置环境变量,网上安装教程也很多,自行搜索解决下,这里当python安装好后让我们启动一个终端,通过命令行检查下安装情况。

python --version

# 如mac或系统有共存的2.7版本,需要通过python3查看

python3 --version

当你看到版本信息的时候就证明python已经在电脑上安装好,如果你是其他版本也无妨,不影响接下来的学习。

Python Shell

Python是解释型脚本语言,因此它不需要编译,这意味着它将逐行执行代码。Python带有一个Python Shell(交互式命令行)。它被用于执行单行python命令并得到相应结果。

python3  #python 

此时python交互式shell已经打开,并且等待你写入代码(python 脚本),在符号 >>>写下你的代码然后按下Enter回车键,那么接下来让我们在python shell 写下第一个脚本。

很好,在交互Shell控制台上你已经写下了第一个脚本,简单做了个加法计算2+3,并得到结果5输出。那么如何关闭python shell呢?要退出只需要在符号>>>输入 exit()命令并且按下回车键即可。

到现在为止,你已经知道如何打开Python shell 以及如何退出它了。如果你写下的代码能被python正确解读,它将返回一个结果,否则将看到一个错误。让我们故意制造一个错误来看看它是如何返回的。

正如你看到返回的错误,Python很聪明,它发现了一个 Syntax Error: invalid syntax 错误。使用了错误的乘法语法,因为在python中(x)不是一个有效关键词,要实现乘法计算,我们需要使用(*)来替换(x)。返回的错误很明显地展示了如何修复它。

从程序中找到错误并移除它的过程叫 **调试**,接下来让我们用 * 替换掉 x 通过调试来修复错误。

我们的bug此时已经被正确修复,代码正常运行并得到预期的结果(2乘3等于6)。作为一名程序员在每天的编程中你都会遇到这样那样的错误。知道如何调试问题是一件好事。为了更好调试你应该了解常见的错误的类型。你将来可能会遇到的一些Python错误类型包括但不限于 _SyntaxError、IndexError、NameError、ModuleNotFoundError、KeyError、ImportError、AttributeError、TypeError、ValueError、ZeroDivisionError _等。在后续的实战中将会看到更多不同的 错误类型信息。

让我们继续在Python shell 做一些练习,回到终端并次进入交互模式,不要忘记进入命令是python或python3。

在Python shell模式下,我们先进行一些基础的数学运算操作(加法、减法、乘法、除法、取模、指数)。

编写正式pyton代码之前先做一些数学计算:

3 + 7 = 10

7 - 2 = 5

2 * 6 = 12

3 / 2 = 1.5

3 ** 2 = 3 x 3 = 9

再在做一些而外的操作:

5 % 2 = 1 取模即求余数

5 // 2 = 2 地板除即求商

接下来让我们把上边的数学练习转成python代码。不过在这之前我们先在打开的python shell开头写下注释。注释 在python代码中是不被执行的,所以我们可以在合适的地方增加一些文字说明来增加代码可读性。python 中单行注释以 hash(#)符号开头。以下演示和如何在python写注释

# 注释以hash开头

# 这是一个python的注解,因为它开头用了符号(#) 

在继续下一节之前,让我们在Python shell 做更多的练习。通过exit()命令退出shell模式,然后再重新打开并尝试编写一些字符交互。

完成上边的学习和练习,让我们进入下一部分:安装编辑器来进行代码编写。

使用Visual Studio

Python shell 非常适合尝试和测试小型脚本代码,但不适合大型项目开发。在实际工作环境中,开发人员使用不同的代码编辑器进行代码编写。在这30天的python编程学习挑战中,我们将使用非常流行的开源的Visual Studio代码编辑器,推荐使用官方https://code.visualstudio.com/最新版本。当然如果电脑上已经有其他的编辑器,根据你的个人情况进行选择。

💡 Tips:VS Code是一个非常不错的开源编辑器,虽然商国内商业版的Pycharm用的更多,但如果没你没有商业Key非常不建议花大量的时间取折腾一个IDE,编程学习重要的是学习语言语法和应用。

假设你已经下载并安装好了VS Code IDE,让我们来看下是如何使用它。

如何使用VS Code

通过桌面或者应用程序里点击Visual Stuido图标启动,当你打开它时你将看到这样的默认欢迎界面,你可以去掉勾选 show welcome page on startup 关闭,这样在每次启动后将不再出现。

💡 Tips:由于网络原因可能网站打不开或或者下载失败,可以搜下已下载安装包或者找联系我发送你对应的包。

此时你可以打开现有项目,从git仓库中clone项目,也可以新建一个文件夹或文件。在电脑中合适的位置我们创建一个文名称为 30DaysOfPython 文件夹,然后使用Visual Studio打开它。如果提示信任警告,请选择Yes。

打开项目文件夹后,在展开项目并且鼠标放在上边的时候会快捷按钮,正如中所示,我已经通过创建文件按钮,创建了一个helloworld.py尝试完成你的创建。

事实上VS Code是支持多语言的,在对应区域下载默认会带有本地语言包,如果没有你可以通过切换到插件商店,搜索chinese安装进行安装。

如果没安装或没完全中文化,可以通过快捷键Command + Shift + P(Window为Ctrl + Shift +P)打开命令配置,输入"configure language" 选中语言显示配置->zh-cn重新配置。

重启后你就能看到全中文界面。

恭喜你,你已经完成开发环境的配置,让我们开始进行编码吧。

Python基础

代码可以在Python shell 或者IDE中编写。它的文件扩展名为.py

缩进

在文本中一个缩进是空白,许多语言中缩进用于增加代码的可读性,不过Python中用来创建代码块。其他语言中(如Java)通常用括号创建代码块。编写python代码时常见的错误之一就是错误的缩进。

注释

在我们编写的代码中注释是非常重要,它使得代码变得更易读。Python中任何行以(#)开头的是一行注释,它在代码运行时候是不会被执行的。

示例:单行注释

# 这是第一行注释

# 这是第二行注释

# Python是很受欢迎的语言

示例:多行注释使用三个引号将文本引用以来,它将是一个多行的注释

"""这是多行注释

它可以进行换行.

Python变得越来越流行

"""

数据类型

在Python中有几种数据类型,让我们从最常见一些开始学习。不同的数据类型在其他章节中得到详细讲解。目前来讲,先让我们来来了解下都有哪些数据类型,再次说明下,你现在无需立马弄懂每个类型。

数字

整数int:整数(负、零和正)示例:... -3、-2、-1、0、1、2、3 ...

浮点数float:十进制数 示例 ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...

复杂complex 示例 1 + j, 2 + 4j

字符串str

单引号或双引号里的一个或者多个字的集合。如果字符串多于一个句子或多行,则使用三个引号。

'Hi'

'MegaQi'

'Python'

'我喜欢教学与分享'

'I hope you are enjoying the first day of 30DaysOfPython Challenge'

布尔bool

布尔类型只有两个值 True 或 Flase,注意 T 和 F 始终是大写。

True  # 逻辑举例:灯亮着吗? 如果它是开的,则值为 True

False # 灯亮着吗?如果关闭,则值为 False

列表List

Python list 是一个有序集合,它允许存储不同的数据类型项。类似于 JavaScript 中的数组。

# 所有类型均为数字

[0, 1, 2, 3, 4, 5]

# 所有项都是字符串类型(水果)

['香蕉', '橙子', 'Mango'] 

# 混合类型,包括了字符、整数、布尔和浮点

['芒果', 10, False, 9.81]

字典dict

Python 字典对象是键值对格式的无序数据集合。

{

'name':'大奇',

'country':'中国', 

'age':35, 

'is_married':True,

'skills':['Python', 'React', 'Node', 'Java', 'Vue']

}

元组tuple

元组也是一个有序集合,但它不同于List。元组一旦创建就不能修改,它们是不可变的。

# 七大行星

('地球', '木星', '海王星', '火星', '金星', '土星', '天王星', '水星') 

集合set

集合是类似于列表和元组的数据类型的集合。与列表和元组不同,集合项不是有序的。与数学一样,set在python 仅保存不重复的值。

{2, 4, 3, 5}

{3.14, 9.81, 2.7} # 在set中顺序并不重要

查看数据类型

要检查某些数据/变量的类型,我们使用type函数。在以下Python shell中,你将看到不同的 python 数据类型:

image.png

Python文件

假设已经创建好了python学习文件夹,如名为 30DayOfPython,但如果没有请通过编辑器创建它。并且在此文件夹中,创建一个名为helloworld.py的文件。现在让我们在Visual Studio上看下是如何进行代码交互的。

Python Shell中打输出结果时没用使用print打印,但在VS Code中要看到结果需要使用*print()函数,print()括号内接受一个或多个参数,参考形式如 print('参数1','参数2')。具体可以看下边的例子。

例子(文件为helloworld.py)

# Day 1 - 30天Python学习挑战

# 数据计算

print(3 + 7)             # 加 addition(+)

print(7 - 2)             # 减 subtraction(-)

print(2 * 6)             # 乘 multiplication(*)

print(3 / 2)             # 除 division(/)

print(3 ** 2)            # 次方 exponential(**)

print(5 % 2)             # 求余 modulus(%)

print(5 // 2)            # 求商 Floor division operator(//)

# 打印数据类型

print(type(10))          # 整数 Int

print(type(3.14))        # 浮点 Float

print(type(1 + 3j))      # 复数 Complex number

print(type('MegaQi'))    # 字符串 String

print(type([1, 2, 3]))   # 列表 List

print(type({'名称':'大奇'})) # 字典 Dictionary

print(type({9.8, 3.14, 2.7}))    # 集合 Set

print(type((9.8, 3.14, 2.7)))    # 元组 Tuple

要运行python文件,请参考下图。

方式1:通过点击VS Code上的三角▶️按钮运行

方式2:在编辑底部打开的终端上输入 python3 helloworld.py 来运行

💡 提示:如果没显示终端,依次通过编辑器菜单->终端->新建终端 打开。

你太棒了,你已经完成了第1天的挑战,并且正在成功的路上前进。现在趁热做一些练习吧,来加强大脑和肌肉记忆。

1.2 Python的特点

1.3 搭建Python开发环境

1.4 动动手 —— 编写和运行一个Hello World程序

2.1 标识符

2.2 关键字

【Python教程】看漫画学python | 由入门到精通教程(2.3 变量)

【Python教程】看漫画学python | 由入门到精通教程(2.4 语句)

2.5 代码注释

2.7 动动手 —— 实现两个模块间的代码元素访问

3.1 Python中的数据类型

3.2 整数类型

3.3 浮点类型

3.4 复数类型

3.5 布尔类型

3.6 数字类型的相互转换

4.1 算术运算符

4.3 逻辑运算符

4.4 位运算符

4.5 赋值运算符

4.6 运算符的优先级

5.1.1 if 结构

5.1.3 if-else-if 结构

5.2.1 while 语句

5.2.2 for 语句

5.3 跳转语句

6.1.1 序列的索引操作

6.1.2 加和乘操作

6.1.3 切片操作

6.1.4 成员测试

6.2.1 创建列表

6.2.2 追加元素

6.2.3 插入元素

6.2.5 删除元素

6.3.1 创建元组

6.3.2 元组拆包

6.4.1 创建集合

6.4.2 修改集合

6.5.1 创建字典

6.5.2 修改字典

6.5.3 访问字典视图

7.1.1 普通字符串

7.1.2 原始字符串

7.1.3 长字符串

7.2.2 将数字转换为字符串

7.2.3 变量

7.3.1 使用占位符

7.3.2 格式化控制符

7.4.1字符串查找

7.4.2 字符串替换

7.4.3 字符串分割

8.1 定义函数

8.2.1 使用位置参数调用函数

8.2.2 使用关键字参数调用函数

8.3 参数的默认值

8.4.1 基于元组的可变参数

8.4.2 基于字典的可变参数

8.5 函数中变量的作用域

8.6.1 理解函数类型

8.6.3 映射函数map

8.7 lambda函数

9.1 面向对象

9.2 定义类

9.3 创建对象

9.4 类的成员

9.4.1 实例变量

9.4.2 构造方法

9.4.3 实例方法

9.4.4 类变量

9.4.5 类方法

9.5.1 私有变量

9.5.2 私有方法

9.5.3 使用属性

9.6.1 Python 中的继承

9.6.2 多继承

9.6.3 方法重写

9.7 多态性

9.7.1 继承与多态

9.7.2 鸭子类型测试与多态

10.1 第一个异常 —— 除零异常

10.2.1 try-except 语句

10.2.2 多个except代码块

10.2.3 多重异常捕获

10.2.4 try-except语句嵌套

10.3 使用finally代码块释放资源

10.4 自定义异常类

10.5 动动手 —— 手动引发异常

11.1 数学计算模块 —— math

11.2.1 datetime 类

11.2.1 datetime类常用方法

11.2.2 date 类

11.2.3 time 类

11.2.4 计算时间跨度类 —— timedelta

11.2.5 将日期时间与字符串相互转换

11.3 正则表达式模块

11.3.1 字符串匹配

11.3.2 字符串查找

11.3.3 字符串替换

11.3.4 字符串分割

12.1 打开文件

12.2 关闭文件

12.3 读写文本文件

12.4 动动手 —— 复制文本文件

12.5 读写二进制文件

12.6 动动手 —— 复制二进制文件

13.1 Python中的图形用户界面开发库

13.2 安装wxPytho

13.3 第一个wxPython程序

13.4 自定义窗口类

13.5 在窗口中添加控件

13.6 事件处理

13.7.1 盒子布局管理器

13.7.2 动动手 —— 重构事件处理示例

13.7.3 动动手 —— 盒子布局管理器嵌套示例

13.8.1 文本输入控件

13.8.2 复选框和单选按钮

13.8.3 列表

13.8.4 静态图片控件

14.1 基本的网络知识

14.2 搭建自己的Web服务器

14.3.1 发送GET请求

14.3.2 发送 POST 请求

14.4 JSON数据

15.1 SQLite数据库

15.2 数据库编程的基本操作过程

15.4.1 示例中的数据表

15.4.3 有条件查询

15.4.4 插入数据

15.4.5 更新数据

15.4.6 删除数据

16.1 线程相关的知识

16.2 线程模块 —— threading

16.3 创建子线程

16.3.1 自定义函数实现线程体

16.3.2 自定义线程类实现线程体

16.4.2 线程停止