前言

Python

  Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。


一、介绍

1. 简介

  Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

  • Python 是初学者的语言: Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

2. 语言分类

Python是1门程序设计语言。在开发者眼里,语言可以分为3类:

  1. 语言分类

自然语言:人能听懂的语言,例如汉语,英语,法语等等。
机器语言:机器能听懂的语言,机器只能听懂0和1。
程序设计语言:机器能够听懂,人能听懂的语言,例如Python,C,C++ 、C# 、Java等等。
同样的,在开发者眼里还可以分为高级程序设计语言和低级程序设计语言。越接近于人类的语言越高级,例如Python;越接近于机器语言越低级,例如汇编就属于低级程序员设计语言。

  1. 运行机制

程序运行主要有两种机制:编译型和解释型。编译型是将代码(源文件)通过编译器,编译成机器码文件,当运行的时候直接执行机器码文件,例如C语言;解释型是将源文件通过解释器,逐行进行翻译并运行。

Python则属于解释型的语言。

编译型和解释型语言各有优缺点:

  • 解释型:

缺点:执行慢
优点:可以跨平台(操作系统)

  • 编译型:

缺点:不能跨平台
优点:执行快

3. 发展历史

  Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

Python 2.0 于 2000 年 10 月 16 日发布,增加了实现完整的垃圾回收,并且支持 Unicode。

Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。

Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。

4. 特点

语法简洁、类库强大、胶水语言(调用其他语言的类库)、代码量较少

  • 1.易于学习: Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  • 2.易于阅读: Python代码定义的更清晰。

  • 3.易于维护: Python的成功在于它的源代码是相当容易维护的。

  • 4.一个广泛的标准库: Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  • 5.互动模式: 互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  • 6.可移植: 基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  • 7.可扩展: 如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  • 8.数据库: Python提供所有主要的商业数据库的接口。

  • 9.GUI编程: Python支持GUI可以创建和移植到许多系统调用。

  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

5. 应用

  • Youtube - 视频社交网站
  • Reddit - 社交分享网站
  • Dropbox - 文件分享服务
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • 知乎 - 一个问答网站
  • 果壳 - 一个泛科技主题网站
  • Bottle - Python微Web框架
  • EVE - 网络游戏EVE大量使用Python进行开发
  • Blender - 使用Python作为建模工具与GUI语言的开源3D绘图软件
  • Inkscape - 一个开源的SVG矢量图形编辑器。

二、 环境搭建

1. Python的安装步骤

Python的安装可以去官网直接下载,由于是国外的网站,可能响应和下载速度都会有点慢,如果你不着急就等着就行,想快一点的话用迅雷来下载就很快。

  • 下载Python

下载地址是 ttps://www.python.org/downloads/ ,也可以从官网点Downloads 进入下载页面,选择你的电脑对应的版本,我的是Windows电脑,所以就直接点击 Windows 。

请添加图片描述

Python目前是出到了3.14.1版本,你可以看到有很多版本的选择可下载,我用的是3.14.0这个版本,然后根据电脑挑选型号,我的电脑是64位的,所以就下载64位的软件。

在这里插入图片描述

安装Python

双击下载好的文件,进入安装界面。双击下载好的文件,进入安装界面。
在这里插入图片描述
选择自定义安装,把两个选择都勾选就能将Python安装到PATH中。
在这里插入图片描述
这个界面不变动,直接点 Next 。
在这里插入图片描述
选择一个你要安装的路径,不然它会把你装到C盘,我把它安装到了D盘,然后点击 Install 。
在这里插入图片描述
安装完成,点击 Close 。

在这里插入图片描述

  • Python测试

测试一下你的Python是否安装成功,WIN + R 键调出命令窗口,输入 cmd 。

在这里插入图片描述

在黑窗口输入 Python ,然后回车,如果提示Python 3.9.6 等信息就说明已经安装成功了,如果没有提示,那就回去看看哪个环境你出错了。
在这里插入图片描述

在黑窗口输入 Python ,然后回车,如果提示Python 3.9.6 等信息就说明已经安装成功了,如果没有提示,那就回去看看哪个环境你出错了。

或者直接使用,python -V,注意区分大小写。
在这里插入图片描述

2. Pycharm

Pycharm官网下载,选择一下系统,我是Windows系统所以默认不变,然后下载社区版的就可以了,等你变强大以后再用专业版的。

在这里插入图片描述
下载好之后,双击开始安装。

在这里插入图片描述
点击Next 。

在这里插入图片描述
自定义安装路径,建议装在C盘之外的其他盘,点击 Next 。

在这里插入图片描述

全部都勾选。

在这里插入图片描述
到了这里之后,默认即可,点击 Install 开始安装。

在这里插入图片描述
等待安装按成后,点击finish就装好了。
在这里插入图片描述

三、基础语法

基础知识包括输入输出、变量、数据类型、表达式、运算符这5个方面。

1.输入输出

Python有很多函数,后面我们会细讲,但这里先将两个最基本的函数:输入和输出。

输出函数print(),在前面我们已经用过了,语法就是:

print(要输出的内容)

输入函数是 input(),功能是接收用户输入的内容,语法是:

input(输出的内容)

举例:接收用户输入的密码并打印

n = input("请输入密码:")	#把输入内容赋给n,用 n 接收一下
print(n)	#打印n

在Python里,“#” 表示注释,“#”后面的东西不会被执行。代码运行之后首先出现了“请输入密码:”,然后随意输入,比如输入123,执行结果:

提示信息
请输入密码:123
123

成功接收用户输入的内容并打印出来。

2.变量

变量就是一个名字,需要先赋值在使用,变量要符合标识符(名字)的命名规范,这是硬性要求,标识符相当于名字,包括变量名、函数名、类名等等,

  • 标识符的命名规范
  1. 合法的标识符:字母,数字(不能开头),下划线,py3可以用中文(不建议),py2不可以。
  2. 大小写敏感。
  3. 不能使用关键字和保留字。
关键字: if while for as import
保留字:inputprint range
  1. 没有长度限制。
  2. 望文生义,看到名字就知道要表达的意思。
  3. 大小写:
  1. 包名:全小写,例如 time ;
  2. 类名:每个单词的首字母大写,其他的小写,简称大驼峰命名,例如 HelloWorld ;
  3. 变量名/函数名:第一个单词的首字母小写,后面的单词的首字母大写,简称小驼峰命名,例如 helloWorld ;
  4. 常量:全大写,例如 HELLO 。
  1. 其他命名方式,比如 hello_world 。

3.数据类型

  • 数据类型分类

  • 类型转换

  • 获取类型信息

4.表达式

在Python当中,表达式是由数字、算符、数字分组符号(括号)、变量等对象的组合叫做表达式,表达式均有固定字面值,例如 “10+20”这个表达式的值为30,表达式 “10>30” 的值为 False 。

5.运算符

运算符可以分为很多4类。

(1)一般运算符

+,-,*,/(真除法),//(地板除,舍去小数部分),%(取余数),**(幂运算)

(2) 赋值运算符

常用赋值运算符是 = ,等号右边的值赋值等号左边

增强赋值运算符:+=,-=,*=,/=,%=,**=

(3)布尔运算法

== (等于),!=(不等于) >= <= > <

(4) 逻辑运算符

主要有not、and和or三类,又称非、与和或
and:前后都为真则为真
or:有一个为真则为真
not:非真,非假

三、流程控制

流程控制常用的是条件分支流程的if/else语句和循环控制的while语句。

1.条件分支流程

当达到某种条件的时候才会触发的代码。

2.循环流程

在前面我们讲过的流程控制语句的功能还是比较有限,比如说只能执行1次,要执行多次就得多写几个,有点麻烦,所以我们需要学习循环流程里面的循环语句,它的作用就是重复运行某些代码。

四、列表(List)

列表是可以存放任何数据,包括整型,浮点型,字符串,布尔型等等,是常用的数据类型之一。

五、元组(tuple)

元祖也是Python中常见的数据类型之一,它可以用来存放任何数据类型,但它也有它的特点:

1. 不能修改,不可变类型
2. 用()的形式
3. 元组也是可迭代对象
4. 元组是有序的,下标操作,支持切面操作[:]

六、字符串

在Python中,字符和字符串没有区别。可能有些同学学过其他的语言,例如Java,在Java中,单引号’a’表示字符’a’,双引号"abc"表示字符串"abc",但在Python当中,它们没有区别,都统称字符串。

1.字符串的特点

字符串拥有以下特点:

1. 字符串不可变类型
2. 字符串是可迭代对象
3. 字符串支持索引和切片操作
4. 支持操作符;
		拼接:+
		重复操作符:*
		比较运算符: > < <= >= == !=
		逻辑运算符:not and or
		成员关系: in    not in		

七、字典(dict)

字典是用来存储数据的,字典中的数据以映射关系存储。

1.字典的特点

1. 字典是Python中唯一的映射类型
2. 字典是无序的
3. 字典是可迭代对象
4. 字典的构成
	键:key
	值:value
	映射:键映射值
	键-值:键值对,又叫 项 

八、函数

函数是由一组代码组成,完成某个特定的功能。

1.创建和使用

创建函数的语法如下:

def 函数名(参数): 
	代码块(函数的实现/函数体)

九、综合性练手项目

学完了这些基础觉得水平怎么样?说实话,学完这些基础你能做的东西没有多少的,好玩的东西都是入门之后才能做出来的。

根据上面所讲的循环语句、列表、函数等基础知识,可以尝试写一个综合性的项目来检验你的知识,可以尝试写1个简单的名片管理系统。

1. 系统需求

1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单

**************************************************
欢迎使用【名片管理系统】V1.0

1. 新建名片
2. 显示全部
3. 查询名片

0. 退出系统
**************************************************

2.用户用数字选择不同的功能
3.根据功能选择,执行不同的功能
4.用户名片需要记录用户的 姓名、电话、QQ、邮件
5.如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

十、模块与包

1. 模块

(一)定义

模块指的是Python的程序文件(源文件),模块的文件名就是模块名加上.py,里面包含了Python对象定义和Python语句,模块包含了定义函数、类和执行代码等等,一般情况下不要去修改模块,以免模块失效。

(二)模块导入

Python中允许导入的形式来进行模块调用,Python中的模块也是对象,模块中定义的所有全局变量,导入后都成为模块的属性。

1.语法1: import 模块名

如果要导入多个模块,可以只用1个import来导入多个模块,多个模块之间用逗号隔开即可,但是在Python的PEP8风格里面,不建议这么做,所以要导入几个模块,就写几个import来进行挨个导入。

2.语法2: from 模块名 import 功能1,功能2

注意这里的功能后面不加括号。

3.语法3:from 模块名 import

一般情况下,这个语法可以导入模块的所有功能,当你要用某个模块的多个功能的时候,就不用挨个写了,这里我就不举例了,都是一样的。

(三)定义别名

有的模块或者模块内的功能名字比较长,多次使用的时候不方便,可以进行自定义模块或者功能的名字。

1.模块自定义别名: import 模块名 as 别名

2.功能自定义别名: from 模块名 import 功能名 as 别名

(四)自定义模块

每个人都能生成自定义模块来进行调用,自定义模块就是Python文件,我们写代码时创建的Python文件就相当于1个模块。

注意点:被调用的模块尽量放在当前Python文件相同目录下,否则导入时要声明所在文件夹才能导入。

(五)模块的测试

每个模块导入的时候都默认被执行一遍,但同时在模块内部又存在着很多的内部测试代码,为了避免导入模块时执行了模块内部的测试代码,于是就牵扯到一个方法:

很多模块在内部都有测试方法:
if __name__ == "__main__":
	代码1

这个方法能够实现一个功能,在模块中执行的话,就会执行代码1的代码,在其他文件导入该模块的时候,则不会执行代码1的代码,所以一般模块内部的测试都放在了代码1当中。

注意点:在自定义的模块中,不建议写while循坏,不然导入的过程中一直在执行模块里面的while循坏,可能会跳不出来,也就是一直在导入模块,其他代码执行不到。

2. 包

(一)定义

包就是将有联系的模块放在同一个文件夹下,并且该文件夹里有“__init__.py”这个文件,这个文件夹就叫做包。

包的特征:

1.包也是对象
2.必须有__init__.py文件
3.__init__.py文件是包的构造方法,控制着包的导入行为,一般是个空包
4.包里面不仅可以有模块,还可以有子包

(二)包的创建

在Pycharm软件中新建1个项目文件,创建完成后,打开Pycharm创建1个项目文件夹→点击文件夹→右键弹出选项→New→Python Package→完成创建,创建的新文件夹就是包,里面自动创建了init文件。

(三)包的导入

常规导入方法主要有2种。

方法1:import 包名.模块名.目标

方法2:import 包名.子包.模块名.目标

这里所说的目标可以是变量、函数等等对象。


(四)包的使用

使用形式1:常规使用1

import 包名.模块名
包名.模块名.功能

使用形式2:常规使用2

from 包名 import 模块名
模块名.功能
模块名.变量

使用形式3:另起别名并使用

import 包名.模块名 as 别名
别名.功能
别名.变量

使用方式4:导入某个功能

from 包名.模块名 import 功能1
功能1

使用方式5:导入所有功能

在模块导入的时候我们介绍了import * 这个方式去导入模块里面的所有功能,在这里也可以这么入导入包里面的模块的所有功能。

使用形式6.关于all的使用

关于__all__的使用在模块的时候有介绍过,那是控制可以被导入的功能列表,但在包里面,__all__是控制可以被导入的模块列表,即声明哪些模块可以被导入。

包里面的__all__是在__init__文件中声明的,而不是在哪个模块中写的。

3. 模块与包的作用

  1. 提高代码的可重用性。好用的代码不止你1个人可以用,很多人都可以重复使用它。
  2. 提高代码的可读性。如果所有的代码都放在1个.py文件中,那代码就太长了,增加了理解和维护难度,所以可以把一些常用的代码封装成包和模块,起1个望文生义的名字,需要的时候直接用就行,减少了代码的数量,提高了可读性。
  3. 减少代码的冗余。模块里面封装的一些方法,我们直接给参数去使用就可以了,不用把方法再写一遍,占用内存,也就减少了代码的冗余。

4. 第三方库的安装

Python虽然有很多自带的模块和包,简称内置模块,但只会使用内置模块还不够,毕竟内置模块有限,我们经常会用到第三方的库,这个时候学习怎么安装第三方的库(包)是很必要的。

十一、文件操作

1. 文件的定义和操作

计算机中的文件通常是指计算机硬盘为载体的、存储在计算机中的信息集合,主要的表现形式为视频、音频、图片以及文档四类,比如执行性文件.exe、文档文件.txt、网页文件.html等等。

2. 文件的基本操作

在现实中,我们对文件进行操作可以大致总结为“打开→操作(阅读、删除、修改等)→保存→关闭”,在Python当中依然是如此,在用Python开始文件操作之前,我们先学几个方法。

1.open(name, mode) ----打开文件

这是Python打开文件的方法,用于打开一个文件,返回的是一个文件对象。

name指的是文件名,一定要写全,何为写全?就是要写清楚 存储路径+文件名+后缀 。

为何要写这么全?因为就算是相同的存储路径下,文件名相同的文件也可能不止一个,只要后缀不一样,计算机是允许存在同名文件,所以不写全的话,计算机是不知道你指的是谁

mode是打开文件的模式,默认是r,也就是只读的方式。mode的方式有很多,比如读、写等等,后面我们会讲到。

2.write(“内容") ------写

顾名思义,就是向文件对象中写入内容。

3.read() -------读

向文件中写入内容,括号里面可以写数字也可以不写,不写的话默认是读取全部内容,写数字则表示读取X个字符,比如说read(6)则读取文件对象的6个字符。

4.close() ------关闭文件

关闭文件的方法,如果你在进行文件操作之后不进行关闭文件,则文件一直处于打开和操作的状态,会占用内存。

6.mode的其他操作模式

mode中有很多的操作模式,我们以表格的方式来看看:

模式 描述
r 以只读的形式打开文件,文件的指针在开头
r+ 读写,文件指针在开头
rb 以二进制的形式,只读文件指针在开头
w 只写,文件不存在,则创建新的,存在则覆盖,指针在开头
w+ 读写,文件不存在,则创建新的,存在则覆盖,指针在开头
wb 只写,以二进制的形式
a 追加模式,文件指针在结尾
a+ 读写,不存在则创建,存在直接追加
ab 以二进制形式追加

指针在这里可以理解为光标,它在哪里,你的操作就从哪里开始。

举例:新建1个名为 “test” 的.txt文件,第一次向里面写入aaa,第二次向里面写入bbb。

f = open("test.txt", 'a+')
f.write("aaa")
f.close()

f = open("test.txt")  # 默认只读模式
print(f.read())  # 打印内容

f = open("test.txt", 'a+')
f.write("bbb")
f.close()

f = open("test.txt")  # 默认只读模式
print(f.read())  # 再次打印内容

运行结果:

aaa
aaabbb

3. 文件的方法与属性

1.file的对象属性

有三个常用的方法可用于查看文件对象的属性:

1. closed
   	如果文件对象已关闭,返回True,否则返回False
2. mode
   	返回文件对象的访问模式
3. name
   	返回文件的名称

案例:对文件进行操作(随意),查看被操作的文件名、操作模式和是否关闭。

f = open("test.txt", 'a+')
f.write("aaa")
f.close()

print(f.closed) #查看是否关闭
print(f.name)   #查看文件名字
print(f.mode)   #查看操作模式

运行结果:

True
test.txt
a+

2.file的对象方法

文件的方法有很多,前面我们已经讲过一点,比如read()和write(),但还有一些常用的方法需要掌握的,比如下面的:

1. close()
		关闭文件---非常重要
2. read([count])
		读取文件中的内容
		count:字节数量
3. readlines()
		读取所有内容,打包成列表
4. readline()
		读取一行数据,追加读取,读取过的不能再次读取
5. seek(offset,[from])
		修改指针的位置:从from位置移动了offset个字节
		from:0则表示从起始位置,1则表示从当前位置开始,2则表示从末尾开始
		oofset:要移动的字节数
6. write()
		向文件中写入内容

举例:向test.txt文件中写入aaabbbccc,将文件中的内容输出为列表。

f = open("test.txt", 'a+')
f.write("aaabbbccc")
f.close()

f = open("test.txt")
print(f.readlines())
f.close()

运行结果:

['aaabbbcccaaabbbccc']

4. os模块

os模块是一个用于访问操作系统的模块,在进行文件操作的时候常会用到它。模块在使用之前要进行导入。

1.关于文件的功能

1.os.rename(原文件名,新的文件名) ——文件重命名
2.os.remove(文件名) ——删除文件
 如果不说明路径,则在源代码所在文件夹下寻找,寻找不到会报错。
 若想删除指定文件夹下的文件,文件名则需要具体路径,例如 os.remove(r"D:\test_1\文件名"),r防止斜杠发生转义

举例:已有文件test1.txt,将其修改成test20.txt。

import os
os.rename("test1.txt","test20.txt")

运行结果:

在这里插入图片描述

2.文件夹的功能

1.os.mkdir(文件夹名)	——创建文件夹
2.os.rmdir(文件夹名)	——删除文件夹
3.os.getced()	——获取当前目录
4.os.chdir(目录)	——切换目录
5.os.listdir(目录)	——获取当前文件夹下所有的文件或者文件夹,返回一个列表
	os.listdir("aa") #获取aa文件夹下的所有文件或文件夹,返回一个列表

举例:在现有文件夹venv里面新建一个新建文件夹。

import os

os.chdir(r"D:\文件\venv")  #切换到venv文件夹下,r是防止转义
os.mkdir("新建文件夹")   #在venv文件夹下创建一个新建文件夹
print(os.getcwd())  #输出当前目录位置

运行结果:

在这里插入图片描述

5.小结

os模块里面还有其他的方法,我们可以ctrl+鼠标左键进入模块内部查看,比如说不止os模块,还有os.path这个模块也是比较常用的文件操作模块。

十二、异常处理

十三、进程与线程


本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识
万字【Python基础】保姆式教学,零基础快速入门Python


Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐