一、什么是Python
Python是一种解释型、高层次的编程语言,是现代软件开发中最受欢迎的选择之一。
Python由荷兰程序员吉多·范罗苏姆在1989年圣诞节期间构思并在1991年发布第一个版本。吉多·范罗苏姆设计Python的初衷是创建一种既易于阅读又具备强大功能的语言,这一目标在其命名上就有所体现——得名于英国喜剧团体“蒙提·派森的飞行马戏团”(Monty Python's Flying Circus),范罗苏姆希望这种语言能够与其偶像一样出色。
二、Python的优点
使用Python语言有许多优点,如语法简单、免费开源、功能强大、跨平台兼容性等。以下将详细列举这些优点:
- 简洁明了的语法
- 易读易写:Python的语法设计简洁且清晰,使得编写和阅读代码都变得相对简单。与需要大量符号和格式要求的语言相比,Python通过缩进来定义代码块,不强制在每条语句后加分号。
- 伪代码特质:Python常被形容为具有伪代码特质的编程语言,意味着其代码看起来就像加了注释的英文段落,这有助于提高代码的可读性和维护性。
- 免费且开源的特点
- 完全免费:Python的使用、分发和修改都是免费的。无论是用于个人还是商业项目,用户都无需支付任何费用。
- 开源优势:作为开源语言,Python允许任何人查看和改进其源代码。这不仅增强了透明度,还借助全球开发者的共同努力提升了语言的稳定性和性能。
- 功能强大的库支持
- 标准库和第三方库丰富:Python拥有大量内置库,从基本的数据处理到复杂的科学计算,都有现成的模块可供使用。PyPI(Python Package Index)是一个包含超过85,000个Python模块和脚本的资源库,提供了丰富的第三方模块支持。
- 广泛的应用场景:得益于强大的库支持,Python在人工智能、数据分析、网站开发、自动化运维等多个领域都有广泛应用。
- 跨平台的执行能力
- 良好的移植性:作为一种解释型语言,Python可以在Windows、Linux、macOS等多个操作系统上运行,而无需修改代码。这种跨平台能力使得开发者可以在不同环境下运行同一代码,减少了移植工作量。
- 面向对象的特性
- 灵活的对象模型:Python支持面向对象编程,允许开发者通过类和对象来组织代码,但也不强求必须使用面向对象的方式编写所有代码。这种灵活性让Python既能适应大型项目的复杂需求,也能处理简单的脚本任务。
综上所述,Python凭借其简洁易读的语法、免费开源的特性、强大的库支持、跨平台兼容性以及灵活的面向对象特性,成为了现代编程环境中最受欢迎的语言之一。对于初学者和经验丰富的开发者,Python基本都提供了一个高效、易用且功能强大的开发工具。
三、安装Python
下载最新版本(安装详细操作请看下一篇笔记)
四、Python注释
单行注释:以#开头,#在右边 (#和注释内容一般建议以一个空格隔开)
多行注释:以一对双引号引起("""注释内容“”“)
五、数据类型
使用type(被查看到数据)语句查看数据类型
*字符串 string (str)
查看的是变量存储的数据的类型,变量是没有类型的,而存储的数据是有类型的
六、数据类型的转换
int(x) 将x转换成一个整数
float(x)
str(x)
跟type语句一样都是有结果的
七、标识符
指用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名
标识符命名中,只允许出现:*英文 *中文 *数字 *下划线(_)这四类元素
(不推荐使用中文)
(数字不可以开头)
(不可以使用关键字)
八、运算符、赋值运算符、复合赋值运算符
请点击上一篇笔记内容进行查看
- 字符串扩展
- #1.字符串的三种定义方式
- 单引号方式
- 双引号方式
- 三引号方式
#2.引号的镶嵌
- 可以使用:\ 来进行转义
- 单引号内可以写双引号或双引号内可以写单引号
- #字符串拼接
- 字符串是没有办法通过加号和整数进行拼接的(无法和非字符串类型进行拼接)
- #字符串格式化
其中的,%s
- % 表示:我要占位
- S 表示:将变量变成字符串放入占位的地方
综合起来的意思是,我先占个位,等一会有一个变量过来,我把它变成字符串放到占位的位置
多个变量占位,变量要用括号括起来,并按照占位顺序填入,变量之间要用逗号隔开。
最常用的三类
eg:
- #格式化的精度控制
- m:控制宽度,要求是数字(很少使用),设置的宽度小于数字本身,不生效
- .n: 控制小数点精度,要求是数字,会进行小数的四舍五入
eg:
- %5d:表示将整数的宽度控制5位,如数字11,被设置变成【空格】【空格】【空格】11,用三个空格补足宽度。
- %5.2f:表示将宽度控制为5,将小数点精度设置为2
小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f,结果是:【空格【空格】11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入位 .35
- %.2f:表示不限制宽度,只设置小数点精度2,如11.345设置%.2f后,结果是11.35
- #字符串格式化——快速写法
语法:f”内容{变量}”
特点:不限类型,同时也不管精度控制
- #对表达式的格式化
表达式:一条具有明确执行结果的代码语句
eg:
1+1、5*2,就是表达式,因为有具体的结果,结果就是一个数字
在无需使用变量进行数据存储的时候,可以之间格式化表达,简化代码
- #数据输入
数据输入:input
- 使用input()语句可以从键盘获取输入
- 使用一个变量接收(存储)input语句获取的键盘输入数据即可
print语句其实是多余的
Input默认接收的类型永远都是字符串
- Python判断语句
- #布尔类型和比较运算符
定义变量存储布尔类型数据:
变量名称 = 布尔类型字面量
布尔类型不仅可以自行定义,同时也可以通过计算的来。
也就是使用比较运算符进行计较运算得到布尔类型的结果。
- #if语句的基本格式
If 要判断的条件:
条件成立时,要做的事情
- #if else 语句的组合用法
If 条件:
满足条件时要做的事情1
满足条件时要做的事情2
满足条件时要做的事情3
else:
不满足条件时做的事情1
不满足条件时做的事情2
不满足条件时做的事情3
- else后,不需要判断条件
- 2.else后的需要跟缩进
- #if elif else 语句
If 条件1:
条件1满足应做的事情
条件1满足应做的事情
.........
elif 条件2:
条件2满足时应做的事情
条件2满足时应做的事情
...........
elif 条件N:
条件N满足时应做的事情
条件N满足时应做的事情
..........
else:
所有条件都不满足应做的事情
所有条件都不满足应做的事情
........
判断是互斥且有顺序的。
- 满足1将不会理会2和3
- 满足2即不会理会3
- 1、2、3均不满足,进入else
- Else也可以省略不写,效果等同于3个独立的if判断
空格缩进都不可省略!!!
- #嵌套使用
If 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
If 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
第二个if属于第一个if内,只有第一个if满足条件,才会执行第二个if
通过空格缩进,来决定语句之间的:层次关系
- 循环语句
- #while循环的基础语法
While 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
(只要条件满足,会无限循环)
- while的条件需要得到布尔类型,true表示继续循环,false表示结束循环
- 需要设置循环终止的条件,如i +=1配合i<100,就能确保100次结束后停止,否则将无限循环
- 空格缩进和if判断一样,都需要设置
#while循环猜数字
#while循环的嵌套
While条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
.........
while条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
..............
#while 循环嵌套案例
不换行
补充知识点-制表符 \t
#for 循环的基础语法
- While循环的循环条件是自定义的,自行控制循环条件
- for循环是一种“轮询”机制,是对一批内容进行“逐个处理”
待处理的数据集也叫序列
依次取出
For循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
所以python的for循环无法构建无限循环(被处理的数据集不可能无限大)
#range语句
序列类型:其内容可以一个一个依次取出的内容,包括:
- 字符串
- 列表
- 元组
- 等
- rang(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
eg:
rang(5)得到:[10,1,2,3,4]
- rang(num1,num)
获取一个从num1开始,到num2结束的数字序列(不含num2本身)
eg:
rang(5,10) 得到:[5,6,7,8,9]
- rang(num1,num2,step)
获取一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
eg:
rang(5,10,2)得到:[5,7,9]
- Python列表
Python列表是一种内置数据结构,是包含在方括号【】的元素集合,它们具有许多独特的属性,使它们与其他的数据结构不同。
- 有序 — 允许使用索引号访问
- 可变 — 可以添加和删除列表中的元素
- 重复 — 列表中的元素可重复
- 异构 — 列表中的元素可以是不同的数据结构
- Python数组
Python内置了一个array模块,可用在Python中创建数组,虽然数组保留了Python列表的大部分特征,可以包含重复项、有序且可变,但不能存储不同数据类型的元素。
- 函数的局部变量
在函数内部,临时保存数据,在函数被调用之后立即销毁变量
- 全局变量
将变量定义在函数的外面
- Global关键字
在函数内声明变量为全局变量
- 数据容器
一个变量记录多个数据,容纳的每一份数据成为1个元素
每一个元素,可以是任意类型(字符串,数字,布尔)
- List列表
以[ ]作为标识,列表内每个元素之间,用逗号隔开
字符串需要用引号
- List列表的下标索引
正向:从0开始,依次递增
反向:从后往前,从-1开始
嵌套:
取值范围不能超出可用范围,否则报错
- 列表的常用操作
Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法
方法和函数一样,只是方法的使用格式不同
方法多个一个 “.”
列表的查询功能
- 修改特定位置(索引)的元素值
语法:列表[下标] = 修改值
- 插入元素(指定位置)
语法:列表.insert(修改后下标,“修改值”)
- 追加元素1(列表尾部)
语法:列表.append(追加的元素),将指定元素,追加到列表尾部
- 追加元素2
语法:列表.extend([其他数据容器]),将其他数据容器内容取出,依次追加到列表尾部、
- 删除元素
语法1:del 列表[下标]
语法2:列表pop(下标)
- 删除某元素在列表中第一个匹配项
语法:列表.remove(移除的元素)
从前到后找到的第一个删掉
- 清空列表
语法:列表.clear( )
- 统计某元素在列表中的数量
语法:列表.count(统计的元素)
- 统计列表中有多少元素
语法:len(列表)
- Numpy计算库
Numpy是一个Python语言的数值计算库,它是用于处理大型多维数组和矩阵操作的工具。它提供了高效的向量化操作,使得科学计算和数据处理变得更加容易和高效。Numpy还提供了许多内置函数和工具,可以用于线性代数、随机数生成、傅里叶变换等计算任务。在机器学习中,Numpy通常用于处理和处理数据,包括数据预处理、特征选择和特征提取等。
- 列表的遍历 - while循环
既然数据容器可以存储多个元素,那么,就会有需求从容器内依次取出元素进行操作。
将容器内元素依次取出进行处理的行为,成为:遍历、迭代。
- 可以使用while循环遍历元素
- 使用列表[下标]的方式取出
- 定义一个变量表示下标,从0开始
- 循环条件为下标值<列表的元素数量
While循环和for循环,都是循环语句,但细节不同:
- 在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定义条件,只可以一个个从容器内取出数据
- 在无限循环上:
while循环可以通过控制条件做到无限循环
for 循环理论上不可以,因为被遍历的容器容量不是无限的
- 在使用场景上:
while循环适用于任何想要循环的场景
for循环使用与,遍历数据容器的场景或简单的固定次数循环的场景
- 元组定义
元组定义:定义元组使用小括号,并且使用逗号隔开各个数据,数据可以是不同的数据类型
数据容器:tuple(元组)
列表可以修改;元组一旦定义完成就不能修改,相当于只读模式
定义空元组:
变量名称 = ()或者 变量名称 = tuple()
下标索引去取出内容
num = 变量名(需要去出的内容的位置)
Index查找 (找出元组内容中的某个元素的下标位置)
Count统计方法(找出元组内容中的每个元素有多少个)
len函数统计元组中元素的个数
元组的遍历:while
元组的遍历:for
元组的相关操作-注意事项
不可以修改元组内容,否则直接报错
可以修改元组内的list的内容(修改元素、增加、删除、反转等)