1.发展历程
之前国内(软件为主)使用最多的编程语言是 java(C++难学,主要应用于开发硬件)。近年来由于 AI 的出现,python 逐渐火起来(之前火不起来,是因为它是脚本,脚本优点是开发速度快、缺点是承受力有限,国内基本后台开发都用 java)。
自从 20 世纪 90 年代初 Python 语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和 Web 编程。 Python 的创始人为荷兰人吉多 · 范罗苏姆 (Guido van Rossum,数学家)。 1989 年圣诞节期间,在阿姆斯特丹, Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国 20 世纪 70 年代首播的电视喜剧《蒙提 · 派森的飞行马戏团》(Monty Python's Flying Circus)。
由于 Python 语言的简洁性、易读性以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用 Python 语言讲授。众多开源的科学计算软件包都提供了 Python 的调用接口,例如著名的计算机视觉库 OpenCV、三维可视化库 VTK、医学图像处理库 ITK。而 Python 专用的科学计算扩展库就更多了,例如如下 3 个十分经典的科学计算扩展库:NumPy、SciPy 和 matplotlib,它们分别为 Python 提供了快速数组处理、数值运算以及绘图功能。因此 Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。 2018 年 3 月,该语言作者在邮件列表上宣布 Python 2.7 将于 2020 年 1 月 1 日终止支持。用户如果想要在这个日期之后继续得到与 Python 2.7 有关的支持,则需要付费给商业供应商。
主要学习语言应用,技术原理可不用那么深究。本系列文章使用 python 3.10 版本(主要关注大版本 python 3.10,小版本 python 3.10.14 不用关注太多,它是一些小幅改动及修复bug)。
2.优缺点
- 优点:简单、易学、速度快、开源(意味着可白嫖)、高层语言(越低层的语言越难学)、解释性(速度快的原因之一。计算机语言分为编译性(把代码翻译为机器认识的,再执行)和解释性(写代码就行机器能看懂,脚本)两种)、面向对象、可嵌入式(可操作硬件)、丰富的库(十几万个)、规范代码。
- 缺点:单行语句(其他编程语言约束的是分号或大括号;python 是靠回车,当一行过长时不能回车到下一行去做(也非绝对,但回车后写会很难受))、独特语法(其语法纯靠回车和缩进约束)、相对于 C、C++ 运行速度慢(除了它俩就是最快的)。
3.环境搭建
3.1.Anaconda
Anaconda 和 miniconda 是广泛用于数据科学的软件发行版,用于简化包管理和部署。miniconda 是 Anaconda 的迷你版本。
a.主要区别:
- packages 包数量:Anaconda 自带了大量 150 多个科学计算、数据分析和机器学习相关的包(如 NumPy、Pandas、scikit-learn 等),安装包非常大,约有3 GB;而 miniconda 是 Anaconda 的精简版,安装体积小,只有基础的
conda
包管理器和 Python 环境,不包含其他预安装包,约为50-100 MB。- Interface 接口:Anaconda 有一个称为 Navigator 的图形用户界面 (GUI);而 miniconda 有一个命令行界面。
b.适用人群:
Anaconda:
- 适合刚开始接触数据科学的用户(不熟悉 conda 或 Python)或有完整数据分析需求的人,自带包齐全,可以免去手动安装包的麻烦。
- 有时间和磁盘空间(几分钟和 3 GB)。
miniconda:
- 适合有经验的用户,可根据需要随时安装删除包,更灵活,或希望只安装自己需要的包,避免冗余。
- 没时间(想快速访问 Python 和 conda 命令)或磁盘空间不够。
可装Miniconda(完整版会装现阶段用不着的东西):
清华镜像站比官网下载快些。
一直点继续。选为所有用户安装。(windows默认装c盘即可,避免后续问题)。
3.2.VSCode
编辑工具,更方便地写 python 代码(缩进、高亮、语法检查),插件丰富,体量小(pycharm 体量大,一启动占用 3 个多 G 内存,慢)。
直接点蓝色高亮下载安装包。
可直接拖到桌面。
安装 python 插件。
中文插件自选安装。
截图插件:
选中代码右键,点 CodeSnap 即可。
图标插件:
安装软件路径不要太深。
windows 路径不要有中文、空格,由于不同国家不同语言版本是不一样的,中文常用编码格式不同:
- GBK 一个中文两个字节。
- UTF-8 一个中文三个字节。
macos 无所谓,其编码方式是统一的,不会出现乱码问题。
3.3.重装自己的独立环境
打开终端:
conda create -nSF130 python==3.10 -y
conda create
:创建新 Conda 环境的命令。-n SF130
:-n 即 -name,用于指定新环境名称,这里是SF130
。python==3.10
:指定了要在新环境中安装的 Python 版本。-y
:用于自动确认所有提示,避免在创建环境过程中需要手动输入yes
。执行这个命令后,Conda 将会:
- 检查是否已安装所需版本的 Python。
- 如果没有,它会下载并安装 Python 3.10。
- 创建一个名为
SF130
的新环境,并将 Python 3.10 安装在这个环境中。- 由于使用了
-y
选项,所有可能的确认提示都会被自动接受。
出现三个连续的 done 即表示安装成功。
电脑慢预算不足买新电脑也可加个内存条~
4.第一个 python 程序
4.1.创建一个 .py 的文件
python 支持中文,可以有中文,但最好不要有空格。
vscode 支持所有语言的开发,所以本质上去识别该用哪个语言的语法去对写的代码进行验证,取决于文件的后缀。
4.2.编写 python 代码
vscode 默认没有自动保存,需要手动保存:
- macos:command + s
- windows:control + s
vscode 也能手动保存,这里培养下手动保存习惯,避免台式机断电问题。
英文标点占一个字符,中文标点占两个字节。
4.3.运行 python 代码
顶部会弹一个下拉列表,选中所需的独立环境:
终端清屏:
- macos:clear
- windows:cls
macos 和 linux 用的都是 unix 操作系统。
5.注释
注释的作用是为了让程序的可读性更高 , 更容易理解代码。
程序在执行时不会执行注释。
写代码前应该先写出注释,通过注释映射到代码里。
5.1.单行注释
用井号(#)对代码进行单行注释,上&右。
python"># 在程序的控制台打印一个 Hello World
print('Hello World') # 注释格式:# 后加空格 加注释内容
5.2.多行注释
用一对三引号('''或""")。
python">'''
这是一个
多行注释
'''"""
这也是一个
多行注释
"""
一般不建议用多行注释。
多行注释内容和 hello world 颜色一样,一旦前面加点啥就变成不是注释了。
文档注释:
多行注释通常用于文档字符串(docstrings),这是一种为函数、模块和类编写文档的方法。
python">def my_function():"""这是一个文档字符串的例子。可以用于描述函数的功能、参数和返回值。"""pass
选中所要加注释的代码,macos:command + ?;windows:control + ?,即可将所选代码变为注释。再按取消注释,再按加上注释。
6.转义字符
mac:command + 空格,搜索要找的软件。
7.变量
程序本质上是数据结构(不同类型的变量) + 算法。
数据类型大致分为:数字、文本、时间。
- 变量是计算机程序中用于存储和引用数据的一种命名标识符。
- 它是为了在程序执行过程中保存和操作数据而创建的一种存储区域。
- 变量的使用使得程序能够动态地存储和操作数据,从而实现更灵活和可重用的代码。
7.1.变量类型
a.可变类型:变量内容发生改变 , 但是变量在内存当中的地址不变。
- 列表
- 字典
- 集合
b.不可变类型:变量内容发生改变 , 变量在内存当中的地址也发生了改变。
- 数字 (整数、小数(浮点数)、布尔类型)
- 字符串(即文本)
- 元组
7.2.变量命名规则
Python 关键字(也称为保留字),指被 Python 语言内部定义并保留使用的标识符,其他开发者不允许自定义和它们相同的标识符。
- and 逻辑与
- or 逻辑或
- not 逻辑非
- if 条件语句,常与 else、elif 结合使用
- elif 条件语句,常与if、else 结合使用
- else 在条件语句中使用,与 if、elif 结合使用。也可用于异常和循环语句
- for 循环语句
- while 循环语句
- True 布尔类型的值,表示真,与 False 相反
- False 布尔类型的值,表示假,与 True 相反
- continue 跳出本次循环,执行下一次循环
- break 中断整个循环语句的执行
- pass 空的类、方法或函数的占位符
- try 常用于捕捉异常,与 except、finally 结合使用
- excpet 包含捕获异常后的操作代码块,与 try、finally 结合使用
- finally 出现异常后,始终要执行 finally 包含的代码块,与 try、except 结合使用
- raise 抛出异常
- from 用于导入模块,与 import 结合使用
- import 用于导入模块,与 from 结合使用
- def 定义函数或方法
- return 函数或方法的返回值
- class 定义一个类
- lambda 匿名函数
- del 删除变量或某个序列中的值
- global 定义一个全局变量
- nonlocal 声明一个非局部变量,用于标识外部作用域的变量
- in 判断某个变量是否在序列中
- is 判断是否是同一个对象
- None 表示什么也没有,它有自己的数据类型-NoneType
- assert 用于调试
- as 创建别名
- with 常与open使用,用于读取或写入文件
- yield 结束一个函数,返回一个生成器,用于从函数依次返回值
7.3.变量定义使用
有 = 的代码是从右往左读。