【模块一】Python基础
变量
命名规范
-
见名知义
-
下划线命名法(推荐使用),驼峰命名法
-
只能包含字母、数字和下划线,不能以数字开头
-
不能使用保留字
基本数据类型
整型(integer)和浮点型(float)
不可变数据类型(immutable)
字符串类型
通常使用一对单引号('')或双引号(""),三重引号(''' 或 """)表示多行字符串
布尔类型(boolean)
True和False,bool(),
输入输出函数
input(),print()
常见类型转换
int() str() float()
NoneType类型
唯一值None
运算符
计算运算符
+ - * /
% 取余 // 整除
比较运算符
> < >= <= == !=
is
和==
的区别
is
比较两个对象是否引用同一个对象即:内存地址是否相同==
比较两个对象的值是否相等,不考虑是否是同一个对象
and
和or
运算符的机制
- 如果or左边的布尔结果为True,则直接将左边的结果返回,右边压根不看了
- 如果or左边的布尔结果为False,则直接将右边的结果返回,无论右边的布尔结果是否为True
- 如果and两边的布尔结果为假,返回左边的结果 0 and False --> 0
- 如果and两边的布尔结果为真,返回右边的 3 and True --> True
- 如果and左边的为真,右边的为假,返回右边的,无论右边的结果是真是假 3 and 0 --> 0
- 如果and左边的为假,右边的为真,返回左边的,无论左边的结果是真是假 0 and 3 --> 0
print(6 or 2 > 1) # 6 print(3 or 2 > 1) # 3 print(0 or 5 < 4) # False print(2 > 1 or 6) # True
赋值运算符
= += -= *= /=
逻辑运算符
and 逻辑与 or 逻辑非 not 逻辑非
成员运算符
in / not in
检查一个值是否存在于某个序列
字符串
字符串的转义符
\n
:换行符,表示在字符串中创建一个新行。
\t
:制表符,表示在字符串中插入一个水平制表符(Tab)。
\b
:退格字符,b代表backspace,可以把一个退格符看成一个backspace键
\"
:双引号,用于在字符串中包含双引号字符。
\'
:单引号,用于在字符串中包含单引号字符。
\\
:反斜杠,用于在字符串中包含反斜杠字符本身。
格式化输出
-
%占位符
-
f-string(推荐使用)
宽度与精度
width[.precision]
填充与对其
[pad]alignWidth[.precision]
pad填充字符,可选,默认空格;
align对齐方式(
<
左对齐>
右对齐^
居中)
字符串的序列化操作
- 索引(Index)和切片(Slice)
- 其他
- len()
- 拼接:+ *
- in判断
字符串的内置方法
方法 | 作用 | 示例 | 输出 |
---|---|---|---|
upper() | 全部大写 | "hello".upper() | HELLO |
lower() | 全部小写 | "hello".lower() | hello |
startswith() | 是否以a开头 | "张三".startswith() | True |
endswith() | 是否以a结尾 | "meinv.png".endswith(".jpg") | False |
isdigit() | 是否全数字 | "123".isdigit() | True |
strip() | 去两边空格 | " hi yuan \n" | "hi yuan" |
join() | 将多个字符串连接在一起 | "-".join("北京","上海") | "北京-上海" |
split() | 按某字符分割字符串,默认按空格分割 | "北京-上海".split() | ['北京','上海'] |
find() | 搜索指定字符串的索引,找不到返回-1 | "hello yuan".find("yuan") | 6 |
index() | 同上,找不到会报错 | "hello yuan".index("yuan") | 6 |
count() | 统计指定的字符串出现的次数 | "hello yuan".index("l") | 2 |
replace() | 替换old为new | "hello world".replace("world","python") | "hello python" |
流程控制语句
列表
列表List
有序、可变、可重复
基本操作
-
索引操作
-
切片操作
-
判断成员是否存在
-
相加
-
循环列表
-
计算元素个数
内置方法
方法 | 作用 | 示例 | 输出 |
---|---|---|---|
append() | 追加元素 | list.append(100) | |
insert() | 任意位置添加元素 | list.insert(1,100) | |
extend() | 向列表合并一个列表 | list1.extend(list2) | |
pop() | 根据索引删除列表元素(为空删除最后一个元素) | list.pop(1) | |
remove() | 根据元素值删除列表元素 | list.remove(100) | |
clear() | 清空列表元素 | list.clear() | |
sort() | 排序(升序) | list.sort() | |
reverse() | 翻转列表 | list.reverse() | |
count() | 元素重复的次数 | list.count(3) | |
index() | 查找元素对应索引 | list.index(3) |
列表的深浅拷贝
-
不可变类型,包括:整型integer,浮点数float,布尔值boolean,字符串string,元组tuple
-
可变类型,包括:列表list,字典dictionary
-
浅拷贝(Shallow Copy)是创建一个新的列表对象,该对象与原始列表共享相同的元素对象。当你对其中一个列表进行修改时,另一个列表也会受到影响。
这意味着如果原始列表中含有可变对象(如子列表、字典等),新列表中的对应元素也会指向相同的可变对象。因此,改变新列表中的可变对象会影响原列表中的对应元素。
- 切片操作符
[:]
list()
函数copy()
方法
- 切片操作符
-
深拷贝(Deep Copy)是创建一个新的列表对象,并且递归地复制原始列表中的所有元素对象。这意味着原始列表和深拷贝的列表是完全独立的,对其中一个列表的修改不会影响另一个列表。
copy.deepcopy()
总结
浅拷贝:仅拷贝顶层结构,共享内部的可变对象
深拷贝:拷贝所有的结构和数据,不共享任何对象
列表的嵌套
列表推导式
列表推导式List comprehensioins
new_list = [expression for item in iterable if condition]
其中:
expression
是要应用于每个元素的表达式或操作。item
是来自可迭代对象(如列表、元组或字符串)的每个元素。iterable
是可迭代对象,提供要遍历的元素。condition
是一个可选的条件,用于筛选出满足条件的元素。
元组
元组tuple
有序、不可变、可重复,只读列表
- 长度
len()
- 索引、切片
- 成员判断
in
- 拼接
+
- 循环
- 内置方法:index()、count()
字典
字典dictionary
,键key
必须是唯一的,值value
可以是任意类型的数据
- 无序性:通过键访问和操作字典中的值
- 键是唯一的且不可变类型对象:用于标识值。值可以是任意类型的对象,整数、字符串、列表、元组等
- 可变性
基本操作
-
使用
{}
创建字典gf = {"name":"","age":18} -
查键值
gf["name"] -
添加或修改键值对
-
删除键值对
del gf["age"] -
判断键是否存在
"weight" in gf -
循环
for key in gf:
内置方法
方法 | 作用 | 示例 | 结果 |
---|---|---|---|
update() | 更新字典(添加或修改) | d.update({"age":19, "height":"190cm"}) | |
pop() | 根据键删除指定的键值对,并返回键对应的值。 | d.pop("height") | |
popitem() | 默认删除字典最后的键值对,并返回被删除的(key, values) 元组 |
d.popitem() | |
clear() | 清空字典 | d.clear() | |
get() | 查询键对应的值,没有该键也不会报错 | d.get("name") | |
keys() | 查询所有键 | d.keys() | |
values() | 查询所有值 | d.values() | |
items() | 查询所有键值对 | d.items() |
dict.pop(key, [, default])
如果要删除的键在字典中不存在,
pop
会抛keyerror
异常如果提供了默认值作为第二个参数,当键不存在时会返回该默认值而不是抛出异常
集合
集合(Set) 是无序、不重复的数据结构。集合中的元素必须是不可变类型,且每个元素都是唯一的。
无序性:集合中的元素是无序的,不能使用索引
唯一性
可变性:集合是可变的,可以通过添加和删除元素来改变集合的内容
内置方法
方法 | 作用 | 示例 | 结果 |
---|---|---|---|
add() | 添加元素 | s.add(14) | |
remove() | 删除集合中的元素,元素不存在,报错 | s.remove(11) | |
discard() | 删除集合中的元素,元素不存在,不报错 | s.discard(11) | |
pop() | 删除并返回任意的集合元素 | s.pop() | |
clear() | 清空集合 | s.clear() | |
update() | 并集更新 | s.update({12, 13, 14}) | |
intersection() | 返回与参数集合的交集,等同于& |
s.intersection({12, 13, 14}) | |
union() | 返回与参数集合的并集,等同于` | ` | s.union({12, 13, 14}) |
difference() | 返回与参数集合的差集,等同于- |
s.difference({12, 13, 14}) | |
symmetric_difference() | 返回与参数集合的对称差集,等同于 | s.symmetric_difference({12, 13, 14}) |
总结
列表 | 元组 | 字典 | 集合 | |
---|---|---|---|---|
有序 | 有序 | 无序 | 无序 | |
增 | list.append(元素) list.insert(index,元素) list.extend(list2) | dict.update({key:value}) | set.add(元素) set.update(元素) | |
删 | list.pop(index) list.remove(元素) list.clear() | dict.pop(key) dict.popitem() dict.clear() | set.remove(元素) set.discard(元素) set.pop() set.clear() | |
改 | list[index]=元素 | dict.update({key:value}) | set.update(元素) | |
查 | list[index] | tuple[index] | dict.get(key) |
本文来自博客园,作者:七星海棠^_~,转载请注明原文链接:https://www.cnblogs.com/qixinghaitang/p/18282083
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)