Python
基础语法
基础
整除
//
幂**
''
和""
的使用完全相同,"""
可以指定一个多行的字符串,不支持单字符类型,单个字符也视为字符串\
转义符,使用r
可以让反斜杠不发生转义默认输出会自动换行,不需要换行在变量的末尾加上
end=""
,print( x, end=" " )
Nubmber
包含int
、float
、complex
(复数)其中int
包含bool
(True
、False
)删除
del
,del var1[,var2[,var3[....,varN]]]
切片时包含前索引不包含后索引
导入:
- 将整个模块(somemodle)导入,格式为:
import somemodule
- 从某个模块中导入某个函数,格式为:
from somemodule import somefunction
- 从某个模块中导入多个函数,格式为:
from somemodule import firstfunc, secondfunc, thirdfunc
- 将某个模块中的全部函数导入,格式为:
from somemodule import *
运算优先级:
** | 幂 |
---|---|
~ + - | 取反 一元加减号 |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 运算符符 |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
数据结构
list列表
列表内的元素可以修改
1 |
|
tuple元组
定义时使用小括号且元组内的元素不可修改,访问元组内的元素与列表相同,删除只能删除整个元组
如果你想创建只有一个元素的元组,需要注意在元素后面添加一个逗号,以区分它是一个元组而不是一个普通的值,这是因为在没有逗号的情况下,Python会将括号解释为数学运算中的括号,而不是元组的表示。
1 |
|
dictionary字典(map)
表示映射关系的键(key
)值(value
)对,key
必须唯一,键不可变,因此可以使用数字,字符串,元组而不能使用列表
1 |
|
set集合
是一种无需、可变的数据类型,用于存储唯一的元素,创建格式parame = {value01,value02,...}
或者set(value)
1 |
|
函数
动态参数
使用关键词 *args
接收任意数量的位置参数,存储为元组(tuple)。
1 |
|
使用关键词 **kwargs
接收任意数量的关键字参数,存储为字典(dict)
1 |
|
tips:
1 |
|
return
当在函数中未写返回值
或 return
或 return None
,执行函数获取的返回值都是None
return
后面的值如果有逗号,则默认会将返回值转换成元组再返回。
1 |
|
传参
在 Python 中,函数参数的传递方式本质上是 传递对象的引用(内存地址)
- 不可变对象(int, str, tuple 等):
- 函数内修改参数 不会影响外部变量
- 因为修改时会创建新对象
- 可变对象(list, dict, set 等):
- 函数内 原地修改(如
append
/update
)会影响外部变量 - 函数内 重新赋值(如
= []
)不会影响外部变量
- 函数内 原地修改(如
- 本质:参数传递的是内存地址的副本,但操作方式决定了是否共享内存
函数式编程
map函数
1 |
|
reduce函数
1 |
|
过滤序列filter
1 |
|
列表生成式
1 |
|
海象运算符
py==3.8
后引入的新的赋值表达式运算符,可以在表达式中进行赋值操作,符号为:=
1 |
|
面向对象
1 |
|
继承
1 |
|
类
特殊方法/魔法方法
定义了类要如何对待运算符的python内置函数的方法,往往前后有两个下划线,叫作dunder method
->double underscore
import
导入文件时的查找是根据执行目录sys.path
来的
假设我们A导入B,在B导入C,BC在同目录下,运行A,当前目录是A所在的目录,虽然BC是同级,但无法直接导入
导入时的*
可用__all__
来定义
1 |
|
相对导入
- **单个点 (
.
)**:表示当前包。 - **两个点 (
..
)**:表示当前包的父包。 - **三个点 (
...
)**:表示当前包的父包的父包,以此类推。
例如,假设有以下目录结构:
1 |
|
在 test2.py
中,你可以使用相对导入来导入 test1.py
中的函数:
1 |
|
为了使相对导入正常工作,请确保:
- 你的代码在包的上下文中运行。
- 使用
-m
选项从包的根目录运行 Python 解释器。
__init__.py
包的初始化
管理包的接口
1
2
3
4from packageA import *
#packageA/__init__.py
__all__=['X','moduleA']管理包的信息
1
2__version__='1.0.0'
__outhor__='cwdpsky'