range 函数详解

基本功能

range() 用于生成一个不可变的整数序列,常用于 for 循环中控制迭代次数。

它不直接返回列表,而是返回一个 range 对象(可迭代、惰性计算)。

语法

1
2
3
range(stop)
range(start, stop)
range(start, stop, step)
参数 含义
start 起始值(包含),默认为 0
stop 结束值(不包含)
step 步长,默认为 1
Read more »

一、字符串基础特性

  • 字符串是 不可变对象(immutable)
  • 支持索引 s[0]、切片 s[1:4]、遍历 for c in s
  • 支持 + 拼接、* 重复:"ab" * 3 → "ababab"
1
2
3
s = "Hello"
print(s[0]) # 'H'
print(s[::-1]) # 'olleH'(反转)

二、常用字符串方法(按功能分类)

字符判断类(返回 True/False

方法 功能 示例
.isalpha() 是否全是字母 "abc".isalpha()True
.isdigit() 是否全是数字(0-9) "123".isdigit()True
.isalnum() 是否是字母或数字 "a1".isalnum()True
.isspace() 是否全是空白字符 " \t\n".isspace()True
.islower() 是否全是小写 "hello".islower()True
.isupper() 是否全是大写 "HELLO".isupper()True
.istitle() 是否是标题格式(首字母大写) "Hello".istitle()True
.startswith(prefix) 是否以某字符串开头 "abc".startswith("a")True
.endswith(suffix) 是否以某字符串结尾 "file.txt".endswith(".txt")True

⚠️ 注意:isdigit() 不识别负数、小数;-123str"-123".isdigit()False


Read more »

python中的对象

1
2
3
4
5
6
7
8
9
10
11
12
def apple():
print("there is an apple")

# 1. 函数对象
apple

# 2.执行apple函数
apple()

# 3.将变量obj指向apple对象,执行apple函数
obj = apple
obj()

注意这里apple 和 apple() 的区别

Read more »

在 Python 中,当使用 multiprocessing 模块(如 ProcessPool)或 concurrent.futures.ProcessPoolExecutor 向子进程传递数据时,这些数据需要通过 pickle 序列化后传输。因此,只有 可序列化(pickleable) 的对象才能被安全地传递给子进程。

什么是可序列化(pickleable)?

可序列化对象 是指能被 Python 的 pickle 模块成功序列化(转换为字节流)和反序列化(从字节流恢复)的对象。

Read more »

一、核心概念

1.1 Python 的对象模型:一切皆对象,变量即引用

  • 变量不直接存储值,而是 指向对象的引用(指针)
  • id(x) 返回对象的内存地址(CPython 中即 PyObject* 的地址)。
  • 赋值操作 b = a 只是新增一个引用,不创建新对象

1.2 可变性(Mutability)

类别 典型类型 特征
不可变对象 int, float, str, tuple, frozenset, bytes 一旦创建,内容不可更改;任何“修改”操作均返回新对象
可变对象 list, dict, set, bytearray, 自定义类实例(默认) 可原地修改内容,对象身份(id)不变

⚠️ 注意:tuple 虽不可变,但若其元素为可变对象(如 ([1], 2)),则 tuple 自身不可变,但元素内容可变

Read more »

softmax函数

Softmax 函数 是一种常用的激活函数,广泛应用于机器学习和深度学习中,尤其是在多分类问题的输出层。它能将一个含任意实数的向量转化为另一个向量,其中每个元素的值都在 (0,1) 区间内,并且所有元素之和为 1。这使得它非常适合表示概率分布。

数学表达式:

给定一个向量 image,Softmax 函数定义如下:

image

Read more »

张量

1.1 创建张量(Tensor)

张量(Tensor)是 PyTorch 的核心数据结构,类似于 NumPy 的 ndarray,但支持 GPU 加速和自动求导。

Read more »

1 生成张量

1.1 使用torch.tensor()或者torch.Tensor()来生成张量。

两者主要区别为

  • torch.Tensor(data):直接调用Tensor构造函数会默认创建一个浮点型张量 (torch.float32)。即使输入的数据是整数列表或元组,生成的张量元素也会被转换为浮点数。
  • torch.tensor(data):此函数会根据输入数据的类型推断出张量的类型。如果输入的是整数列表,则生成的张量将具有整数类型(例如torch.int64),而浮点数列表则会生成浮点类型的张量。
Read more »

1. 问题设定和损失函数

假设模型为:
$ \hat{y} = ax + b $

损失函数(均方误差)为:

$ \text{Loss} = (y - \hat{y})2 = (y - (ax + b))2 $

我们使用以下初始参数:

$ a = 0, \quad b = 0 $

并且,学习率 $ \eta = 1 $。

Read more »