跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 日常高频写法与内置函数速查

Python 日常高频写法涵盖数字处理、字符串操作、函数定义、数据结构、面向对象编程及常用工具模块。文章详细列举了 60 个内置函数与核心概念,包括进制转换、ASCII 互转、布尔检查、排序求和、闭包与非局部变量、类方法与元类等。通过代码示例展示了 abs、bin、chr、all、any、sorted、lambda、slice、property 等函数的实际应用,并补充了对象序列化与文件操作技巧。内容旨在帮助开发者快速查阅与复习 Python 核心语法,提升编码效率。

静心发布于 2025/2/6更新于 2026/9/1258 浏览
Python 日常高频写法与内置函数速查

一、数字

1. 求绝对值

abs(-6)  # 输出:6

2. 进制转化

十进制转换为二进制
bin(10)  # 输出:'0b1010'
十进制转换为八进制
oct(9)   # 输出:'0o11'
十进制转换为十六进制
hex(15)  # 输出:'0xf'

3. 整数和 ASCII 互转

十进制整数对应的 ASCII 字符
chr(65)  # 输出:'A'
查看某个 ASCII 字符对应的十进制数
ord('A') # 输出:65

4. 元素都为真检查

所有元素都为真,返回 True,否则为 False。

all([1, 0, 3, 6]) # 输出:False
all([1, 2, 3])    # 输出:True

5. 元素至少一个为真检查

至少有一个元素为真返回 True,否则 False。

any([0, 0, 0, []]) # 输出:False
any([0, 0, 1])     # 输出:True

6. 判断是真是假

测试一个对象是 True 还是 False。

bool([0, 0, 0]) # 输出:True (非空列表视为真)
bool([])        # 输出:False
bool([1, 0, 1]) # 输出:True

7. 创建复数

创建一个复数。

complex(1, 2) # 输出:(1+2j)

8. 取商和余数

分别取商和余数。

divmod(10, 3) # 输出:(3, 1)

9. 转为浮点类型

将一个整数或数值型字符串转换为浮点数。

float(3)      # 输出:3.0
# float('a') 会抛出 ValueError

10. 转为整型

int(x, base=10),x 可能为字符串或数值,将 x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。

int('12', 16) # 输出:18

11. 次幂(base 为底的 exp 次幂,如果 mod 给出,取余)

pow(3, 2, 4)  # 3 的 2 次方 除以 4 取余,输出:1

12. 四舍五入

round(10.0222222, 3) # 输出:10.022
round(10.05, 1)      # 输出:10.1

13. 链式比较

i = 3
print(1 < i < 3)    # False
print(1 < i <= 3)   # True

二、字符串

14. 字符串转字节

s = "apple"
bytes(s, encoding='utf-8') # 输出:b'apple'

15. 任意对象转为字符串

str(100)       # 输出:'100'
str([])        # 输出:'[]'
str(tuple())   # 输出:'()'

16. 执行字符串表示的代码

将字符串编译成 Python 能识别或可执行的代码,也可以将文字读成字符串再编译。

s = "print('helloworld')"
r = compile(s, "<string>", "exec") # s 编译为字节代码对象
exec(r)                               # 输出:helloworld

17. 计算表达式

s = "1 + 3 + 5"
eval(s) # 输出:9

18. 字符串格式化

格式化输出字符串,format(value, format_spec) 实质上是调用了 value 的 __format__(format_spec) 方法。

print("i am {0}, age{1}".format("tom", 18)) # 输出:i am tom,age18

三、函数

19. 排序函数

a = [1, 4, 2, 3, 1]
sorted(a, reverse=True) # 输出:[4, 3, 2, 1, 1]

a = [{'name': 'xiaoming', 'age': 18, 'gender': 'male'},
     {'name': 'xiaohong', 'age': 20, 'gender': 'female'}]
sorted(a, key=lambda x: x['age'], reverse=False)
# 输出:[{'name': 'xiaoming', ...}, {'name': 'xiaohong', ...}]

20. 求和函数

a = [1, 4, 2, 3, 1]
sum(a)          # 输出:11
sum(a, 10)      # 输出:21 (初始值为 10)

21. nonlocal 用于内嵌函数中

关键词 nonlocal 常用于函数嵌套中,声明变量为非局部变量;如果不声明,i+=1 表明 i 为函数 wrapper 内的局部变量,因为在 i+=1 引用时,i 未被声明,所以会报 UnboundLocalError 错误。

import time

def excepter(f):
    i = 0
    t1 = time.time()
    def wrapper():
        try:
            f()
        except Exception as e:
            nonlocal i
            i += 1
            print(f'{e.args[0]}: {i}')
            t2 = time.time()
            if i == n:
                print(f'spending time:{round(t2-t1,2)}')
    return wrapper

22. global 声明全局变量

先回答为什么要有 global,一个变量被多个函数引用,想让全局变量被所有函数共享。有的伙伴可能会想这还不简单,这样写:

i = 5
def f():
    print(i)
def g():
    print(i)
f()
g()

f 和 g 两个函数都能共享变量 i,程序没有报错,所以他们依然不明白为什么要用 global。 但是,如果我想要有个函数对 i 递增,这样:

def h():
    i += 1
h()

此时执行程序,出错了!抛出异常:UnboundLocalError,原来编译器在解释 i+=1 时会把 i 解析为函数 h() 内的局部变量,很显然在此函数内,编译器找不到对变量 i 的定义,所以会报错。global 就是为解决此问题而被提出,在函数 h 内,显式地告诉编译器 i 为全局变量,然后编译器会在函数外面寻找 i 的定义,执行完 i+=1 后,i 还为全局变量,值加 1:

i = 0
def h():
    global i
    i += 1
h()
print(i) # 输出:1

23. 交换两元素

def swap(a, b):
    return b, a
print(swap(1, 0)) # 输出:(0, 1)

24. 操作函数对象

def f():
    print('i\'m f')
def g():
    print('i\'m g')
[f, g][1]() # 如果是 [f,g][0](),返回 i'm f
# 输出:i'm g

创建函数对象的 list,根据想要调用的 index,方便统一调用。

25. 生成逆序序列

list(range(10, -1, -1)) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 从大到小的排列必须用 -1 控制

26. 函数的五类参数使用例子

Python 五类参数:位置参数,关键字参数,默认参数,可变位置或关键字参数的使用。

def f(a, *b, c=10, **d):
    print(f'a:{a},b:{b},c:{c},d:{d}')

默认参数 c 不能位于可变关键字参数 d 后。 调用 f:

f(1, 2, 5, width=10, height=20)
# a:1,b:(2, 5),c:10,d:{'width': 10, 'height': 20}

可变位置参数 b 实参后被解析为元组 (2,5);而 c 取得默认值 10; d 被解析为字典。 再次调用 f:

f(a=1, c=12)
# a:1,b:(),c:12,d:{}

a=1 传入时 a 就是关键字参数,b,d 都未传值,c 被传入 12,而非默认值。 注意观察参数 a,既可以 f(1),也可以 f(a=1) 其可读性比第一种更好,建议使用 f(a=1)。如果要强制使用 f(a=1),需要在前面添加一个*号:

def f(*, a, **b):
    print(f'a:{a},b:{b}')

此时 f(1) 调用,将会报错:TypeError: f() takes 0 positional arguments but 1 was given 只能 f(a=1) 才能 OK。 说明前面的*发挥作用,它变为只能传入关键字参数,那么如何查看这个参数的类型呢?借助 python 的 inspect 模块:

from inspect import signature
for name, val in signature(f).parameters.items():
    print(name, val.kind)
# a KEYWORD_ONLY
# b VAR_KEYWORD

可看到参数 a 的类型为 KEYWORD_ONLY,也就是仅仅为关键字参数。 但是,如果 f 定义为:

def f(a, *b):
    print(f'a:{a},b:{b}')

查看参数类型:

for name, val in signature(f).parameters.items():
    print(name, val.kind)
# a POSITIONAL_OR_KEYWORD
# b VAR_POSITIONAL

可以看到参数 a 既可以是位置参数也可是关键字参数。

27. 使用 slice 对象

cake1 = list(range(5, 0, -1))
cake1 # [5, 4, 3, 2, 1]
b = cake1[1:10:2]
b     # [4, 2]

再生成一个序列:

from random import randint
cake2 = [randint(1, 100) for _ in range(100)]
d = cake2[1:10:2]
# d 为切片结果

你看,我们使用同一种切法,分别切开两个容器 cake1,cake2。后来发现这种切法极为经典,又拿它去切更多的容器对象。 那么,为什么不把这种切法封装为一个对象呢?于是就有了 slice 对象。 定义 slice 对象极为简单,如把上面的切法定义成 slice 对象:

perfect_cake_slice_way = slice(1, 10, 2)
cake1_slice = cake1[perfect_cake_slice_way]
cake2_slice = cake2[perfect_cake_slice_way]

逆向序列切片,slice 对象一样可行:

a = [1, 3, 5, 7, 9, 0, 3, 5, 7]
a_ = a[5:1:-1]
named_slice = slice(5, 1, -1)
a_slice = a[named_slice]
# a_ 和 a_slice 结果一致

频繁使用同一切片的操作可使用 slice 对象抽出来,复用的同时还能提高代码可读性。

28. lambda 函数的动画演示

def max_len(*lists):
    return max(*lists, key=lambda v: len(v)) # 返回长度最长的列表
r = max_len([1, 2, 3], [4, 5, 6, 7], [8])
print(f'更长的列表是{r}')

lambda 函数返回值,等于 lambda v 冒号后表达式的返回值。

四、数据结构

29. 转为字典

dict()                    # {}
dict(a='a', b='b')        # {'a': 'a', 'b': 'b'}
dict(zip(['a','b'],[1,2]))# {'a': 1, 'b': 2}
dict([('a',1),('b',2)])   # {'a': 1, 'b': 2}

30. 冻结集合

创建一个不可修改的集合。

frozenset([1, 1, 3, 2, 3]) # frozenset({1, 2, 3})

因为不可修改,所以没有像 set 那样的 add 和 pop 方法。

31. 转为 set 集合类型

a = [1, 4, 2, 3, 1]
set(a) # {1, 2, 3, 4}

32. 转为切片对象

class slice(start, stop[, step])

返回一个表示由 range(start, stop, step) 所指定索引集的 slice 对象,它让代码可读性、可维护性变好。

a = [1, 4, 2, 3, 1]
my_slice_meaning = slice(0, 5, 2)
a[my_slice_meaning] # [1, 2, 1]

33. 转元组

i_am_list = [1, 3, 5]
i_am_tuple = tuple(i_am_list)
# (1, 3, 5)

五、类和对象

34. 是否可调用

callable(str) # True
callable(int) # True

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name
    def __repr__(self):
        return 'id = '+self.id +', name = '+self.name

xiaoming = Student('001', 'xiaoming')
callable(xiaoming) # False (不可调用)

如果能调用 xiaoming(),需要重写 Student 类的 __call__ 方法:

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name
    def __repr__(self):
        return 'id = '+self.id +', name = '+self.name
    def __call__(self):
        print('I can be called')
        print(f'my name is {self.name}')

t = Student('001', 'xiaoming')
t() # 输出:I can be called / my name is xiaoming

35. ascii 展示对象

调用对象的 repr 方法,获得该方法的返回值,如下例子返回值为字符串。

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name
    def __repr__(self):
        return 'id = '+self.id +', name = '+self.name

xiaoming = Student(id='1', name='xiaoming')
xiaoming
# id = 1, name = xiaoming
ascii(xiaoming)
# 'id = 1, name = xiaoming'

36. 类方法

classmethod 装饰器对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name
    @classmethod
    def f(cls):
        print(cls)

37. 动态删除属性

delattr(xiaoming, 'id')
hasattr(xiaoming, 'id') # False

38. 一键查看对象所有方法

不带参数时返回当前范围内的变量、方法和定义的类型列表;带参数时返回参数的属性,方法列表。

dir(xiaoming)
# 列出所有属性和方法

39. 动态获取对象属性

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name

xiaoming = Student(id='001', name='xiaoming')
getattr(xiaoming, 'name') # 获取 xiaoming 这个实例的 name 属性值
# 'xiaoming'

40. 对象是否有这个属性

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name

xiaoming = Student(id='001', name='xiaoming')
hasattr(xiaoming, 'name') # True
hasattr(xiaoming, 'address') # False

41. 对象内存地址

id(xiaoming) # 输出内存地址

42. isinstance

判断 object 是否为类 classinfo 的实例,是返回 true。

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name

xiaoming = Student(id='001', name='xiaoming')
isinstance(xiaoming, Student) # True

43. 父子关系鉴定

class undergraduate(Student):
    def studyClass(self):
        pass
    def attendActivity(self):
        pass

issubclass(undergraduate, Student) # True
issubclass(object, Student)        # False
issubclass(Student, object)        # True

如果 class 是 classinfo 元组中某个元素的子类,也会返回 True。

issubclass(int, (int, float)) # True

44. 所有对象之根

object 是所有类的基类。

o = object()
type(o) # object

45. 创建属性的两种方式

返回 property 属性,典型的用法:

class C:
    def __init__(self):
        self._x = None
    def getx(self):
        return self._x
    def setx(self, value):
        self._x = value
    def delx(self):
        del self._x
    x = property(getx, setx, delx, "I'm the 'x' property.")

使用 python 装饰器,实现与上完全一样的效果代码:

class C:
    def __init__(self):
        self._x = None
    @property
    def x(self):
        return self._x
    @x.setter
    def x(self, value):
        self._x = value
    @x.deleter
    def x(self):
        del self._x

46. 查看对象类型

class type(name, bases, dict) 传入一个参数时,返回 object 的类型:

class Student():
    def __init__(self, id, name):
        self.id = id
        self.name = name

xiaoming = Student(id='001', name='xiaoming')
type(xiaoming) # __main__.Student
type(tuple())  # tuple

47. 元类

xiaoming, xiaohong, xiaozhang 都是学生,这类群体叫做 Student。 Python 定义类的常见方法,使用关键字 class。

class Student(object):
    pass

xiaoming, xiaohong, xiaozhang 是类的实例,则:

xiaoming = Student()
xiaohong = Student()
xiaozhang = Student()

创建后,xiaoming 的 __class__ 属性,返回的便是 Student 类。

xiaoming.__class__ # __main__.Student

问题在于,Student 类有 __class__ 属性,如果有,返回的又是什么?

xiaoming.__class__.__class__ # type

哇,程序没报错,返回 type。 那么,我们不妨猜测:Student 类,类型就是 type。 换句话说,Student 类就是一个对象,它的类型就是 type。 所以,Python 中一切皆对象,类也是对象。 Python 中,将描述 Student 类的类被称为:元类。 按照此逻辑延伸,描述元类的类被称为:元元类,开玩笑了~ 描述元类的类也被称为元类。 说对了,type 类一定能创建实例,比如 Student 类了。

Student = type('Student', (), {})
Student # __main__.Student

它与使用 class 关键字创建的 Student 类一模一样。 Python 的类,因为又是对象,所以和 xiaoming,xiaohong 对象操作相似。支持:赋值、拷贝、添加属性、作为函数参数。

StudentMirror = Student # 类直接赋值
Student.class_property = 'class_property' # 添加类属性
hasattr(Student, 'class_property') # True

元类,确实使用不是那么多,也许先了解这些,就能应付一些场合。就连 Python 界的领袖 Tim Peters 都说: '元类就是深度的魔法,99% 的用户应该根本不必为此操心。'

六、工具

48. 枚举对象

返回一个可以枚举的对象,该对象的 next() 方法将返回一个元组。

s = ["a", "b", "c"]
for i, v in enumerate(s, 1):
    print(i, v)
# 1 a
# 2 b
# 3 c

49. 查看变量所占字节数

import sys
a = {'a': 1, 'b': 2.0}
sys.getsizeof(a) # 占用字节数

50. 过滤器

在函数中设定过滤条件,迭代元素,保留返回值为 True 的元素:

fil = filter(lambda x: x > 10, [1, 11, 2, 45, 7, 6, 13])
list(fil) # [11, 45, 13]

51. 返回对象的哈希值

返回对象的哈希值,值得注意的是自定义的实例都是可哈希的,list, dict, set 等可变对象都是不可哈希的 (unhashable)。

hash(xiaoming) # 6139638
hash([1, 2, 3]) # TypeError: unhashable type: 'list'

52. 一键帮助

返回对象的帮助文档。

help(xiaoming)

53. 获取用户输入

获取用户输入内容。

input() # aa
# 'aa'

54. 创建迭代器类型

使用 iter(obj, sentinel),返回一个可迭代对象,sentinel 可省略 (一旦迭代到此元素,立即终止)。

lst = [1, 3, 5]
for i in iter(lst):
    print(i)
# 1
# 3
# 5

55. 打开文件

返回文件对象。

fo = open('D:/a.txt', mode='r', encoding='utf-8')
fo.read()

mode 取值表请参考官方文档。

56. 创建 range 序列

range(stop)
range(start, stop[, step])

生成一个不可变序列:

range(11)      # range(0, 11)
range(0, 11, 1)# range(0, 11)

57. 反向迭代器

rev = reversed([1, 4, 2, 3, 1])
for i in rev:
    print(i)
# 1
# 3
# 2
# 4
# 1

58. 聚合迭代器

创建一个聚合了来自每个可迭代对象中的元素的迭代器:

x = [3, 2, 1]
y = [4, 5, 6]
list(zip(y, x)) # [(4, 3), (5, 2), (6, 1)]

a = range(5)
b = list('abcde')
[str(y) + str(x) for x, y in zip(a, b)] # ['a0', 'b1', 'c2', 'd3', 'e4']

59. 链式操作

from operator import add, sub

def add_or_sub(a, b, oper):
    return (add if oper == '+' else sub)(a, b)

add_or_sub(1, 2, '-') # -1

60. 对象序列化

对象序列化,是指将内存中的对象转化为可存储或传输的过程。很多场景,直接一个类对象,传输不方便。 但是,当对象序列化后,就会更加方便,因为约定俗成的,接口间的调用或者发起的 web 请求,一般使用 json 串传输。 实际使用中,一般对类对象序列化。先创建一个 Student 类型,并创建两个实例。

class Student():
    def __init__(self, **args):
        self.ids = args['ids']
        self.name = args['name']
        self.address = args['address']

xiaoming = Student(ids=1, name='xiaoming', address='北京')
xiaohong = Student(ids=2, name='xiaohong', address='南京')

导入 json 模块,调用 dump 方法,就会将列表对象 [xiaoming,xiaohong],序列化到文件 json.txt 中。

import json

with open('json.txt', 'w') as f:
    json.dump([xiaoming, xiaohong], f, default=lambda obj: obj.__dict__, ensure_ascii=False, indent=2, sort_keys=True)

生成的文件内容,如下:

[
    {
        "address":"北京",
        "ids":1,
        "name":"xiaoming"
    },
    {
        "address":"南京",
        "ids":2,
        "name":"xiaohong"
    }
]

总结

本文整理了 Python 开发中常用的 60 个高频写法和内置函数,涵盖数字处理、字符串操作、函数定义、数据结构、面向对象编程及常用工具模块。掌握这些基础用法有助于提升编码效率和代码质量。建议在实际项目中结合具体场景灵活运用,并注意不同版本 Python 之间的兼容性差异。

目录

  1. 一、数字
  2. 1. 求绝对值
  3. 2. 进制转化
  4. 十进制转换为二进制
  5. 十进制转换为八进制
  6. 十进制转换为十六进制
  7. 3. 整数和 ASCII 互转
  8. 十进制整数对应的 ASCII 字符
  9. 查看某个 ASCII 字符对应的十进制数
  10. 4. 元素都为真检查
  11. 5. 元素至少一个为真检查
  12. 6. 判断是真是假
  13. 7. 创建复数
  14. 8. 取商和余数
  15. 9. 转为浮点类型
  16. float('a') 会抛出 ValueError
  17. 10. 转为整型
  18. 11. 次幂(base 为底的 exp 次幂,如果 mod 给出,取余)
  19. 12. 四舍五入
  20. 13. 链式比较
  21. 二、字符串
  22. 14. 字符串转字节
  23. 15. 任意对象转为字符串
  24. 16. 执行字符串表示的代码
  25. 17. 计算表达式
  26. 18. 字符串格式化
  27. 三、函数
  28. 19. 排序函数
  29. 输出:[{'name': 'xiaoming', ...}, {'name': 'xiaohong', ...}]
  30. 20. 求和函数
  31. 21. nonlocal 用于内嵌函数中
  32. 22. global 声明全局变量
  33. 23. 交换两元素
  34. 24. 操作函数对象
  35. 输出:i'm g
  36. 25. 生成逆序序列
  37. 26. 函数的五类参数使用例子
  38. a:1,b:(2, 5),c:10,d:{'width': 10, 'height': 20}
  39. a:1,b:(),c:12,d:{}
  40. a KEYWORD_ONLY
  41. b VAR_KEYWORD
  42. a POSITIONALORKEYWORD
  43. b VAR_POSITIONAL
  44. 27. 使用 slice 对象
  45. d 为切片结果
  46. a 和 aslice 结果一致
  47. 28. lambda 函数的动画演示
  48. 四、数据结构
  49. 29. 转为字典
  50. 30. 冻结集合
  51. 31. 转为 set 集合类型
  52. 32. 转为切片对象
  53. 33. 转元组
  54. (1, 3, 5)
  55. 五、类和对象
  56. 34. 是否可调用
  57. 35. ascii 展示对象
  58. id = 1, name = xiaoming
  59. 'id = 1, name = xiaoming'
  60. 36. 类方法
  61. 37. 动态删除属性
  62. 38. 一键查看对象所有方法
  63. 列出所有属性和方法
  64. 39. 动态获取对象属性
  65. 'xiaoming'
  66. 40. 对象是否有这个属性
  67. 41. 对象内存地址
  68. 42. isinstance
  69. 43. 父子关系鉴定
  70. 44. 所有对象之根
  71. 45. 创建属性的两种方式
  72. 46. 查看对象类型
  73. 47. 元类
  74. 六、工具
  75. 48. 枚举对象
  76. 1 a
  77. 2 b
  78. 3 c
  79. 49. 查看变量所占字节数
  80. 50. 过滤器
  81. 51. 返回对象的哈希值
  82. 52. 一键帮助
  83. 53. 获取用户输入
  84. 'aa'
  85. 54. 创建迭代器类型
  86. 1
  87. 3
  88. 5
  89. 55. 打开文件
  90. 56. 创建 range 序列
  91. 57. 反向迭代器
  92. 1
  93. 3
  94. 2
  95. 4
  96. 1
  97. 58. 聚合迭代器
  98. 59. 链式操作
  99. 60. 对象序列化
  100. 总结

更多推荐文章

查看全部
  • Git 配置与使用详解
  • C++ 模板机制与 string 类实战指南
  • 系统开发成本高企?低代码的工程化降本路径
  • Java Web 开发学习:数据库知识复习与整理
  • 大语言模型入门指南:核心概念与架构解析
  • 前缀和算法详解与实战应用
  • Hugging Face 令牌申请流程:以 Llama-3.1-8B 为例
  • 免费使用 AI 绘画模型 Nano Banana Pro 指南
  • OpenClaw 技术解析:本地 AI 数字员工的架构与落地实践
  • Windows 下 Codex 代理配置与一键切换脚本方案
  • 通过逆向 WebChat 协议实现 OpenClaw 零后端接入
  • PowerShell Invoke-WebRequest 报 Invalid URL 和 CommandNotFound 解决方案
  • Pixel Shuffle 与 Unshuffle 原理及算法流程
  • 命令行大模型上下文协议(MCP)交互工具:小巧的 MCPHost
  • 前端调试:如何使用 debugger 设置断点
  • AQS 核心机制与 CountDownLatch 源码解析
  • OpenClaw 集成飞书机器人部署指南
  • 【硬核】从零搭建16人AI数字员工团队:OpenClaw“龙虾”部署大战斗
  • KBQA 核心数据集详解:WebQSP 与 CWQ
  • 我的 C++ 设计模式整理:23 种模式的实现与建议

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online