python 基础

创建虚拟环境

指令格式: python -m venv 目录名

启动环境指令:

1
2
3
4
5
windows:
目录名\Scripts\activate

Linux:
source ./目录名/bin/activate

退出指令:

1
deactivate

注释

单行注释以 # 开头。

多行注释使用三个单引号 ’’’ 或三个双引号 ““” 将注释包含其中。

数据类型

变量赋值时自动判断数值的类型。

变量后可以加冒号: 指定类型。(但指定int,赋值str也能正常运行。这是给IDE和自己看的。)

Number(数字)

1
age: int = 256

String(字符串)

1
name: str = "isaac"

bool(布尔类型)

1
2
is_empty: bool = True
is_empty: bool = False

List(列表)

可变,有序,元素可重复

元素类型支持数字,字符串,列表等等。

1
2
users: list = []
users: list = ["102", "xiaoming", "Tac"]

Tuple(元组)

不可变,有序。

1
2
3
tup: tuple = ()
tup: tuple = ("name", ) # 单个元素必须后面加一个, 否则解释器会识别为str类型。
tup: tuple = ("name", "opop", 89897)

Set(集合)

无序,元素唯一(自动去重)

1
2
empty_set: set = set() # 空集合必须使用set(), 否则会被识别为dict类型
ports_num: set = {"name", 5984, "txt", 99}

Dictionary(字典)

键值对,键唯一且不可变

1
2
3
4
5
6
7
8
9
10
server: dict = {"host": "127.0.0.1", "port": 8080, "secure": True}
user:dict = dict(name="isaac", age=26, city="BeiJing")

# 创建空字典
empty_dict1: dict = {}
empty_dict2: dict = dict()

# 元组列表转换为字典
kv_pairs:list = [("status", 200), ("msg", "OK"), ("version", "v1.0")]
api_response: dict = dict(kv_pairs)

类型转换

隐式类型转换

1
2
3
num_int = 123
num_float = 1.23
num_new = num_int + num_float #<class 'float'>

显示类型转换

1
2
3
4
5
6
7
8
int("12") #<class 'int'>
float(5) #<class 'float'>
str(667) #<class 'str'>
bool(8) #<class 'bool'>
list("abc") #<class 'list'>
tuple([1, 2]) #<class 'tuple'>
set([1,2,3]) #<class 'set'>
dict([('a', 1)]) #<class 'dict'>

注意:除了值为0,0.0,““,[],(),{},set(),None,其余值bool()皆返回True。

运算符

算数运算符

运算符 描述
+
-
*
/
%
** a**b 相当于 a^b
// 取整数(往小)9//4=2, -9//4=-3

赋值运算符

运算符 描述
=
+=
-=
*=
/=
%=
**=
//=
:= 海象运算符

海象运算符可以在判断或循环的同时,将值存入变量减少重复代码。

1
2
3
4
5
6
if len(my_list) > 3:
print(f"长度为{len(my_list)}")

# 只调用一次len
if (n := len(my_list)) > 3:
print(f"长度为{n}")

比较运算符

运算符 描述
==
!=
>
<
>=
<=

位运算符

运算符 描述
&
|
^
~
<<
>>

逻辑运算符

运算符 描述
and
or
not

成员运算符

运算符 描述
in x在y中有,返回 True
not in x在y中没有,返回 True

身份运算符

运算符 描述
is x和y指向的是同一个地址,返回True
is not x和y指向的是不同的地址,返回True

条件控制

if

1
2
3
4
5
6
if a == 20:
pass
elif a == 30:
pass
else:
pass

三元运算符

1
status = "成年" if age >= 18 else "未成年"

match

1
2
3
4
5
6
7
8
9
match age:
case 15:
pass
case 20:
pass
case 30:
pass
case _:
pass

额外

语法糖切片,格式:object[start:stop:step]

支持类型:List, String, Tuple。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 基础写法
print(nums[1:4]) # [1, 2, 3]

# 省略写法
print(nums[:3]) # [0, 1, 2]
print(nums[7:]) # [7, 8, 9]
print(nums[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 步长控制
print(nums[1:8:2]) # [1, 3, 5, 7]
print(nums[::3]) # [0, 3, 6, 9]

# 负数索引
print(nums[-3:]) # [7, 8, 9]
print(nums[2:-2]) #[2, 3, 4, 5, 6, 7]

# 负数步长 (翻转)
print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(nums[8:2:-2]) # [8, 6, 4]

空语句pass

“代码占位符”,在没有确定函数,类,if,while等这些里面的具体写的代码。可以写个pass占着,让代码正常运行。

1
2
3
4
5
clss User:
pass

def printf():
pass

python 基础
https://fu01.github.io/posts/98b77d55/
作者
Fu01
发布于
2026年5月22日
许可协议