笔主趁着假期闲的蛋疼,打算开始学习一下Python,主要是之前就有很多朋友问我Python问题,甚至还有新闻学专业的,但我Python从没学过,还挺尴尬的。
打算从现在开坑写一系列的Python学习笔记(flag立下了,乐。
毕竟是从零开始学,在我的系列文章中,你将会看到包括但不限于:根据自己的想法命名东西,各种概念胡言乱语,shi一样的排版,某网课上的内容拿来主义。希望大佬们海涵,批评指正,有问题可以交流,我不时会上线。
第 1 章 Python 入门
1.1Python 介绍
简介
Python 是一种面向对象、解释型的语言。由吉多 ·范罗苏姆(Guido van Rossum)于1989年发明,1991 年正式公布,官网:www.python.org。
Python 单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提 ·派森的飞行马戏团》(Monty Python and the Flying Circus)。
特点
1.可读性强
可读性远比听上去重要的多得多。一个程序会被反复的修改,可读性强意味着让你可以在更短时间内学习和记忆,直接提高生产率。
2.简洁
Python 是由 C 语言开发,但是不再有 C 语言中指针等复杂数据类型,Python 的简洁性让开发难度和代码幅度大幅降低,开发任务大大简化。程序员再也不需要关注复杂的语法,而是关注任务本身。
完成这样的螺旋线,代码只有几行:
import turtle t = turtle.Pen() for x in range(360): t.forward(x) t.left(59) |
3. 面向对象
面向对象:Python支持面向对象编程(OOP),允许自定义类和对象,使用封装、继承和多态等特性来组织代码。这种方式使得代码更加模块化,易于维护和扩展。
面向过程:如C语言,主要是通过函数和过程来组织和控制程序流程。这种编程方式更注重于问题解决的步骤,而不是数据结构。
4. 解释型
解释型:Python代码在运行时被逐行解释执行,不需要事先编译成机器码。这意味着你可以在运行时修改代码并立即看到结果,非常适合快速开发和原型设计。
编译型:如C、C++或Java等编译型语言,在执行前需要将源代码编译成机器码或字节码,然后才能运行。这通常提供了更好的性能,因为编译器可以进行优化。
5. 可移植性和跨平台
Python 会被编译成与操作系统相关的二进制代码,然后再解释执行。这种方式和 java 类似,大大提高了执行速度,也实现了跨平台。
6. 丰富的库
拥有丰富的标准库,多种多样的扩展库。
7. 可扩展性
可嵌入到 C 和 C++语言——胶水式语言。
应用范围
1. 科学计算
2. 人工智能
3. 机器学习
4. 数据分析
5. 网络爬虫
6. 游戏开发
7. 嵌入式设备
8. 系统运维
9. 大数据
10. 云计算
什么时候不应该用 Python
Python 是解释执行,性能较低。因此,一些影响性能的功能可以用C / C++ / JAVA / GO(GO 是一种新语言,写起了像 Python,性能像 C)去开发。
不过不用担心,Python 解释器会越来越快。
1.2Python 下载安装和配置
Python 下载安装
1. 进入官网:www.python.org/downloads/
2. 下载
3. 安装
或者找佬的网盘。
Python 解释器
先了解编辑器、编译器、解释器吧~
编辑器:用于编写和修改源代码文件,提供诸如语法高亮、自动补全、错误检查等功能。目前已经由编辑器发展为集成开发环境IDE,例如万能的Visual Studio,适合Java的IntelliJ IDEA、Eclipse,适合Python的PyCharm等,它们还有一些实用的拓展插件。
编译器:编译器将高级语言书写的源代码转换为机器语言或字节码。例如C、C++、Java通常采用编译器执行。
解释器:解释器逐行读取并执行源代码,无需预先把整个程序转化为机器语言。例如Python、Ruby、JavaScript等脚本语言通常采用解释器执行。
Python 程序的执行依赖于 Python 解释器,我们下载Python 其实就包含了下载Python 解释器,常用的 Python 解释器有:
1. CPython
使用 c 语言实现的解释器,最常用的解释器,通常说的解释器指的就是它。
2. Jython
使用 java 语言实现的解释器。Jython 可以直接调用 java 类库,适合在 java 平台上开 发。
3. IronPython
.NET 平台上使用的解释器。可直接调用.NET 平台的类,适合.NET 平台上开发 4. PyPy
使用 Python 语言实现的解释器。
Python 环境配置与虚拟环境
很多网上教程这一块并没有详细讲解,毕竟新手只要学Python 语言就够了,而开发者需要考虑的就多了。
先了解环境配置:
环境配置是指为运行特定编程语言或应用所搭建的软件和硬件环境,包括但不限于:
①配置环境变量:将常见编程语言的bin配置进电脑的环境变量Path(如Git,C/C++/Qt的mingw,python,java,javascript,verilog)
②开发环境:安装和配置合适的编辑器、编译器或解释器,以及相关的库、框架和其他开发工具(Python 之所以强大,除了语言本身的特性外,更重要的是拥有无所不及的第三方库。强大的软件库,让开发者将精力集中在业务上,而避免重复造轮子的浪费。但众多的软件库,形成了复杂的依赖关系)。
③运行环境:确保操作系统正确安装了运行程序所需的依赖包、库文件、系统服务等。
④版本管理:使用Git+Gitee/Github进行版本控制。对于一些需要特定版本的语言环境(如Python 2、Python 3),需配置对应的虚拟环境(可用virtualenv、pip、conda、poetry等创建虚拟环境)以隔离不同项目间的依赖关系。
⑤构建工具和脚本:设置自动化构建和部署流程,可能涉及到Makefile、Maven、Gradle、npm scripts、pipenv等工具。
Python 虚拟环境,涉及到很多概念和工具,会对使用造成困扰和障碍,所以我们先了解一些概念和与之相关的工具:
①Python 版本
Python 版本等价于 Python 解释器的版本。目前主要两个版本:Python2 和 Python3。
Python2 于 2000 年 10 月发布,最新版本是 2.7,已经停止更新。由于 Python3 不能与 Python2 兼容,而且两大阵营之争持续了很长时间,导致一些软件库需要设配两种版本的 Python,同时开发者可能需要在一个环境中,部署不同版本的 Python,对开发和维护造成了麻烦。因此出现了版本管理器 Pyenv,类似于 nodejs 的 nvm,可以创建出相互隔离的 Python 环境,并且可以方便的切换环境中的 Python 版本,但和 Python 虚拟环境关系不大
②venv
venv 是 Python 3.3 及以上版本内置的一个模块,用于创建虚拟环境。虚拟环境允许你在同一台机器上维护多个隔离的 Python 环境,每个环境可以有自己的包库版本,这有助于避免包库版本冲突的问题。使用 venv 创建的虚拟环境,可以使用该环境中的 pip 来安装包库,而不会影响全局 Python 环境。venv 是 virtualenv 的一个替代品,但是它是 Python 标准库的一部分,因此不需要额外安装。
③Python 包库
包库/库/软件源,是 Python 第三方软件的库的集合、市场,可以发布、下载和管理软件包,其中 pypi (Python Package Index) https://pypi.org/ 是官方指定的软件包库,基于其上的 pip 包库管理就是从这里查找、下载安装软件包的。为了提高下载速度,世界上有很多 pypi 的镜像服务器,在国内也有多个软件源,例如阿里的软件源是:http://mirrors.aliyun.com/pypi/simple/。除此之外还有其他软件源,如正对科学计算的 anaconda 的软件源https://repo.anaconda.com/。
④Python 包库管理工具
包库/软件源中的软件包数量巨大,版本多样,不同项目可能需要不同版本的Python、包库/软件源、框架,为了保证不同项目间的相互独立性,所以需要借助于包库管理工具,例如virtualenv、pip、conda、pipenv、poetry 等,它们能够根据不同需要创建不同虚拟环境,而不与系统或其他项目产生冲突。
(1)virtualenv 包库管理工具太老,除非你还在使用python 2,否则不推荐。
(2)pip 是最常用的包库管理工具,通过 pip install <packagename> 命令格式来安装各种软件包,使用的是 pypi 软件包源。
(3)conda 多用作科学计算领域的包库管理工具,功能丰富且强大,使用的软件包源是 Anaconda repository 和 Anaconda Cloud,conda 不仅支持 Python 软件包,还可以安装 C、C++ 、R 以及其他语言的二定制软件包。除了软件包管理外,还能提供相互隔离的软件环境。由于Anaconda 体积实在太大,后面又推出了Miniconda。
(4)pipenv 是 Kenneth Reitz 在2017年1月发布的Python 依赖管理工具,现由PyPA维护。pipenv 会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。
(5)poetry 和 pipenv 类似,是一个 Python 虚拟环境和依赖管理工具,另外它还提供了包管理功能,比如打包和发布。你可以把它看做是 pipenv 和 flit 这些工具的超集。它可以让你用 poetry 来同时管理 Python 库和 Python 程序。
很多包库管理工具不仅提供了基本的包库管理功能,还提供了虚拟环境构建,程序管理的等功能,总之:
只学习Python 语言的初学者不需要考虑不同项目需要不同Python 版本、包库等问题,只需要特定版本的Python 解释器+ Python 编辑器进行简单的语法学习和项目调试。
例如:Python + Pycharm。
进行项目开发的人员,时常有多个项目同时开发,并且不同的项目需要不同Python 版本、包库等,这时就需要Python 虚拟环境,使用Python 包库管理工具可以帮助我们管理更多项目的环境,将每个项目单独放在一个虚拟环境中,这些环境相互独立,不会产生冲突问题。
例如:Miniconda + Python + Pycharm。
Miniconda 使用实例:
1.创建一个较低版本的python虚拟环境。
conda create -n yolov5 python=3.7
conda会自动下载python3.7,并且创建一个名字为yolov5的虚拟环境。
2.激活此环境。
conda activate yolov5
激活并进入了yolov5这个虚拟环境
3.根据需求下载相关库、框架。
pip install requests
在yolov5中安装了一个名为requests的常用网络请求库,没要求版本
Python 集成开发环境
集成开发环境,英文是 IDE( Integrated Development Environment)。
不要纠结于使用哪个集成开发环境,集成开发环境本质上就是对 Python 解释器 python.exe 的集成封装,核心都一样。可以说,IDE,只是解释器的一个外挂而已,只是为了让程序员更加方便编程,减少出错率。
常用的开发环境如下:
1. IDLE
2. Pycharm
3.VS code
4. Eclipse
5.IPython
交互模式(脚本 shell 模式)
交互模式工作原理和 Python 处理文件的方式一样。除了一点:当你输入一些值时,交互模式会自动打印输出,py文件中则必须使用 print 语句。
1.cmd
进入命令行窗口cmd,输入:python,随后会出现例如:
Python 3.11.5 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:26:23) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
第一行为Python 版本相关信息,>>>为提示符。
编写代码按enter键执行。
2. IDLE
找到并进入 IDLE,默认就是进入交互模式。
编写代码按enter键执行。
3.其他IDE,例如Pycharm
VS code 使用示例:
1.在Visual Studio工作区右下角,选择不同python解释器(自己下载对应版本的Python ),就相当于创建了一个虚拟环境。
2.在IDE中根据需求下载相关库、框架的插件。
Python 集成开发环境IDLE 使用入门
IDLE 简介
1. IDLE 是Python 的官方标准开发环境,Python 安装完后同时就安装了IDLE,在电脑-所有应用中找到Python 就可以看见其实有IDLE (我本人电脑上是通过Miniconda 下载的Python,所以电脑应用、Pycharm 顶目venv 里面没有显示Python,需要在Miniconda里面找)。
2. IDLE 已经具备了 Python 开发几乎所有功能(语法智能提示、不同颜色显示不同类型等等),也不需要其他配置,非常适合初学者使用。
3. IDLE 是 Python 标准发行版内置的一个简单小巧的 IDE,包括了交互式命令行、编辑器、 调试器等基本组件,足以应付大多数简单应用。
4. IDLE 是用纯 Python 基于 Tkinter 编写, 最初的作者正是 Python 之父 Guido van Rossum。
IDLE 常用快捷键
快捷键 | 说明 |
Alt+N Alt+P | 查看历史命令上一条、下一条 |
Ctrl+F6 | 重启 shell,以前定义的变量全部失效 |
F1 | 打开帮助文档 |
Alt+/ | 自动补全前面曾经出现过的单词 |
Ctrl + [ Ctrl + ] | 缩进代码和取消缩进 |
Alt+M | 打开模块代码,先选中模块,然后按下此快捷键,会帮你 打开改模块的 py 源码供浏览 |
Alt+C | 打开类浏览器,方便在源码文件中的各个方法体之间切换 |
1.3第一个Python 源程序
源码:
print("a") print("b") print("c") |
尝试执行这个源程序。