环境搭建与基础语法¶
1. 计算机基础知识¶
1.1 计算机系统¶
计算机(computer)俗称电脑,是一种用于高速计算的现代电子设备,我们可以使用计算机进行数值计算,也可以进行逻辑判断,计算机还具有存储记忆信息的功能,且能够按照预定程序的运行固定操作,并自动、高速地处理信息。
一个完整的计算机系统,是由硬件系统和软件系统两大部分组成的。
1.1.1 硬件系统¶
从ENIAC(世界上第一台通用计算机)到当前最先进的计算机,计算机系统的技术已经得到了很大的发展,但计算机硬件系统的基本结构没有发生变化,仍然属于冯·诺依曼体系计算机。计算机硬件系统仍然由运算器,控制器,存储器,输入设备和输出设备5部分组成。如下:
计算机三大件:
-
运算器和控制器统称中央处理器(即CPU),核心组件如下:
-
运算器:也叫算术逻辑单元(ALU),执行各种算术和逻辑运算操作的部件,即数据的加工处理。例如:加减乘除等等。
- 控制器:是计算机的中枢神经,分析程序规定的控制信息,并根据程序要求进行控制,协调计算机各部分组件工作及内存与外设的访问等。
- 寄存器:CPU中用于临时存放二进制代码与数据的一些小型存储区域,存放运算器中参与运算的数据和运算结果、控制器的控制指令和执行执行结果。
因为运算器和控制器都内置了寄存器,所以往往会说CPU由运算器和控制器这2部分组成。
- 内存储器和外存储器统称存储器(即Memory)
实现记忆功能的部件,用来存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
- 内存储器:也叫内存,或者主存,就是我们俗称的计算机的内存条。采用电流临时存储数据,断电后会丢失数据。
-
外存储器:也叫外存,或者辅存。常见的外存储器有硬盘、U盘、光盘等。采用磁性永久存储数据。
-
输入设备和输出设备统称输入输出设备(即IO设备)
-
输入设备(InputDevice): 实现将程序文件、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。
- 输出设备(OutputDevice): 实现将计算机处理后生成的中间结果或最后结果(各种数据符号及文字或各种控制信号等信息)输出出来。
按照冯·诺依曼体系结构存储程序的原理,计算机的工作流程大致如下:
- 【输入】用户鼠标点击打开应用程序,CPU的控制器会将程序内容和相关数据送入计算机的存储器中【内存】。
- 【存储】CPU的控制器继续从存储器中获取要执行指令,把相关数据写入到寄存器中。
- 【读取指令】CPU陆续完成对应的指令操作,如计算器负责相关数据的运算操作并产生结果,控制器则负责不断读取新的指令;
- 【存储结果】CPU的控制器会把计算结果写入到寄存器中。
- 【输出】CPU的控制器将计算结果发送到输出设备,让用户可以看到或听到结果。
- 【结束】程序执行完毕,CPU去执行其他程序的指令任务。
1.1.2 软件系统¶
计算机的软件系统主要分为系统软件和应用软件,是指计算机正常运行所需的各种各样的计算机程序。
- 系统软件是计算机系统运行的基础,负责管理和协调硬件资源,为应用软件提供运行环境。系统软件又可以分为操作系统与其他系统软件两种类型。
操作系统(Operating System,简称OS),是帮助计算机使用者协调、管理与控制计算机硬件和软件资源的计算机程序,也是计算机系统的内核与基石。
没有操作系统的计算机称之为“裸机”。操作系统直接运行在裸机上,任何其他软件在操作系统的支持下才能运行。
- 应用软件是用户直接使用的软件,用于执行特定的任务,依赖于系统软件提供的服务。
那么这些所有的软件都是怎么来的呢?就是由软件开发人员基于编程语言使用源代码开发出来的。
1.2 编程语言¶
第一台计算机是在20世纪40年代发明的,当时的计算机各项操作控制主要是由人工操作来实现的,便利性方面严重不足,于是便有人提出了利用编程语言来控制计算机的构想,由此诞生了编程语言(Programming Language)。
编程语言就是能够让人类与计算机进行交流,控制计算机完成一系列操作的一系列指令(Instruction,机器码),是用来定义计算机程序的形式语言,所以也叫计算机语言或计算机程序设计语言。编程语言有固定的格式和词汇(不同编程语言的格式和词汇不一样),就像我们中国人之间沟通需要中文,英国人沟通需要英文一样,人类与计算机之间进行交流也是需要一门语言作为媒介,这就是编程语言的作用,把人类的想法转化为计算机能理解的0或1。
随着计算机的不断发展,也不断的促进了编程语言的发展,从最初的机器语言发展至今,按层次来分,编程语言可分为3类:机器语言(指令系统)、汇编语言和高级语言。
1.2.1 机器语言¶
机器语言(Machine Language)是CPU(中央处理器)所理解和执行的最低级语言,是第一代计算机语言。计算机在出厂的时候就在芯片中烧录了一系列不同功能的操作指令(二进制代码,由0和1组成的指令码),这些指令的集合也被称为指令系统。指令就是由一系列由0和1组成的二进制指令码,能被计算机硬件直接识别并执行,每一条指令码都对应着计算机硬件的一个基本操作。
特点:
- 直接性:机器语言是计算机硬件唯一能够直接识别的语言,无需任何中间转换过程。
- 二进制代码:由0和1构成的二进制机器码指令,每一条机器码指令都对应着CPU内部电路的一个特定动作。
- 低级性:机器语言是最接近硬件的语言,它直接反映了计算机硬件的结构和操作方式。
- 不可移植性:由于机器语言与特定的计算机硬件紧密相关,因此它不具有可移植性,即一种计算机上的机器语言程序不能在另一种计算机上直接运行。
- 难编写、难阅读:机器语言由大量的二进制代码组成,人类难以记忆,所以编写和阅读都非常困难,容易出错。
- 效率高:由于机器语言直接对应硬件操作,没有中间层的转换开销,因此执行效率非常高。
1.2.2 汇编语言¶
由于机器语言的千上万条指令难以记忆,并且维护性和移植性都很差,所以莫奇莱等人提出了采用一些更容易理解和记忆的字母,单词(也就是所谓的助记符和标记符)代替机器语言的二进制代码,由此诞生了第二代计算机语言——汇编语言(Assembly Language),因为汇编语言是机器指令的符号化,所以依然属于低级语言,但是使用汇编语言编写的计算机程序,CPU不再能直接识别了,因此需要安装对应的翻译程序(汇编器),把汇编语言翻译成机器语言,才能被CPU所识别并执行。
- 助记符(mnemonic),描述指令功能的英语单词或其缩写,每个助记符都对应指定的机器指令,不能乱写。例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等。
- 标记符(identifier),由字母、数字、下划线组成,且第一个字符必须是字母或者下划线,由开发人员根据以上规则自由组合创建标记符。例如:year,Day,ATOP,X03,CWS,num01。
因为汇编语言只是将机器语言做了符号化,并没有从根本上解决机器语言的局限性,推广性和移植性都很差,但同时也继续保持了机器语言优秀的执行效率,因为汇编语言的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。
不管是机器语言还是汇编语言实际上都是站在计算机的角度设计出来的低级语言,是计算机能直接理解的语言。要熟悉掌握这类低级语言,开发人员必须了解计算机硬件细节和数量庞杂的指令,这对于大多数开发人员来说还是太难了。而且计算机生产厂商的标准也不一样,所以低级语言设计出来的计算机程序的推广性和移植性都极大地限制了计算机程序的推广,因此人们开始探索一种能够不依赖于计算机硬件,更接近人类日常所使用的自然语言的编程语言。
1.2.3 高级语言¶
时针拨回到20世纪50年代,写了十来年的汇编语言之后,终于有人受够了,就职于IBM公司的著名科学家约翰·巴克斯(John Backus)推出了计算机历史上第一个计算机高级语言——FORTRAN,它的诞生预示了第三代计算机语言——高级语言(High-level programming language)的时代正式来临。在随后的快速发展中,源源不断的新的高级语言不断问世,至今已达上千种。
高级语言是一种相对于汇编语言和机器语言而言更加抽象化的编程语言,高级语言的一条代码语句往往可以代替几条、几十条甚至几百条汇编语言的指令。
高级语言基于人类的角度采用人类自然语言(类似于英语、中文等)的语法和结构,使得开发人员可以更容易地理解和编写计算机程序,尤其是大型复杂的计算机程序。
高级语言实际上是先向计算机操作系统发送指令,操作系统发送指令给CPU,而不再是直接操作计算机硬件了,因此高级语言摆脱了计算机硬件的依赖,但也因此它的执行效率是低于低级语言的。
2024年12月的TIOBE编程语言排行榜:
1.2.3.1 翻译类型¶
计算机硬件只能识别二进制的机器语言,所以开发人员使用高级语言编写计算机程序时需要对应的翻译程序(编译器/解释器)将高级语言代码转化为机器语言再由操作系统交给计算机执行。按照翻译方式的不同,高级语言又分为编译型语言和解释型语言。
1.2.3.1.1 编译型语言¶
与生活中的写信沟通或网上使用的全文翻译效果类似,编译型语言写的程序执行之前,会先进行一次编译过程,将源代码一次性编译成可被该平台硬件执行的机器码,并打包成该平台所能识别的可执行性程序的格式,例如:Windows系统下一般会打包生成exe格式文件,而Linux系统下则打包生成o格式文件。经过编译以后要再运行该程序则直接运行生成的可执行程序即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
常见的编译型语言:java、C/C++、go、Rust等等
1.2.3.1.2 解释型语言¶
与生活中的同声翻译效果类似,解释型语言写的程序执行时,解释器会对源代码进行逐行解释成特定平台的机器码保存到内存缓冲区,然后由操作系统发送给CPU执行。因为每次运行程序都需要完成上面的过程(一边解释一边执行),所以运行效率比编译型语言程序要低。
常见的解释型语言:python、javascript、php
2. Python基本介绍¶
Python由荷兰科学家 吉多·范罗苏姆(Guido van Rossum,江湖人称“龟叔”),在1989 年的圣诞节期间发明的一门解释型编程语言,并于1991年使用C语言编写了第一个Python编译器——CPython。一般所说的python实际上有2种意思:
- 名为Python的解释型编程语言。
- Python程序执行时所使用的CPython解释器。
2.1 优缺点¶
Guido对于Python的设计理念就是一门轻松高效编程,能够全面调用计算机的功能接口。其设计哲学是:优雅、明确、简洁。
优点:
- 简单易学,语法简单,易于新手理解和学习。
- 免费、开源、可移植性强、可扩展性强。
- 完善的生态、海量插件模块提供给开发者快速使用,在编程行业中经常称赞python开发人员为调包侠。
- 既支持面向过程的编程也支持面向对象的编程。
缺点:
- 执行效率慢,这是解释型语言的通病。
2.2 应用场景¶
Python的生态非常强大:https://awesome-python.com/
3. 开发环境搭建¶
所谓的开发环境搭建就是在操作系统中安装一系列用于编写、执行、调试开发应用程序的软件。一般有编程语言解释器,代码编辑器等软件。
3.1 Python解释器¶
Python目前最新版本的解释器是3.13版本,但是在工作中一般工作中使用的版本比现行版本低几个版本,例如2.7,3.8,3.10、3.12等,学习则建议使用最新版本。
下载地址:https://www.python.org/downloads/windows/
版本号格式:大版本.小版本.修订号.希腊字母号
大版本:也叫主版本,产品架构升级,出现重大内核更新,不在向下兼容,版本号会递增(+1)。
小版本:也叫子版本,产品常规更新,增加新功能或特性,对下兼容,版本号会递增(+1)。
修订号:也叫修订版本号,产品常规更新,出现 Bug并修复或是一些小的变动时,对下兼容,版本号会递增(+1)。
特殊情况:当软件处于研发阶段,尚未稳定时,一般大版本号为:0。此时出现产品架构升级,也不会升级大版本号。
希腊字母版本号共有5种,分别为:Base、Alpha、Beta、RC、Release。
- Base 版本:该软件仅仅是一个基础框架,还没有完整的实现。
- Alpha 版本:该软件大部分功能已经实现,但是 Bug 较多,属于内部测试版,一般不向外部发布,仍然加入新的功能。
- Beta 版本:相对于 Alpha 版已有了很大的改进,消除了严重bug,属于公开测试版,需要多轮测试排除明显bug或潜藏bug,仍然加入新的功能。
- RC 版: Release Candidate,译作:最终测试版本,基本上不存在明显bug,软件已经相当成熟了。
- Release 版: 可以理解为最终版本或正式版本,可以提供给用户使用的标准版本,一般缩写成“R”
官网上提供下载的Python安装包实际上有2种:
| 特点 | Python Embeddable Package(可嵌入包) | Python Installer(安装器,我们需要这个) |
|---|---|---|
| 目的 | 嵌入其他应用程序或其他编程语言中 | 完整安装Python环境 |
| 安装方式 | 解压即可 | 需要安装程序指导 |
| 适用场景 | 嵌入式开发 | 独立开发与使用 |
| 结构 | 精简的解释器和库 | 完整的Python解释器及其库 |
3.1.1 解释器种类¶
- CPython:官方版本的解释器。这个解释器是用C语言开发的,所以叫CPython,是目前使用最多的Python解释器。我们通常说的、下载的、讨论的、使用的都是CPython解释器。
- Ipython:基于CPython之上的一个交互式解释器,在交互方式上有所增强,执行Python代码的功能和CPython是完全一样的。CPython用»>作为提示符,而IPython用In [序号]:作为提示符。
- PyPy:一个追求执行速度的Python解释器。采用JIT(即时编译)技术,对Python代码进行动态编译(注意,不是解释),可以显著提高Python代码的执行速度。绝大部分CPython代码都可以在PyPy下运行,但还是有一些不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。
- Jython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
- IronPython:和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
- RustPython:和Jython类似,只不过RustPython是运行在Rust平台上的Python解释器,可以直接把Python代码编译成Rust的字节码。
3.1.1.1 安装解释器¶
3.1.1.2 验证安装¶
安装完成以后,打开 Windows 的终端程序(也叫命令提示符或命令行),在终端程序窗口中输入python命令(首字母p是小写的),如果出现 Python 的版本信息,并看到命令提示符>>>,就说明安装成功了,如下图所示。
在终端黑窗口中,输入python,按回车键:
有了上面的效果,则表示我们已经成功在当前操作系统下面安装了一个python解释器。有了解释器以后,我们接下来就可以学习编写python程序,并把编写的代码让计算机执行了。
3.1.2 运行Python程序¶
Python 程序就是一个特殊格式的文本文件,也叫源代码或者源文件,可以使用任意文本编辑软件做为开发工具。
Python 程序的 文件扩展名 通常都是 .py。
在学习过程中,我们会编写很多的python源码文件,建议大家创建一个统一的英文目录,用于保存源代码,例如可以在D盘下创建一个code的目录:
接下来我们快速创建一个简单的python程序并运行起来看下效果。
1.使用鼠标右键,新建->文本文档。
2.修改新建文档的文件名与扩展名为python程序,如下:
注意:在windows系统下默认是不显示文件扩展名的,需要自己手动设置才会显示。
3.出现弹窗提示,点击“是”即可。
4.完成后效果如下,这就表示我们已经创建了一个python源代码程序文件了,但是这个文件里面是没有任何 内容的。
5.接下来,我们可以通过系统内置的记事本打开这个python文件开始编写我们的第一个python程序。
6.在记事本窗口中写入代码如下,这一行代码表示让计算机在屏幕上打印一段文字内容:hello world。注意:务必使用英文输入法!!
7.编写代码编写完成以后,找到左上角菜单项点击文件->保存,保存刚才编写的内容,也可以使用键盘的快捷键:Ctrl+S进行保存。
8.接下来,我们就可以运行上面编写好的python程序了。在当前目录窗口地址栏上输入英文的cmd,并按回车键以此打开终端命令行。
9.在终端命令行中,通过输入命令python hello.py,执行python程序,效果如下:
OK,经过上面的一番折腾,大家就编写了第一个python程序并成功让它运行起来了。
3.1.2.1 常见的错误总结¶
0.运行程序提示找不到命令。
0.运行程序提示找不到文件或目录。
1.编写python代码,务必保证使用英文输入法编写,如果采用中文可能会导致程序出错!
2.错误的缩进,不能乱按空格或者tab键把代码缩进处理。在python中缩进需要严格按照语法规范来使用的,不能滥用。
3.每段代码独立成行分多行编写,不能挤在一行,否则也会导致报错。
4.输入了多余的符号。
3.1.2.2 运行细节¶
在上面操作中,我们使用了终端命令行成功运行了第一个python程序,那么这个过程中我们使用的python实际上就是前面安装在当前操作系统的python解释器。
它保存在我们之前安装的目录路径下。
3.1.2.3 环境变量¶
我们明明保存在C:\tool\python313目录下的python解释器,为什么不加路径就可以终端命令行下直接使用了呢?
是因为python解释器在安装时,我们把它的存储路径填写注册到了系统环境变量里面了。
所谓的环境变量(Environment Variable)指在操作系统中用来指定操作系统运行环境的一些全局范围内可以直接使用的信息参数。
windows10操作系统下查看环境变量:
打开系统设置窗口,点击右边的高级系统设置,打开系统属性窗口,并点击窗口右下方的“环境变量(N)...”,打开环境变量的设置窗口。
以下窗口就是环境变量的设置窗口,其中环境变量又分成2种不同作用范围的环境变量,分别是上方子窗口的用户级别环境变量与下方子窗口的系统级别环境变量。
3.1.2.4 运行模式¶
Python程序的运行模式有2种,分别是文本模式和交互模式。
3.1.2.4.1 文本模式¶
就是上面使用记事本的方式,先编写Python代码保存在源文件中,然后使用解释器对文件的代码进行执行。
在终端中输入解释器名,英文空格,再输入要执行的文件名:python 文件名.py
假设,程序文件名叫hello.py,则执行命令,如下:
3.1.2.4.2 交互模式¶
交互模式,仅适用于测试简短的python代码,因为这种模式下的python代码不能永久保存,退出交互模式就会丢失代码,而且交互模式范围有效,不适合运行太大的复杂程序。
直接在终端中输入解释器名字python即可进入解释器提供的交互模式。注意:后面不要加其他内容。
在Python交互模式 中 边输入边执行Python代码,会立即看到程序执行结果。例如,执行代码如下:
如果不再使用,则可以退出交互模式:
3.2 代码编辑器¶
开发人员通常采用文本模式来开发Python程序,同时编写代码的工具也不是上面的记事本,而是功能更加强大的代码编辑器来编写代码,工欲善其事必先利其器,一个趁手的代码编辑器可以让开发人员事半功倍的开发程序。代码编辑器一般分两种:文本编辑器、IDE(集成开发环境)。
3.2.1 文本编辑器¶
文本编辑器是一种比系统记事本功能更强大的文本编辑软件,因为代码本质上是文本,所以通常被用于编写各种编程语言的源代码。文本编辑器的功能相对简单,主要包括:
- 文件基本操作,如打开、创建和保存、另存为,格式转换,编码转换等。
- 文本内容操作,提供非常强大的文本操作功能,如:多行编辑、多列标记、快速复制、搜索查找,批量替换,模糊替换等快捷操作。
- 语法高亮,往往支持多种不同编程语言的语法高亮,使得代码更易于阅读。
- 强大的自定义配置,允许自定义各种快捷键,主题配色等。
- 强大的文本编辑器,甚至提供插件库或者插件市场,允许使用者下载安装各种便利插件,包括开发插件,翻译插件,AI插件,自动生成内容插件等等。
常见的文本编辑器:
| 编辑器 | 收费 | 难度 | 备注 | 下载地址 |
|---|---|---|---|---|
| Sublime Text | 收费,但官方允许一直免费试用。 | 简单 | 强大的自定义功能,有强大的插件系统 | win mac |
| VSCode | 免费 | 中等 | 强大的自定义功能,有强大的插件系统 | win mac |
| Notepad4 | 免费 | 简单 | 能够安装一些基本插件 | win |
| Vim | 免费 | 地狱 | 支持命令行,具有强大的自定义功能 | win mac |
| Emacs | 免费 | 地狱 | 支持命令行,具有强大的自定义功能 | win |
| editplus | 收费,免费试用一个月 | 简单 | 具有强大的自定义功能,内置浏览器 | win |
我平时比较常用的编辑器:sublimetext、vscode、Linux for Vim与基于vscode封装的cursor。
3.2.1.1 Sublime text¶
下载地址:https://www.sublimetext.com/download_thanks?target=win-x64
安装演示:
安装完成:
使用sublimetext打开python程序文件,如下:
打开效果:
文件操作
| 操作 | 快捷键 |
|---|---|
| 打开文件 | Ctrl+O |
| 关闭文件 / 关闭编辑器 | Ctrl+W / Ctrl + Shift + W |
| 重新打开之前关闭的文件 | Ctrl+Shift+T |
| 新建文件 | Ctrl+N |
| 保存/另存为 | Ctrl + S / Ctrl + Shift + S |
| 打开底部搜索框,在当前文件进行查找 | Ctrl + F |
| 打开底部搜索框,在当前文件进行替换 | Ctrl + H |
| 打开文件搜索框,快速搜索文件 | Ctrl + P |
| 打开插件命令输入框,快速安装 / 卸载插件 | Ctrl + Shift + P |
编辑操作
| 操作 | 快捷键 |
|---|---|
| 撤销 | Ctrl + Z |
| 重做 | Ctrl + Shift + Z |
| 复制 | Ctrl + C |
| 粘贴 | Ctrl + V |
| 剪切一行或鼠标选中区域 | Ctrl + X |
| 删除整行 | Ctrl + Shift + K / Ctrl + X |
| 选中整行 | Ctrl + L |
| 选中光标所占的文本或单词,继续操作则选中相同内容 | Ctrl + D |
| 复制光标所在行 | Ctrl + Shift + D |
| 添加单行注释 / 取消单行注释 | Ctrl + / |
| 添加多行注释 / 取消多行注释 | Ctrl + Shift + / |
| 把鼠标选中的多行合并成一行 | Ctrl+ Shift + J |
| 把鼠标选中的多行进行同时编辑 | Ctrl + Shift + L |
| 打开 / 关闭左侧目录区 | 先按 Ctrl + B,再按 Ctrl + K |
| 跳转行号 | Ctrl + G |
| 选择括号内的内容 | Ctrl + Shift + M |
| 调整字体大小 | Ctrl + 鼠标滚轮 / Ctrl + + / Ctrl + - |
安装插件管理器:
安装编辑器汉化插件:
安装完成的界面效果,如下:
打开终端运行程序:
3.2.1.2 vscode¶
下载地址:https://code.visualstudio.com/Download
安装演示:
安装完成:
使用vscode打开python程序:
打开编辑器左侧的插件列表,输入chinese,安装汉化插件:
安装完成以后,设置显示语言:
这时候会弹窗,询问是否重启编辑器,选“Restart”即可。
重启后的效果:
快捷键参考上面的sublimetext,这些文本编辑器大多数的快捷键都是一模一样的。这里就不再重申了。
在终端下运行程序:
3.2.2 IDE¶
所谓的IDE(Integrated Development Environment,译作“集成开发环境”),是一种强大的专业开发软件,里面提供了开发人员在日常开发中基本使用到的所有工具和操作快捷方式,具备如下功能:
- 代码编辑器:具有语法高亮、代码补全、代码格式化等几乎所有功能。
- 编译器或解释器:用于构建和运行代码。
- 调试工具:帮助开发者查找和修复代码中的错误。
- 版本控制:支持代码版本控制系统,甚至默认已经集成Git等工具。
- 项目管理工具:帮助开发人员管理项目相关文件和依赖库。
- 强大的插件系统:允许安装强大的插件扩展IDE现有的功能。
常见的IDE开发环境:
| IDE | 收费 | 备注 |
|---|---|---|
| Pycharm | 社区版免费,专业版收费,但提供30天试用 | jetbrains开发的IDE,转为python开发设计的。 |
| Visual Studio | 个人免费 | 微软开发的IDE,比VSCode比笨重了。 |
| IDLE | 免费 | 由python之父--Guido van Rossum主导开发给初学者的。 |
注意:
vscode是一个开源免费的文本编辑器,因此也有一些公司在vscode的基础上不断增加功能构建出IDE编辑器,例如:cursor、最新版本的jetbrains全家桶。
jetbrains是一家专门做IDE软件的公司,推出了一系列强大而专业的IDE,除了适合python开发的Pycharm以外,还有适合Java开发IntelliJ IDEA,适合Go开发的GoLand等多达十几款。
3.2.2.1 IDLE¶
IDLE是由python之父——Guido van Rossum主导开发提供给python初学者进行编写代码的一款IDE开源免费软件。在我们安装了python解释器以后默认自带的。 同时,IDLE除了提供基本文本编辑功能以外,还自带了语法加亮、段落缩进、TABLE键控制、调试程序等一系列功能,所以算是最基础IDE工具。
1.鼠标右键点击hello.py,选择使用IDLE打开刚创建的Python文件,效果如下:
2.在IDLE编辑器中编写Python代码,如下:
编写代码编写完成以后,点击编辑器左上角->file->save,保存刚才编写的内容,也可以使用键盘的快捷键:Ctrl+S进行保存。
7.接下来我们就可以运行这个程序了,在编辑器上方的菜单项中找到Run->Run Module,即可运行当前程序,也可以使用键盘的快捷键:F5快速运行。
运行效果如下:
可以看到左边窗口已经出现了代码运行的结果了。
3.2.2.2 Pycharm¶
PyCharm是jetbrains开发的一款非常优秀的Python集成开发环境,特别是适合开发大型项目,是目前Python开发者最友好的IDE工具。
所谓的项目,实际上就是开发人员为了在有限时间内完成软件开发而创建的一个特殊目录,该目录通常会包含软件相关的python源代码文件、图片、视频、音频等资源文件。项目目录中每个源文件的代码行数是有限的,通常在几百行之内。每个源文件实现的功能不同,各司其职,共同协作完成整个软件所有的复杂的业务功能。
下载地址:https://www.jetbrains.com/pycharm/download/
jetbrains旗下的IDE都存在2个版本:专业版(Processional Edition,收费,免费试用30天)与 社区版(Community Edition,永久免费),教育版(education,可以通过学校邮箱或学信网按年申请)。
安装演示:
安装完成以后首次打开效果:
首次打开需要激活软件,可以选择30天内试用:
选择是否同步vscode的配置:
以上操作只会在首次打开出现,后续再次打开则显示欢迎界面,如下:
编辑器风格设置
设置中文以后,再次打开效果:
3.2.2.2.1 新建/打开项目¶
项目目录的命名规则:
- 项目目录名多以 大驼峰命名法(即每一个单词的首字母大写,其他小写) 进行命名,如 FirstDemo。
- 项目中的保存python源码的文件名或目录名多数遵循标记符命名规则,由大小写字母(
a-zA-Z)、数字(0-9) 和 下划线(_)组成,不以数字开头。
通过 欢迎界面 或者菜单 File / New Project 可以再次新建另一个新项目目录
刚开始学习,先直接选择“新建项目”。
创建项目后进入编辑区主窗口:
- 项目目录文件区域 能够 浏览/定位/打开 项目中的代码文件或其他内容文件。
- 代码编辑区域 能够 编辑 当前打开文件的内容。
- 终端命令行区域 能够执行和输出程序内容、跟踪调试代码的执行。
- 工具栏区域 分右侧与顶部2部分,顶部工具栏用于快速 运行 / 调试 代码。
- 工具栏区域 在窗口底部,用于快速修改编码,代码缩进,编辑器。
3.2.2.2.2 常用项目配置¶
如果打开的项目目录如果不是由 PyCharm 建立的,或有时操作系统中已经安装了多个版本的Python解释器时,则打开项目时默认的解释器版本可能是其他的版本,这时候就需要手动设置指定的解释器版本
通过主菜单文件(File) / 设置(Settings)或者使用快捷键“Ctrl+Alt+S”可以打开设置窗口,如下图所示:
设置鼠标滚轮控制字体大小显示:
修改默认终端命令行:
快速运行程序:
3.2.2.2.3 快捷键列表¶
大部分编辑器的快捷键都是类似的,Pycharm也一样。以下列出几个常用有差异的:
| 快捷键 | 作用 |
|---|---|
| 格式化代码 | Ctrl + Alt + L |
| 返回至上次浏览的位置 | Ctrl + Alt + left/right |
| 全局查找 | Ctrl + Shift + R |
| 全局替换 | Ctrl + R |
| 快速选中代码 | Ctrl + W |
熟练使用Pycharm编辑器以后,可以自定义快捷键:
4. python基础语法¶
4.1 注释¶
注释(Comment)就是对源代码的解释说明,类似文章中的注解、旁白。注释不会被解释器识别、执行,其目的只是为了让其他开发人员能更加轻松地理解代码的作用。在开发中,编写程序的开发人员都会给一些关键性的代码(语句、函数、变量)添加解释说明。通常,合理的代码注释内容应该占源代码的 ¼ 左右。
Python 支持两种写法的注释,分别是单行注释和多行注释。
4.2 变量¶
变量(variable)是一段有名字用于存储数据的内存空间,是计算机程序运行时,用来存储数据的“容器”,是计算机程序的最基本组成单位。
变量由数据类型、变量名与变量值这三部分组成:
变量值(variable value)就是数据(data),是描述事物的信息,例如数字、文字、图像、声音等等,当这些信息通过输入设备存储到计算机后就是数据。
变量名(variable name)就是单词字母组成的标记符,类似数学的未知数一样,其作用就是代表程序中的数据进行在后续代码中被反复使用。
数据类型(data type)就是根据数据的不同格式,不同使用方式而划分出来的不同种类,例如:文字内容就属于字符串类型(string),整数则属于整型(int)。
那么,为什么要使用变量?
后面所有的代码只要遇到上面提前预设值的x都会直接提取对应的右边的实际内容,这样的好处是:
- 可以使用简短的变量名代表一段很长的数据。
- 多次使用同一段数据时,使用变量可以很轻松的做到一改全改。
4.2.1 声明变量¶
将数据放入变量所指向空间的过程叫做赋值(Assignment)。Python 使用等号=作为赋值运算符,等号左边的标记符为变量名,右边的数据为变量值。
首次赋值就是创建变量,也被称为“初始化变量(initialize variable)”或“声明变量(Declare variable)”。再次赋值则修改该变量所代表的数据。
声明代码格式如下:
演示代码:
注意:所谓的赋值,其实就是"代表"的意思,而不是相等的意思。例如:
从上面我们也可以看到,对同一个变量重复进行赋值,是修改变量内部存储的数据,也叫修改变量的值。
没有被定义的变量或被del明确删除的变量是无法在程序中使用的。
print(num10) # NameError: name 'num10' is not defined # 翻译:标记符错误:标记符"num10" 是没有被定义的
num10 = 100
print(num10)
del num10
print(num10) # NameError: name 'num10' is not defined
4.2.2 标识符¶
标记符就是代表程序中的某一段数据信息或者某些代码段的名称,就好像我们每个人都有属于自己的名字一样。
Python中标识符的命名不是随意的,而是要遵守一定的命名规范。
4.2.2.1 命名规范¶
- 标记符必须由大小写字母(
A~Z和a~z)、下划线(_)和数字(0~9)组成,但第一个字符不能是数字开头。 - 标记符不能是编程语言中的关键字或保留字,否则会导致程序出错。
- 标记符中不能包含除下划线以外的特殊字符,如:空格、@、% 以及 $ 等。
- 标记符中的字母是严格区分大小写,开发中一般称之为对大小写敏感。
- 以下划线开头的标识符有特殊含义,建议不要随便以下划线开头命名标记符。
- 允许使用汉字或其他国家语言字符作为标识符,但是强烈不推荐使用,因为并不通用而且在部分计算机系统中不识别。
在标记符符合命名规范以外,为了提高程序的易读性,强烈建议使用h见文知意的单词、单词组合或单词加数字表达标记符所代表的数据信息或代码段的用途。
例如:
"""好的标记符命名"""
name = 'moluo'
age = 18
def login(username ,password):
"""用户登录处理"""
return check(username, password)
"""坏的标记符命名"""
n = "moluo"
a1 = 18
def lll(username ,password):
"""用户登录处理"""
return check(username, password)
4.2.2.2 关键字与保留字¶
| False | await | else | import | pass |
| None | break | except | in | raise |
| True | class | finally | is | return |
| and | continue | for | lambda | try |
| as | def | from | nonlocal | while |
| assert | del | global | not | with |
| async | elif | if | or | yield |
执行以下Python代码,可以查看关键字与保留字。
上面提到Python的变量名是区分大小写的,关键字与保留字也不例外,所以if 是保留字,但 IF 就不是了。
4.3 代码规范¶
PEP8是 《Python Enhancement Proposal #8》的简写, 由Python之父——Guido van Rossum于2001年主导编写的一份针对代码编写风格的编码规范。
Python Enhancement Proposal,译作:Python改善建议书。常用的PEP规范除了PEP8编码规范还有PEP257文档注释规范, PEP484类型提示规范等。
PEP8讨论了如何作为开发人员编写出漂亮的代码,目标是让Python代码具有一致的风格,从而提高代码的可读性,利于多人协作开发项目。
PEP8规范涵盖了包括代码格式、标记符命名约定、注释风格、导入语句等方方面面,以下是一些常见的主要推荐规范:
- 要使用换行作为语句分隔符,不推荐用分号将多条代码语句放在同一行。
- 要适当换行,每行代码长度不超过79个字符。
- 采用4个空格长度进行代码缩进,不推荐使用tab缩进。
- 在双目运算符两侧、成员之间的逗号右侧,使用1个空格进行分隔,不推荐在索引或切片两侧添加空格。
- 使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行。
- 标记符应该能够反映出它的用途并且尽可能的简短。
pycharm的快捷键:Ctrl+Alt+L可以直接对整个文件进行PEP8格式化处理。
4.3.1 语句分隔符¶
就像我们写作文一样,逗号、句号等语句分隔符是非常重要的,程序也一样,要想让解释器能读懂,语句和语句之间一定要有分隔符。在C、Java等语言的语法中规定,必须以分号作为语句结束的标识。Python也支持分号,同样用于一条语句的结束标识。但在Python中分号的作用已经不像C、Java中那么重要了,Python中的分号可以省略,主要通过换行来表示语句的结束。
4.3.2 语句缩进¶
Python 采用英文冒号:和代码缩进来区分代码块之间的包含层次。在 Python 中,对于流程控制、异常处理等语句与类、函数等结构的定义,都是采用行尾的冒号和下一行的缩进表示下一行代码块从属于上一行代码控制范围,而缩进的结束则表示此代码块的结束。
注意:
默认情况下,pycharm编辑器中会把Tab键替换成4 个空格。




































































































