变量
变量的命名规则
- 只能有数字,字母,下划线(_)组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
命名规范
- 下划线命名法
my_first_name
my_last_name
- 驼峰命名法
- 大驼峰
MyFirstName
MyLastName
- 小驼峰
myFirstName
myLastName
- 大驼峰
变量类型
变量类型分为:数值型和非数值型
数值型
数据类型 | 描述 |
---|---|
int | 整型 |
float | 浮点型 |
bool | 布尔型 |
complex | 复数型 |
非数值型
数据类型 | 描述 |
---|---|
str | 字符串 |
list | 列表 |
tuple | 元组 |
set | 集合 |
dict | 字典 |
变量类型的特征和获取
在Python中定义变量不需要指定数据类型,变量的类型可以在使用过程中随时变化,以最后一次=
操作为准
当我们需要获取该变量的类型的时候,可以使用
type
获取当前变量的类型
算数运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 取整除 |
% | 取余数 |
** | 幂 |
不同变量类型之间的运算
- 数值型变量之间可以直接计算
- 字符串之间使用
+
拼接字符串 - 字符串变量和整型使用
*
重复拼接相同的字符串 - 数值型变量和字符串不能进行其他计算
赋值运算符
运算符 | 描述 |
---|---|
= | 赋值 |
+= | 加等于(a += b 等同于a = a + b ) |
-= | 减等于(a -= b 等同于a = a - b ) |
*= | 乘等于(a *= b 等同于a = a * b ) |
/= | 除等于(a /= b 等同于a = a / b ) |
//= | 整除等于(a //= b 等同于a = a // b ) |
%= | 模等于(a %= b 等同于a = a % b ) |
**= | 幂等于(a **= b 等同于a = a ** b ) |
比较运算符
运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
逻辑运算符
运算符 | 描述 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 逻辑非 |
运算符优先级
- 单目运算符:只需要一个数据运算的运算符,比如 not
- 双目运算符:需要两个数据运算的运算符
- 总的来说:单目运算符的优先级高于双目运算符
运算符 | 描述 |
---|---|
** | 幂(最高优先级) |
* / % // | 乘、除、取余数、取整除 |
+ - | 加、减 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
not or and | 逻辑运算符 |
输入输出操作
输出函数
- 普通输出
- 格式化输出
print()
函数
格式化输出格式
格式化字符串 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数,%06d表示不足 6 位以 0 补齐 |
%f | 浮点数,%.2f 表示小数后只显示两位 |
%% | 输出% |
###输入函数
获取用户从键盘上输入的信息,需要使用 input
函数,不管用户输入了任何内容,Python 都会认为是一个字符串
转换输入函数
使用强制转换来使得用户输入的字符串转换为我们需要的数据类型
float()
转换为浮点类型int()
转换为整型
条件控制语句if
-
程序满足特定的条件才能执行的特定代码
-
条件控制语句使用
if
关键字
格式如下:
1 |
if 条件: |
if...elif...else
格式如下:
1 |
if 条件1: |
if 嵌套
在实际开发中,有多个条件判断的需求,就需要使用 if 嵌套
格式如下:
1 |
if 条件1: |
循环控制语句 while和 for
循环的作用就是让代码执行指定的重复的代码
while循环
while循环 主要用在遍历指定次数的时候使用
格式如下:
1 |
while 条件: |
条件主要控制循环何时结束,注意如果条件一直不能为假,则该循环就为死循环,死循环会一直执行该重复的指令,无法终止。
for循环
for循环 主要用在遍历容器类中的元素的时候使用
格式如下:
1 |
for 临时变量 in 容器: |
range
range()
可以理解为数学中左闭右开的区间,常常使用在 for 语句中
break 和 continue语句
break
语句和 continue
语句是专门在循环中使用的关键字
- 当某一条件满足时,执行了 break 语句,这层循环将不在进行,会直接退出当层循环(后面会讲到循环嵌套,break 只会跳出一层循环)
- 当某一条件满足时,执行了 continue 语句,会直接跳过该次循环,直接到下一次循环中(在循环嵌套中,同样只会跳到该层循环的下次循环中,其他层次的循环不会受到影响)
循环嵌套
循环嵌套的意思就是循环中还有循环
循环结合 else
循环后面跟了一个 else 语句,该语句会在循环正常结束后执行,但是如果循环是通过 break语句
进行结束的,该 else 中的语句就不会执行了
高级数据类型
所有的非数值型变量
都有以下特点:
- 都是一个序列
sequence
,也可以理解为容器 - 都可以取值[0] (集合除外)
- 都可以用
for ... in ...
遍历 - 计算长度、最大/最小值、比较、删除
- 连接
+
和重复*
- 切片
字符串
- 字符串就是一串字符,是编程语言中表示文本的数据类型
- 在Python 中可以使用
一对双引号 ""
或一对单引号 ''
来定义一个字符串- 虽然有转义字符帮助我们转义
"
和'
,但是在开发中- 在字符串内部有使用
"
的需求,一般使用'
来定义字符串 - 在字符串内部有使用
'
的需求,一般使用"
来定义字符串
- 在字符串内部有使用
- 虽然有转义字符帮助我们转义
- 可以使用索引来获取字符串指定位置的字符,索引从 0 开始
Python 中可以使用多行字符串,多行字符串的定义方式与多行注释的方式一致,使用三个"""
进行定义
1 |
str1 = """ |
字符串操作
判断操作
方法 | 说明 |
---|---|
isalpha() | 如果一个字符串所有字符都是字母的时候,返回 True |
isdecimal() | 如果一个字符串所有字符都是数字的时候,返回 True |
islower() | 如果一个字符串所有字符都是小写字母的时候,返回 True |
isupper() | 如果一个字符串所有字符都是大写字母的时候,返回 True |
startwith(str) | 检查一个字符串是以 str 开头的时候,返回 True |
endswith(str) | 检查一个字符串是以 str 结尾的时候,返回 True |
查找和替换
方法 | 说明 |
---|---|
find(str, start = 0, end = len(string)) | 查找 str 是否在这个字符串中,如果在则返回开始的索引值,查不到则返回-1 |
rfind(str, start = 0, end = len(string)) | 类似find(),但是是从右边开始查找 |
index(str, start = 0, end = len(string)) | 跟find()类似,但是查不到会抛出异常 |
rindex(str, start = 0, end = len(string)) | 跟rfind()类似,但是是从右边开始查找 |
replace(old_str, new_str, num=string.count(old)) | 返回一个新的字符串,把 old_str 替换成 new_str |
拆分和连接
方法 | 说明 |
---|---|
partition(str) | 返回一个元组,把字符串根据 str 分隔成 3 元素的元组 |
rpartition(str) | 类似partition(),但是是从右边开始查找 |
split(str, num) | 根据 str 分隔字符串到一个列表中,num 是分隔的次数 |
splitlines() | 返回列表,根据行分隔 |
string1 + string2 | 拼接两个字符串 |
join(seq) | 返回一个字符串,以 str作为分隔符,将 seq 中所有元素合并成一个新的字符串 |
大小写转换
方法 | 说明 |
---|---|
lower() | 将所有字符转化为小写 |
upper() | 将所有字符转化为大写 |
文本对齐
方法 | 说明 |
---|---|
ljust(width) | 返回一个新字符串,在左边填充直到字符串长度为 width,默认填充空格 |
rjust(width) | 返回一个新字符串,在右边填充直到字符串长度为 width,默认填充空格 |
center(width) | 返回一个新字符串,在两边填充直到字符串长度为 width,默认填充空格 |
去除空白符
方法 | 说明 |
---|---|
lstrip() | 返回新字符串,截掉左边的空白字符,或指定字符 |
rstrip() | 返回新字符串,截掉右边的空白字符,或指定字符 |
strip() | 返回新字符串,截掉两边的空白字符,或指定字符 |
list 列表
list列表将是我们学习 Python 中使用最频繁的一个数据类型,该类型用来存储一串数据,存储的数据我们称之为元素
列表的定义
- 列表用
[]
定义,元素之间用,
分隔开即可 - 列表中可以有不同的数据类型,每个元素可以是任意类型
列表的访问
访问列表一般通过索引的方式,这里要注意的是,索引是从 0 开始的,即列表中的第一个元素的索引为 0
当然,我们最常用的还是用循环去遍历列表中的元素,通过 for 和 while 都可以,建议使用 for,看起来会更加简洁,但是在一些需要知道索引的情况下,while 也不失为一种优秀的选择。while 的循环条件比 for 来的更加灵活
列表的操作
增加操作
方法 | 说明 |
---|---|
append(item) | 在末尾追加item |
insert(index, item) | 在 index 位置插入 item |
extend(Iterable) | 将可迭代对象中的元素添加到列表中 |
删除操作
方法 | 说明 |
---|---|
del List(index) | 删除List的指定 index 的元素 |
remove(item) | 删除第一个出现的指定item |
pop() | 删除末尾数据,并返回被删除的元素 |
pop(index) | 删除指定索引的元素,返回被删除的元素 |
clear() | 清空列表 |
修改操作
List[index] = item # 修改 List中指定 index 的元素为 item
查询操作
方法 | 说明 |
---|---|
List[index] | 查询 List指定 index 的元素,index 不存在时将会抛出异常 |
index(item) | 根据 item 查找指定 List 中的该 item 的位置,没查到的时候会抛出异常 |
count(item) | item在列表中出现的次数 |
len(List) | List 的长度 |
if item in List: | 检查List 中是否包含 item |
排序操作
方法 | 说明 |
---|---|
sort() | 升序 |
sort(reverse = True) | 降序 |
reverse() | 逆序,反转 |
最值操作
方法 | 说明 |
---|---|
max() | 最大值 |
min() | 最小值 |
列表嵌套
列表嵌套和上文讲到的循环嵌套类似,即在列表中还有列表,即列表的元素还是一个列表,这就是列表嵌套,在实际使用中经常出现,eg:a = [[1,2,3],[4,5,6],[7,8,9]]
这就是一个简单的两个列表嵌套
tuple 元组
元组和列表类似,不同的地方在与元组不允许对内部的元素进行修改
- 元素用()定义
- 用于存储一串数据,元素之间用
,
分隔 - 元组的索引从 0 开始
- 元组的类型:
tuple
元组的定义
info_tuple = (1, 2, 3, 4)
注意,如果元组中只有一个元素的时候需要在后加一个
,
eg:
a = (10) # 如果这样定义一个一元素元组是错误的,次数的 a 为 int 类型而不是tuple
a = (10,) #一元素元组的正确定义方式
元组最大的特点就是不能修改
元组的操作
元组的操作和数组的操作类似,只是没有数组的增加,删除,修改,排序操作。
元素的使用场景
- 作为自动组包的默认类型
- 自动解包
- 交换数据
- 格式化输出
- 让列表不可被修改,保护数据安全
set集合
集合是无序的,且集合中的元素是唯一的
集合一般用来对列表或元组进行去重操作,注意:如果用 set 进行了去重操作,列表或元组中的元素位置将变化,因为 set 是无序的
创建空集合的方式 set1 = set()
集合操作
方法 | 说明 |
---|---|
add() | 添加一个元素到集合中 |
update() | 将传入数据拆分,然后添加到集合中 |
remove() | 删除集合中一个元素,如果没有,程序抛出异常 |
pop() | 随机删除一个元素,如果没有元素,程序将抛出异常 |
discard() | 元素存在直接删除,不存在不做任何操作 |
集合的交集、子集、超集、并集、异或、差集
方法 | 符号 | 说明 |
---|---|---|
s1.issubset(s2) | s1 < s2 | s1 是否是 s2 的子集 |
s1.issuperset(s2) | s1 > s2 | s1 是否是 s2 的超集 |
s1.union(s2) | s1 & s2 | s1 和 s2 的并集 |
s1.intersection(s2) | s1 & s2 | s1 和 s2 的交集 |
s1.difference(s2) | s1 - s2 | s1 和 s2 的差集 |
s1.symmetric_difference(s2) | s1 ^ s2 | s1 和 s2 的异或 |
dict 字典
dict 是除列表以外 Python 中最灵活的数据类型
- 字典可以用来存储多个数据
- 字典用
{}
定义 - 字典使用
键值对
存储数据,键值对之间的关系用,
分隔键 key
是索引值 value
是数据键
和值
用:
进行分隔值
可以是任何数据类型,但键
只能是字符串、数字或元组
键
必须唯一
字典的操作
分类 | 方法 | 说明 |
---|---|---|
增加 | dict[key] = value | 键不存在时,会添加键值对;键存在时,会修改键值对 |
dic.setdefault(key, value) | 键不存在时,会添加键值对;键存在时,不做任何处理 | |
删除 | del dict[key] | 删除指定键值对 |
dict.pop(key) | 删除指定键值对,并返回被删除的值 | |
dict.clear() | 清空字典 | |
修改 | dict[key] = value | 键不存在时,会添加键值对;键存在时,会修改键值对 |
dict.update(key=value) | 键不存在时,会添加键值对;键存在时,会修改键值对 | |
查询 | dict[key] | 根据键取出值,键不存在时,会抛出异常 |
dict.get(key) | 根据键取出值,键不存在时,不会抛出异常 | |
dict.keys() | 可进行遍历,获取所有键 | |
dict.values() | 可进行遍历,获取所有值 | |
dict.items() | 可进行遍历,获取所有(键,值) |
公共语法
Python 内置函数
函数 | 描述 | 备注 |
---|---|---|
len(item) | 计算容器中元素个数 | |
del item | 删除变量 | |
max(item) | 返回容器中元素最大值 | 字典只比较 key |
min(item) | 返回容器中元素最小值 | 字典只比较 key |
运算符
运算符 | 描述 | 支持的数据类型 |
---|---|---|
+ | 合并 | 字符串、列表、元组 |
* | 重复 | 字符串、列表、元组 |
in | 是否存在(字典中判断键) | 字符串、列表、元组、集合、字典 |
not in | 是否不存在(字典中判断键) | 字符串、列表、元组、集合、字典 |
> >= == < <= | 比较 | 字符串、列表、元组 |