python内建方法

在help文档中查看方法的参数时:

  • 在'/'之前的参数都是位置参数
  • 在'/'与'*'之间的参数可以被用作位置参数和关键字参数
  • 在'*'之后的参数只能是关键字参数

我们可以使用dir(__builtin__)查看内建库中的所有方法[从abs到zip])

dir(__builtin__)

目录

1  不常用的

1.1  如果迭代器中没有负值则返回True all()

1.2  如果迭代器中有一个布尔值为True的元素则返回True any()

1.3  若字符在ascii码中返回该字符本身,若不在ACSII中则返回其他编码 ascii()

1.4  显示Python版权与致谢 copyright()与credits()

1.5  使用指定方法过滤元素 filter()

1.6  返回当前运行的ipynb对象 get_ipython()

1.7  返回已存在的所有全局变量 globals()

1.8  返回版权 license()

1.9  查看已存在的本地变量 locals()

1.10  给指定对象创建一个memoryview对象 memoryview()

1.11  返回object对象 object()

1.12  返回property对象 property()

2  常用的

2.1  返回变量绝对值 abs()

2.2  将变量转换为二进制 bin()

2.3  将变量转换为布尔量 bool()

2.4  将变量转换为字节数组 bytearray()

2.5  将变量转变为bytes形式 bytes

2.6  查看变量是否可调用 callable()

2.7  返回值对应的ascii字符 chr()

2.8  将变量转换为classmethod类型 classmethod()

2.9  编译 compile()

2.10  返回变量复数形式 complex()

2.11  删除属性 delattr()

2.12  生成字典 dict()

2.13  显示变量所有属性 dir()

2.14  显示对象 display()

2.15  变量相除 divmod()

2.16  变量枚举 enumerate()

2.17  变量评估后转换为最合适的变量 eval()

2.18  把变量转换为合适的语句然后执行 exec()

2.19  将变量转变为浮点型 float()

2.20  将变量转变为指定格式 format()

2.21  将变量转变为不可变的无需集合 frozenset()

2.22  获取对象属性 getattr()

2.23  判断类中是否有指定属性 hasattr()

2.24  返回变量哈希值 hash()

2.25  查看帮助文档 help()

2.26  返回变量16进制的值 hex()

2.27  查看变量的标识 id()

2.28  让用户输入一段字符串 input()

2.29  返回变量整形形式 int()

2.30  判断变量是否为指定类型 isinstance()

2.31  判断对象1是否为对象2的子类 issubclass()

2.32  生成迭代器 iter()

2.33  返回迭代器中的元素数量 len()

2.34  将变量转换为列表 list()

2.35  让两组迭代器做为两个变量同时参与运算 map()

2.36  获取指定内容中的最大值 max()

2.37  获取指定内容中的最小值 min()

2.38  返回迭代器中下一个元素 next()

2.39  返回变量的8进制值 oct()

2.40  打开一个文件流 open()

2.41  返回一个字符在ascii码中对应的值 ord()

2.42  平方运算 pow()

2.43  打印一个值 print()

2.44  生成有序整形数组 range()

2.45  返回变量的字符串类型 repr

2.46  使迭代器逆序 reversed()

2.47  五舍六入 round()

2.48  返回变量set形式 set()

2.49  给指定对象一个属性 setattr()

2.50  迭代器切片 slice()

2.51  迭代器排序 sorted()

2.52  将方法转变为静态方法 staticmethod()

2.53  返回变量字符串形式 str()

2.54  求和 sum()

2.55  继承父类的方法 super()

2.56  返回变量tuple形式 tuple()

2.57  查看对象类型 type()

2.58  返回一个键值对,内容为类的属性 vars()

2.59  打包成zip对象 zip()


1  不常用的

1.1  如果迭代器中没有负值则返回True all()

#all()如果迭代器中所有数值为True则返回True
a = [1,2]
b = all(a)
print(b)

a = [0,1,2]
b = all(a)
print(b)

#如果迭代器为空返回True
a = []
b = all(a)
print(b)

1.2  如果迭代器中有一个布尔值为True的元素则返回True any()

#any()如果迭代器中有任意值的布尔量为True则返回True
a = [0,1,2]
b = any(a)
print(b)

#如果为空则返回False
a = []
b = any(a)
print(b)

1.3  若字符在ascii码中返回该字符本身,若不在ACSII中则返回其他编码 ascii()

#ascii()若字符在ascii码中返回该字符本身,若不在ACSII中则返回其他编码
a = '🔫'
b = ascii(a)
print(b)

a = 'A'
b = ascii(a)
print(b)

1.4  显示Python版权与致谢 copyright()与credits()

这两个方法,还有下面的license方法在帮助文档中的解释是一样的

  • copyright()

  • credits()

#copyright()显示版权所有
copyright()

print(82*'*')
#credits()致谢
credits()

1.5  使用指定方法过滤元素 filter()

#filter()过滤出迭代器中符合要求的元素并返回变量类型为filter
def filt(n):
    return n % 2 == 0

b = range(0,20)
c = filter(filt,b)
print(c)
print(type(c))
for i in c:
    print(i)

1.6  返回当前运行的ipynb对象 get_ipython()

  • 此方法是jupyter notebook独有方法,在Pycharm中无法使用

get_ipython()

1.7  返回已存在的所有全局变量 globals()

  • 与关键字的global用法不同,与关键字global配合使用

global 二零二零
a = 1
b = globals()
print(b)

1.8  返回版权 license()

a = 1
b = license()
print(b)

1.9  查看已存在的本地变量 locals()

你好吗 = 1243
b = locals()
print(b)

1.10  给指定对象创建一个memoryview对象 memoryview()

#给定对象形式只能为与字节类型相似的变量
a = 'hello world'
b = bytearray(a,'utf-8')
c = memoryview(b)
print(c)
for n in range(0,5):
    print(c[n])

1.11  返回object对象 object()

#object为最基本的类型,object()为返回object类型
a = object()
print(a)

1.12  返回property对象 property()

可以在property对象中获取,设置,删除,属性值

class a:
    age = 18
b = property(a)
print(b)

2  常用的


2.1  返回变量绝对值 abs()

#abs()返回变量绝对值
a = -1
b = abs(a)
print(b)

2.2  将变量转换为二进制 bin()

#bin()将变量转换为二进制
a = 2
b = bin(a)
print(b)

2.3  将变量转换为布尔量 bool()

#bool()将变量转换为bool量
a = 1
b = bool(a)
print(b)

2.4  将变量转换为字节数组 bytearray()

#bytearray()将变量转换为字节数组
a = 1
b = bytearray(a)
print(b)

2.5  将变量转变为bytes形式 bytes

#bytes()将变量转换为字节
a = 1
b = bytes(a)
print(b)
print(type(b))

2.6  查看变量是否可调用 callable()

  • 调用这个词不是很准确,在这里我们称方法或者类是可调用的,一个普通变量是不可调用的

#callable()如果变量可调用则返回True
a = 0
b = callable(a)
print(b)

def function():
    print(1)
    
c = callable(function)
print(c)

class apple():
    pass

d = callable(apple)
print(d)

2.7  返回值对应的ascii字符 chr()

#chr()参数为ASCII字符对应的值,返回ASCII字符
a = 100
b = chr(a)
print(b)

2.8  将变量转换为classmethod类型 classmethod()

#classmethod()返回变量类型为classmethod
a = 1
b = classmethod(a)
print(b)
print(type(b))

2.9  编译 compile()

compile() 函数将一个字符串编译为字节代码。

参数顺序如下

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

必选参数

  • source -- 在函数中为需要编译的对象,变量类型为字符串
  • filename -- 可以为文件的路径,也可以为任意字符,当编译出现报错时会出现filename的内容,这个就是一个备注信息,可以设置为任意值
  • mode -- 指定编译代码的种类。可以指定为 exec, eval, single。如果source为单个表达式则使用eval,如果source为语句块则用exec,如果source为单个交互式语句则用single

我现在想编译一个单个表达式 3 * 5

a = '3 * 5'
b = compile(a,'wrong_information','eval')
print(b)

我现在像编译一个语句块

a = '15'
b = compile(a,'wrong_information','exec')
print(b)

交互式语句:在控制台上执行的Python语句就叫交互式语句,我们可以在Anaconda Prompt上写

默认参数:

  • flags 默认为0
  • dont_inherit 默认为False
  • optimize 默认为-1

可选参数flags和dont_inherit是用来控制编译源码时的标志,可以查看PEP236文档来了解这些参数,以及相关编译的说明。如果两者使用缺省参数(也即两者都是零值),在调用本函数编译时,主要使用代码中指明的编译特征来对待;如果flags参数设置有值,而dont_inherit没有设置(即是零值),那么编译代码时,不仅源码的编译特征起作用,而且flags指明的特征也起作用,相当两者的并集;如果参数dont_inherit设置有值(即是非零值),编译语句时只有参数flags指明的编译特征值起作用,即是不使用源码里指明的特征。

可选参数optimize是用来指明编译器使用优化的等级;缺省值是-1,表示使用命令行参数-O中获取的优化等级为准;如果设置值为0(即是不用优化,debug是设置true),是没有优化;如果设置值为1,assert语句被删除,debug设置为false;如果设置值为2,除了设置值为1的功能之外,还会把代码里文档说明也删除掉,达到最佳优化结果。

————————————————

版权声明:本文为CSDN博主「caimouse」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:Python标准库:内置函数compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)_大坡3D软件开发-CSDN博客

2.10  返回变量复数形式 complex()

#complex()返回变量复数形式
a = 1
b = complex(a)
print(b)
print(type(b))

2.11  删除属性 delattr()

#delattr()删除object属性
class a():
    age = 18
b = a.age
print(b)
c = delattr(a,'age')
d = a.age
print(d)

2.12  生成字典 dict()

#dict()生成字典
a = {'one':1,'two':2,'three':3}
b = dict(a)
print(b)

2.13  显示变量所有属性 dir()

#dir()显示变量的所有属性
class a():
    age = 18
    name = 'Suyu'
b = dir(a)
print(b)

2.14  显示对象 display()

display函数在help文档中写的很详细,我没有在上面展示help文档中的所有内容,help文档中有例子,现在我们看一下help文档中的内容

先看一下文档中对此函数的介绍

在所有前端显示Python对象。 默认情况下,所有表示都将被计算并发送到前端。 前端可以决定使用哪种表示法以及如何使用。 在终端IPython中,这将类似于使用:func:print,以便在更丰富的应用程序中使用 前端见Jupyter笔记本的例子与丰富的显示逻辑。

display的参数如下

display(*objs, include=None, exclude=None, metadata=None, transient=None, display_id=None, **kwargs)

display函数没有必选参数,所以我们可以无参数调用,就是会什么也不显示,那此处是与Print()函数的一个区别,当空调用时print()默认尾缀是/n

obj 可显示若干变量

a = 'hello'
b = 1
c = 1.5
d = [1,2,3]
e = (1,2,3)
f = {'one':1,'two':2}

display(a,b,c,d,e,f)

raw

要显示的对象是否已经模拟键入了原始显示数据的dict,

或者在显示之前需要格式化的Python对象[默认值:False]

这个是一个布尔量,上面两行是文档的内容,但是在参数中我并没有看见raw

默认raw的值为False,现在改为True也能运行,但是看不见了

其余参数就不一一展示了,等我在项目中遇到合适的例子再丰富display其余参数的内容

2.15  变量相除 divmod()

#divmod()返回一个元组,第一个元素为商,第二个元素为余数
a = 10
b = 3
c = divmod(a,b)
print(c)

2.16  变量枚举 enumerate()

#enumerate()返回变量类型为enumerate,将每个变量给个标号形成元组
a = ('zero','one','two')
b = enumerate(a)
print(type(b))
for c in b:
    print(c)
    print(type(c))
    
a = ['zero','one','two']
b = enumerate(a)
print(type(b))
for c in b:
    print(c)
    print(type(c))

2.17  变量评估后转换为最合适的变量 eval()

#eval()联系globals与locals结合给定的资源进行评估
#第一个参数source,其类型必须为str,bytes或code object
#eval()会估计出变量类型并返回
a = 'hello'
hello = 'good morning'
E = eval(a)
print(type(E))
print(E)
b = 1
c = 1.5
d = [1,2,3]
e = (1,2,3)
f = {'one':1,'two':2}
for i in b,c,d,e,f:
    j = str(i)
    E = eval(j)
    print(E)
    print(type(E))
#source也可为表达式
E = eval('b+1.5')
print(E)
print(type(E))

#第二个参数globals与第三个参数locals默认为None
#globals必须为字典类型,locals可以为任意的映射
#变量优先级为locals>globals
one = 1
glo = {'one':2}
loc = {'one':3}
E = eval('one+1')
print(E)
E = eval('one+1',glo)
print(E)
E = eval('one+1',glo,loc)
print(E)

我在项目中有两个实际使用eval的案例,我们可以看一下

  • 计算器逻辑实现

92.最后的综合案例_potato123232的博客-CSDN博客 中的4.2.3下图的位置

  • opencv遍历不同的模板匹配方法

7.模板匹配_potato123232的博客-CSDN博客 中的2.1

2.18  把变量转换为合适的语句然后执行 exec()

a = 'print(3)'
b = exec(a)
print(b)

a = '1'
b = exec(a)
print(b)

def func():
    print(2)
    return 1
b = exec(func())
print(b)

  • exec的参数必须是字符串,字节字节或代码对象
  • exec的返回值永远为None

2.19  将变量转变为浮点型 float()

#float()返回float型变量
a = 1
b = float(a)
print(b)
print(type(b))

2.20  将变量转变为指定格式 format()

#format()使用方式不同于.format,format()函数返回变量的指定形式
a = 2
b = format(a,'b')
print(b)

2.21  将变量转变为不可变的无需集合 frozenset()

#frozenset()构建唯一元素不可变无序集合(冻结迭代器)
a = [1,1,2,3,4]
b = frozenset(a)
print(b)
print(type(b))

2.22  获取对象属性 getattr()

#getattr()获取对象的属性,第一个参数为对象,第二个参数为属性名称
class a:
    age = 18
b = getattr(a,'age')
print(b)

2.23  判断类中是否有指定属性 hasattr()

#hasattr()如果对象中有指定属性返回True,否则返回False
class a:
    age = 18
    gender = 'Male'
    name = 'Suyu'
b = hasattr(a,'age')
print(b)
c = hasattr(a,'school')
print(c)

2.24  返回变量哈希值 hash()

#hash()返回变量的哈希值,哈希值相同则变量相同
a = 10
b = hash(a)
print(b)
c = 10
d = hash(c)
print(d)

2.25  查看帮助文档 help()

#help()参数为方法,返回该方法的使用信息
a = help(eval)
print(a)
print(type(a))

2.26  返回变量16进制的值 hex()

#hex()参数为整形,返回变量的hex值
a = 10
b = hex(a)
print(b)

2.27  查看变量的标识 id()

#id()返回变量的标识,标识相同则变量相同
a = 1
b = id(a)
print(b)
c = 1
d = id(c)
print(d)

2.28  让用户输入一段字符串 input()

#input()输入字符并返回字符,参数为提示内容
a = input('输入值')
print(a)
print(type(a))

2.29  返回变量整形形式 int()

#int()返回变量整形形式
a = '1'
b = int(a)
print(b)
print(type(b))

2.30  判断变量是否为指定类型 isinstance()

#isinstance()查看变量是否为指定类型,若是返回True,若不是返回False
a = 1
b = isinstance(1,str)
print(b)

2.31  判断对象1是否为对象2的子类 issubclass()

#issubclass()判断1号参数是否为2号参数的子类
class father():
    pass
class child(father):
    pass
a = issubclass(father,child)
print(a)
b = issubclass(child,father)
print(b)

2.32  生成迭代器 iter()

#iter()生成迭代器
a = [1,2,3]
b = iter(a)
print(b)
print(type(b))
for i in b:
    print(i)

2.33  返回迭代器中的元素数量 len()

#len()返回变量长度
a = ('hello',(1,2,3),[1,2,3,4],{'age':18})
for i in a:
    b = len(i)
    print(b)

2.34  将变量转换为列表 list()

#list()生成列表
a = 1,2,3,4
b = list(a)
print(b)
print(type(b))

2.35  让两组迭代器做为两个变量同时参与运算 map()

#map()执行定义的函数,当最短列表使用完之后结束
def a(n,m):
    return n + m
f = map(a,[1,2],[77,777,7777])
print(f)
for i in f:
    print(i)

我们有的时候使用map来传递参数,下面是我项目中的一个例子

park是我们实例化后的工具类,select_rgb_white_yellow是工具类中的一个方法,此时我们就将上图的test_imges作为select_rgb_white_yellow的参数image传了进来

2.36  获取指定内容中的最大值 max()

#max()不加入其他参数时返回变量中的最大值
a = [1,2,3,4,5,6,7]
c = max(a)
print(c)
#可选参数为key,key代替max的方法
#例子为返回小于7的第一个值
def b(n):
    return n < 7
c = max(a,key = b)
print(c)

#如不满足key的条件,返回变量的第一个值
def b(n):
    return n > 8
c = max(a,key = b)
print(c)

#另一个可选参数为默认值,当迭代器为空时返回该值
a = []
c = max(a,default = 9,key = b )
print(c)

2.37  获取指定内容中的最小值 min()

a = 1,2,3,4,5
b = min(a)
print(b)

def c(n):
    return n < 5
b = min(a,key = c)
print(b)

2.38  返回迭代器中下一个元素 next()

#next()从迭代器中返回变量
a = iter([1,2,3,4,5])
b = next(a)
print(b)
b = next(a)
print(b)
b = next(a)
print(b)
b = next(a)
print(b)
b = next(a)
print(b)
#如果迭代器读取完毕且给定默认值,默认值将代替提示的StopIteration
b = next(a,8)
print(b)

2.39  返回变量的8进制值 oct()

#oct()将指定整型变量返回八进制
a = 8
b = oct(a)
print(b)
print(type(b))

2.40  打开一个文件流 open()

#open()打开文件并返回一个流,失败时会引发IOerror
a = open('python_test.txt')
print(a)
print(type(a))
b = a.read()
print(b)
print(type(b))

#open()最常见的使用方法为:
with open('python_test.txt','r') as f:
    print(f)
    print(type(f))
    a = f.read()
    print(a)
    print(type(a))
#这样就可以读出文本中的内容

2.41  返回一个字符在ascii码中对应的值 ord()

#返回变量Unicode编码对应的值,变量只能为一个字符
a = ord('a')
print(a)

2.42  平方运算 pow()

#pow()平方运算,第一个参数为底数,第二个参数为指数
a = pow(2,3)
print(a)
#第三个参数为可选参数,为平方结果的除数,运算结果返回余数
a = pow(2,3,7)
print(a)

2.43  打印一个值 print()

print()第一个参数为值,其余为可选关键字参数

sep 添加间隔字符

end 添加末尾字符,默认为换行符

后面两个参数可以将字符写入txt文件

file为指定的文件流,flush为是否强行介入流,如果flush为False则不会将字符写入

  • 如果file没有在指定路径下,系统会自动创建一个你指定的文件,然后写进去
  • 读取txt文件内容的方法在上面的open()中有提到

我们也可以使用with...as...写入一些东西,也有使用pickle(是一个库)进行写入的,使用pickle写入在我的这篇文章中有提到 16.停车场车位识别_potato123232的博客-CSDN博客

 下面这个可以使用print来模拟进度条

2.44  生成有序整形数组 range()

#range()返回可迭代的range类变量,例中的变量内容为1-9
a = range(1,10)
print(a)
print(type(a))
for n in a:
    print(n)

2.45  返回变量的字符串类型 repr

#repr()返回规范的字符串类型
a = 1
b = repr(a)
print(b)
print(type(b))

2.46  使迭代器逆序 reversed()

#reversed()根据不同指定变量类型,返回不同的变量_reverseiterator类型
#如指定变量为list,则返回变量为list_reverseiterator
#返回变量可迭代,内容与指定变量顺序相反
a = [1,2,3,4,5]
b = reversed(a)
print(b)
print(type(b))
for n in b:
    print(n)

2.47  五舍六入 round()

#round()五舍六入讲变量变为指定形式
for a in range(0,11):
    for b in range(0,10):
        a = str(a)
        b = str(b)
        c = float(a + '.' + b)
        print(c,round(c),end = '|')

#可规定小数位数,如有小数位数则返回float,如没有则返回int
#小数位数可以为负数,为负数时小数点向前指定位数
a = 12.11
for n in [1,-1]:
    b = round(a,n)
    print(b)
    print(type(b))
    print()

2.48  返回变量set形式 set()

#返回变量set形式
a = 1,2,3
b = set(a)
print(b)
print(type(b))

2.49  给指定对象一个属性 setattr()

#setattr()给指定对象一个属性
class Suyu():
    pass

setattr(Suyu,'age',18)
print(Suyu.age)

2.50  迭代器切片 slice()

  • 截取部分元素

#set类型不可以使用slice(),tuple与list类型可以使用
#slice()有两种使用方式
#第一种:slice(stop),截取从起始侧的指定元素
a = 1,2,3,4,5,6,7,8,9
print(a)
b = slice(5)
print(b)
print(type(b))
c = a[b]
print(c)
print(type(c))
print()
#第二种slice(start, stop[, step]),使用第一个参数start是不包含指定的元素
b = slice(3,5)
c = a[b]
print(c)
#参数step表示隔指定位一显示,例为隔两位
b = slice(1,8,2)
c = a[b]
print(c)
#参数start与step如不想使用时可用None代替
b = slice(None,8,2)
c = a[b]
print(c)

2.51  迭代器排序 sorted()

#sorted()生成一个新的列表,新的列表按指定顺序排序
#当只有参数iterable时,将指定迭代器进行排序
a = 3,5,7,8,3
b = sorted(a)
print(b)

#参数key为比较方法,默认为None,例中为比较元组列表中元组的第二个数值
def than(num):
    return num[1]
a = ('小王',18),('小李',20),('小张',16)
b = sorted(a,key = than)
print(b)

#参数reverse为是否反向,默认为False,
b = sorted(a,key = than,reverse = True)
print(b)

2.52  将方法转变为静态方法 staticmethod()

def add_one(num):
    num = num + 1
staticmethod(add_one)

a = 1
b = a.add_one
print(b)

2.53  返回变量字符串形式 str()

#str()返回变量字符串形式
a = 1
b = str(a)
print(a)

2.54  求和 sum()

#sum()将列出的所有元素求和
a = 1,3,4,6
b = sum(a)
print(b)

#如果一个元素也没有列则返回参数start所设定的值
a = ()
b = sum(a,2)
print(b)

2.55  继承父类的方法 super()

#super()继承父类方法
class father():
    def father_func(self,x):
        y = x + 1
        print(y)

class child(father):
    def child_func(self,x):
        super().father_func(x)
son = child()
son.child_func(1)

2.56  返回变量tuple形式 tuple()

#tuple()返回变量tuple形式
a = [1,2,3,4]
b = tuple(a)
print(b)
print(type(b))

2.57  查看对象类型 type()

#type()返回对象的类型,返回类型为type
a = 1
b = type(a)
print(b)
print(type(b))

2.58  返回一个键值对,内容为类的属性 vars()

#vars()返回mappingproxy形式的变量,其中包含类的属性
class Suyu():
    name = 'Suyu'
    age = '18'
a = vars(Suyu)
print(a)
print(type(a))

b = Suyu()
c = vars(b)
print(c)
print(type(c))

2.59  打包成zip对象 zip()

#zip()将两个迭代器打包,返回变量类型为zip
a = ['one','two','three']
b = [1,2,3]
c = zip(a,b)
print(c)
print(type(c))
for n in c:
    print(n)

我们如果遇到元组嵌套的时候我们可以选择匹配压缩或非匹配压缩

  • 匹配压缩(加*)
a = ((1,2,3,4),(5,6,7,8))
for i in zip(*a):
    print(i)

  • 不匹配压缩

我们先正常遍历一遍

a = ((1,2,3,4),(5,6,7,8))
for i in a:
    print(i)

下面是使用zip的结果

a = ((1,2,3,4),(5,6,7,8))
for i in zip(a):
    print(i)

zip最多的应用场景就是遍历两个可遍历的对象,比如我现在像找出来两个list中第一个不同的元素,那么我就可以把i与j进行比对

a = [1,2,3,4]
b = [1,2,5,7]

for i,j in zip(a,b):
    print('i',i,'j',j)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值