- 001_Python的历史
- 002_Python的特点
- 003_搭建Python开发环境
- 004_动动手——编写和运行一个HelloWorld程序
- 005_标识符
- 006_关键字
- 007_变量
- 008_语句
- 009_代码注释
- 010_模块
- 011_动动手——实现两个模块间的代码元素访问
- 012_Python中的数据类型
- 013_整数类型
- 014_浮点类型
- 015_复数类型
- 016_布尔类型
- 017_数字类型的相互转换
- 018_算术运算符
- 019_比较运算符
- 020_逻辑运算符
- 021_位运算符
- 022_赋值运算符
- 023_运算符的优先级
- 024_if结构
- 025_if-else结构
- 026_if-elif-else结构
- 027_while语句
- 028_for语句
- 029_跳转语句
- 030_序列的索引操作
- 031_加和乘操作
- 032_切片操作
- 033_成员测试
- 034_创建列表
- 035_追加元素
- 036_插入元素
- 037_替换元素
- 038_删除元素
- 039_创建元组
- 040_元组拆包
- 041_创建集合
- 042_修改集合
- 043_创建字典
- 044_修改字典
- 045_访问字典视图
- 046_普通字符串
- 047_原始字符串
- 048_长字符串
- 049_将字符串转换为数字
- 050_将数字转换为字符串
- 051_使用占位符
- 052_格式化控制符
- 053_字符串查找
- 054_字符串替换
- 055_字符串分割
- 056_定义函数
- 057_使用位置参数调用函数
- 058_使用关键字参数调用函数
- 059_参数的默认值
- 060_基于元组的可变参数
- 061_基于字典的可变参数
- 062_函数中变量的作用域
- 063_理解函数类型
- 064_过滤函数filter
- 065_映射函数map
- 066_lambda函数
- 067_面向对象
- 068_定义类
- 069_创建对象
- 070_类的成员
- 071_实例变量
- 072_构造方法
- 073_实例方法
- 074_类变量
- 075_类方法
- 076_私有变量
- 077_私有方法
- 078_使用属性
- 079_Python中的继承
- 080_多继承
- 081_方法重写
- 082_多态性
- 083_继承与多态
- 084_鸭子类型测试与多态
- 085_第一个异常——除零异常
- 086_try-except语句
- 087_多个except代码块
- 088_多重异常捕获
- 089_try-except语句嵌套
- 090_使用finally代码块释放资源
- 091_自定义异常类
- 092_动动手——手动引发异常
- 093_数学计算模块——math
- 094_datetime类
- 095_datetime类常用方法
- 096_date类
- 097_time类
- 098_计算时间跨度类——timedelta
- 099_将日期时间与字符串相互转换
- 100_正则表达式模块
- 101_字符串匹配
- 102_字符串查找
- 103_字符串替换
- 104_字符串分割
- 105_打开文件
- 106_关闭文件
- 107_读写文本文件
- 108_动动手——复制文本文件
- 109_读写二进制文件
- 110_动动手——复制二进制文件
- 111_Python中的图形用户界面开发库
- 112_安装wxPython
- 113_第一个wxPython程序
- 114_自定义窗口类
- 115_在窗口中添加控件
- 116_事件处理
- 117_盒子布局管理器
- 118_动动手——重构事件处理示例
- 119_动动手——盒子布局管理器嵌套示例
- 120_文本输入控件
- 121_复选框和单选按钮
- 122_列表
- 123_静态图片控件
- 124_基本的网络知识
- 125_搭建自己的Web服务器
- 126_发送GET请求
- 127_发送POST请求
- 128_JSON数据
- 129_SQLite数据库
- 130_数据库编程的基本操作过程
- 131_sqlite模块API
- 132_示例中的数据表
- 133_无条件查询
- 134_有条件查询
- 135_插入数据
- 136_更新数据
- 137_删除数据
- 138_线程相关的知识
- 139_线程模块——threading
- 140_创建子线程
- 141_自定义函数实现线程体
- 142_自定义线程类实现线程体
- 143_等待线程结束
- 144_线程停止
在大数据和人工智能时代,Python是一门举足轻重的编程语言。本书通过漫画讲解Python,学习起来生动有趣,非常值得我们阅读和学习。
如果你要学习编程,Python 就是你最好的选择了,因为它的语法相对于其他语言而言更加的简单,很多时候,就算没有学习过编程的人也能大致看明白程序想要做的事情。
我们学习一种编程语言,更多时候其实是学习一种语法,这种语法跟我们学英语时的语法没有什么差别,都是要求你根据一定的规则去使用它,如果我们不按照英文的语法规则去讲英语,大多数人都是听不明白你在讲什么的,编程也是相同的道理,如果你不按照规则去编写程序,计算机也是不会明白你想要做什么的。
为什选它?
Python是一种非常接近自然语言的高级编程语言,因此易于学习和使用。Python被各行各业和包括Google在内的公司使用,它被应用于开发Web、桌面应用系统管理和机器学习。Python在数据科学领域和机械学习社区是很受欢迎的语言。希望这些理由可以说服你开始学习Python这门语言。
💡 补充:在测试行业里很多自动化、工具也都在使用Python,如果没有任何开发语言基础,简单易学可以快速入门的它是非常不错的选择。
环境配置
安装Python
运行python脚本需要安装依赖环境,让我们从官方 http://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代码编辑器,推荐使用官方http://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天的挑战,并且正在成功的路上前进。现在趁热做一些练习吧,来加强大脑和肌肉记忆。