python标准库常用方法集合
前段时间准备第十五届蓝桥杯python a组,因为赛中不允许导包,因此对py中的标准库进行了笔记和总结,即不导包即可使用的常用方法。包含了内置函数、math、random、datetime、os、sys、re、queue、collections、itertools库的常用方法,以当工具博客方便查阅。
目录
- 内置函数
- 数学函数
- 数据转换函数
- 对象创建函数
- 迭代器操作函数
- 字符串操作函数
- 对字符串进行大小写改写操作
- 删除字符串空白:
- math库
- 数学常数
- 常用数学函数
- 数值运算函数
- 特殊函数
- random库
- datatime库
- os库
- sys库
- re库
- queue库
- collections库
- deque双端队列
- Counter计数字典
- namedtuple具有字段名的元组
- itertools库
内置函数
数学函数
abs() 函数:取绝对值
print(abs(-1))
# 1
divmod() 函数 :同时取商和余数
print(divmod(7,2))
# (3, 1)
sum() 函数 :求和计算
print(sum([1,2,3]))
# 6
round() 函数: 四舍五入
print(round(5.4))# 5
print(round(5.5))# 6
pow() 函数 :计算任意N次方值
print(pow(2,3))# 2^3 = 8
# 也可以使用‘**’
print(2**3)
min()、max() 函数 :获取最小、最大值
print(min(9,5,2,7))# 2
print(max(9,5,2,7))# 9
数据转换函数
hex() 函数: 十转十六进制
print(hex(100)) # 0x64
oct() 函数: 十转八进制
print(oct(100)) # 0o144
bin() 函数 :十进制转换成二进制
print(bin(100)) # 0b1100100
bool() 函数 :将指定的参数转换成布尔类型
float() 函数 :转换成浮点数
ord() 函数 :获取单个字符的ASCII数值
print(ord('A')) # 65
chr() 函数: 转换一个整数并返回所对应的字符
print(chr(65)) # A
list() 函数: 将可迭代对象转换为列表
print(list(range(1,10)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
对象创建函数
range()函数:创建一个可迭代对象,内容是指定范围内的连续整数
for i in range(5):print(i)
'''
0
1
2
3
4
'''
set()函数:创建一个无序不重复元素集合,可用作去重
set([1,2,1,1,3,4,4,6,5])
# {1, 2, 3, 4, 5, 6}
迭代器操作函数
all() 函数: 判断指定序列中的所有元素是否都为 True,则返回 True,如果有一个为 False,则返回 False。
a = [1,2,0]
print(all(a))
# False
any()函数: 判断指定序列中的所有元素是否都为 False,则返回 False,如果有一个为 True,则返回 True。
a = [1,0,0]
print(any(a))
# True
sorted() 函数: 对可迭代对象进行临时排序
a = [3,1,4,2]
print(sorted(a))
# [1, 2, 3, 4]
len()函数: 返回一个对象的元素或项目个数
print(len([1,2,3,4]))
# 4
map()函数: 通过自定义函数实现对序列的元素映射操作并返回操作后的结果
list(map(int,['1','2','3']))
# [1, 2, 3]
字符串操作函数
format( )函数: 格式化数据
"{} {}".format("hello", "world")
# 'hello world'
print("{:.2f}".format(3.1415926));
# 3.14
a = "good"
b = "luck"
t = "{} {}".format(a,b)
# good luck
t = f"{a.title()} {b}"
# 可以引入.title()来改写字符串格式,这里需要注意的是,f字符串是有py3.6引入的
# Good luck
count( ), 返回子串str2 在 str1 里面出现的次数
str1 = 'dsaddddd'
str2 = 'd'
print(str1.count(str2, 0, len(str1))) # 6
print(str1.count(str2, 0, 3)) # 1
endswith()
用于检查字符串是否以指定的后缀结束,如果字符串以指定的后缀结束,则返回 True
,否则返回 False
。
my_str = "Hello, world!"
print(my_str.endswith("world!")) # True
print(my_str.endswith("Python")) # False
find( ), 检测 子字符串是否包含在指定字符串中,find到返回开始的索引值,否则返回-1
str1 = 'dsaddddd'
str2 = 'd'
print(str1.find(str2, 0, len(str1))) # 0
print(str1.find(str2, 1, 3)) # -1
join(), 以 接收可选的参数 sep
作为分隔符,将接受的一个可迭代对象(如列表、元组等)将参数中所有的元素(的字符串表示)合并为一个新的字符串
my_list = ["Hello", "world", "!"]
str1 = ' '
result = str1.join(my_list)
print(result) # 输出:"Hello|world|!"
str2 = '@'
result = str2.join(my_list)
print(result) # 输出:"Hello@world@!"
对字符串进行大小写改写操作
t = "good Luck"
t.title( )
#对每个单词首字母改为大写,Good Luck
t.upper( )
#字母全大写,GOOD LUCK
t.lower( )
#字母全小写,good luck
t.swapcase()
# 翻转大小写,GOOD lUCK
删除字符串空白:
t = " python "
print(t.lstrip())
# 对开头空白进行删除
print(t.rstrip())
# 对末尾空白进行删除
print(t.strip())
# 对两端空白进行删除
需要注意的是,上述的三个方法只是暂时的,并没有改变原来的内容
math库
提供数学相关的函数,如三角函数、指数函数、对数函数等
数学常数
math.e:自然常数 e 的值,约等于 2.71828。
math.pi:圆周率 π 的值,约等于 3.14159。
import math
print(math.e) # 2.718281828459045
print(math.pi) # 3.141592653589793
常用数学函数
math.sqrt(x):返回 x 的平方根。
math.pow(x, y):返回 x 的 y 次方。
math.exp(x):返回 e 的 x 次方。
math.log(x, base=math.e):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。
math.sin(x)、math.cos(x)、math.tan(x):返回 x 的正弦、余弦和正切值。
math.asin(x)、math.acos(x)、math.atan(x):返回 x 的反正弦、反余弦和反正切值。
import mathprint(math.sqrt(9)) # 3.0 类型为float
print(math.pow(2, 3)) # 8.0 类型为float
print(math.exp(1)) # 2.71828182845904523536963
print(math.log(2, 10)) # log10^2print(math.sin(math.pi / 2))
print(math.cos(math.pi / 3))
print(math.tan(math.pi / 4))
# 1.0
# 0.5000000000000001
# 0.9999999999999999print(math.asin(1))
print(math.acos(1))
print(math.atan(1))
# 1.5707963267948966
# 0.0
# 0.5707963267948966
数值运算函数
math.ceil(x):返回不小于 x 的最小整数。
import math
print(math.ceil(3.14)) # 输出:4
print(math.ceil(-3.14)) # 输出:-3
math.floor(x):返回不大于 x 的最大整数。
import math
print(math.floor(3.14)) # 输出:3
print(math.floor(-3.14)) # 输出:-4
math.trunc(x):返回 x 的整数部分。
math.modf(x):返回 x 的小数部分和整数部分,以元组形式返回。
import mathprint(math.trunc(3.14)) # 输出:3
print(math.modf(3.14)) # 输出:(0.14000000000000012, 3.0)
math.fabs(x):返回 x 的绝对值。
math.factorial(x):返回 x 的阶乘。
math.gcd(a, b):返回 a 和 b 的最大公约数。
import math
print(math.fabs(-3.14)) # 输出:3.14
print(math.factorial(5)) # 输出:1*2*3*4*5=120print(math.gcd(12, 15)) # 输出:3
特殊函数
math.erf(x)
误差函数返回了给定值 x 的误差,即标准正态分布中,比 x 大的概率。
import math# 计算 2 的误差函数
print(math.erf(2)) # 输出:0.9953222650189345
math.erfc(x)
余误差函数返回了给定值 x 的余误差,即标准正态分布中,比 x 小的概率。
import math# 计算 2 的余误差函数
print(math.erfc(2)) # 输出:0.00467773498106536
math.gamma(x)
伽马函数是阶乘函数的拓展版本,可以用于计算组合数。
import math# 计算 5 的伽马函数
print(math.gamma(5)) # 输出:24
math.lgamma(x)
伽马函数的自然对数。
import math# 计算 5 的伽马函数的自然对数
print(math.lgamma(5)) # 输出:2.302585092994046
random库
提供随机数相关的函数,如生成随机整数、随机浮点数、随机序列等
random.randint(a, b)
:返回一个范围为 [a, b] 的随机整数。
import random
print(random.randint(1, 10)) # 输出:一个介于 1 和 10 之间的随机整数,包括 1 和 10
random.uniform(a, b)
:返回一个范围为 [a, b] 的随机浮点数。
import random
print(random.uniform(1, 10)) # 输出:一个介于 1 和 10 之间的随机浮点数,包括 1 和 10
random.choice(sequence)
:从给定的序列(如列表、元组等)中随机选择一个元素。
import randommy_list = [1, 2, 3, 4, 5]
print(random.choice(my_list)) # 输出:my_list 中的一个随机元素
random.shuffle(x[, random])
:将给定的列表或元组进行随机排序。
import randommy_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list) # 输出:一个随机排序后的列表
datatime库
提供日期和时间相关的函数,如获取当前日期、时间差计算、日期格式化等
datetime.datetime.now()
:返回当前的日期和时间
from datetime import datetime
print(datetime.now())
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
:创建一个时间间隔
from datetime import datetime, timedelta# 创建一个表示 7 天的时间间隔
seven_days = timedelta(days=7)
# 获取当前时间
now = datetime.now()# 计算 7 天后的时间
future = now + seven_days
print(future)
datetime.strftime('%Y-%m-%d %H:%M:%S')
:将日期和时间格式化为字符串
from datetime import datetime# 获取当前时间
now = datetime.now()# 将当前时间格式化为字符串
formatted_now = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_now)
os库
提供操作系统相关的函数,如文件和目录操作、进程管理等
os.getcwd()
:获取当前工作目录
os.listdir()
:列出当前目录下的所有文件和子目录
import oscurrent_dir = os.getcwd()
print("当前工作目录:", current_dir)files_and_dirs = os.listdir(current_dir)
print("当前目录下的文件和子目录:", files_and_dirs)
os.path.join()
:将多个路径组件连接在一起
import ospath1 = "/home"
path2 = "user"
path3 = "documents"full_path = os.path.join(path1, path2, path3)
print("完整路径:", full_path)
os.path.exists()
:检查一个路径是否存在
import ospath = "/home/user/documents"
if os.path.exists(path):print("路径存在")
else:print("路径不存在")
os.system()
:运行一个系统命令
import oscommand = "ls -l"
result = os.system(command)
print("命令结果:", result)
sys库
提供与 Python 解释器相关的函数和变量,如获取命令行参数、获取系统版本等
sys.argv[]
:获取命令行参数
import sys
print("命令行参数:", sys.argv)
sys.version_info.major
:获取Python版本的主要部分
import sys
version_major = sys.version_info.major
print("Python版本主要部分:", version_major)
sys.exit()
:退出程序,将导致程序立即退出,不再执行后续代码,可以当强化版break
import sysprint('live')
sys.exit()
print('kill')
re库
提供正则表达式相关的函数,用于字符串匹配和替换等操作
^:匹配字符串开头
" * " 匹配前面的子表达式零次或多次
" + " 匹配前面的子表达式一次或多次
" ? " 匹配前面的子表达式零次或一次
" [abc]" :方括号表示字符集合,例子表示一个字符串有一个 “a” 或 “b” 或 “c” 等价于 [a|b|c]
" [a-z]“: 表示一个字符串中存在一个 a 和 z 之间的所有字母
" [^a-z]” :表示一个字符串中不应该出现 a 到 z 之间的任意一个字母
" [0-9]“: 表示一个字符串中存在一个 0 和 9 之间的所有数字
" \d " 匹配一个数字字符,等价[0-9]
" \D " 匹配一个非数字字符,等价[^0-9]
" \w” 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”
" \W" 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
group()
是正则表达式匹配对象的方法,用于获取匹配到的字符串。
re.match(pattern, string[, flags])
:从字符串的开头开始匹配,如果开头部分匹配成功,返回一个匹配对象,否则返回None。
其中,pattern是正则表达式,string是需要匹配的字符串,flags是可选的匹配标志。
import repattern = r'[a-z]+'
text = 'abc567aa'match = re.match(pattern, text)
if match:print("匹配成功:", match.group())
else:print("匹配失败")
# 匹配成功: abc
re.search(pattern, string[, flags])
:在整个字符串中搜索匹配的子串,如果找到,返回一个匹配对象,否则返回None。
import repattern = r'\d+'
text = 'abc123def'search = re.search(pattern, text)
if search:print("匹配成功:", search.group())
else:print("匹配失败")# 匹配成功: 123
re.findall(pattern, string[, flags])
:返回字符串中所有匹配的子串,返回一个列表。
import repattern = r'\d+'
text = 'abc123def456'findall = re.findall(pattern, text)
print("匹配成功:", findall)
# 匹配成功: ['123', '456']
re.sub(pattern, repl, string[, count, flags])
:替换字符串中所有匹配的子串。函数的第一个参数是正则表达式模式,第二个参数是要替换的字符串。
其中,pattern是正则表达式,repl是替换字符串,string是需要匹配的字符串,count是可选的替换次数,默认是0
import repattern = r'\d+'
text = 'abc123def456'
replace = re.sub(pattern, 'X', text[6:])
print("替换成功:", replace)
# 替换成功: defX
queue库
使用更高级的队列和栈数据结构
queue模块提供了多种队列实现方式,包括先进先出队列(FIFO)、后进先出队列(LIFO)和优先级队列。队列实现是线程安全的,因此适用于多线程编程。
queue.Queue()
:这是一个标准的队列实现,遵循先进先出(FIFO)的规则
import queueq = queue.Queue()
q.put('a')
q.put('b')
q.put('c')while not q.empty():print(q.get())
'''
a
b
c
'''
queue.LifoQueue()
:后进先出(LIFO)队列
import queueq = queue.LifoQueue()
q.put('a')
q.put('b')
q.put('c')while not q.empty():print(q.get())
'''
c
b
a
'''
queue.PriorityQueue()
:优先级队列。元素被赋予优先级,优先级高的元素会被优先处理。
import queueq = queue.PriorityQueue()
q.put((1, 'a'))
q.put((3, 'b'))
q.put((2, 'c'))while not q.empty():print(q.get())
'''
(1, 'a')
(2, 'c')
(3, 'b')
'''
collections库
deque双端队列
允许从两端添加或删除元素,在某些方面类似于列表,但它更适用于需要频繁从两端添加或删除元素的场合。deque
的实现使用了append()
和pop()
方法来添加和删除元素,这些操作的时间复杂度为O(1)。因此,deque
在处理大量数据时比列表更高效。
以下是deque
的一些常用用法:
创建一个双端队列:
from collections import deque
d = deque([1, 2, 3])
添加元素到队列的两端:
d.append(4) # 在队列末尾添加元素
d.appendleft(0) # 在队列开头添加元素
print(d) # deque([0, 1, 2, 3, 4])
从队列的两端删除元素:
d.pop() # 删除并返回队列末尾的元素
d.popleft() # 删除并返回队列开头的元素
print(d) # deque([1, 2, 3])
切片操作:
d[0] # 获取队列开头的元素
d[-1] # 获取队列末尾的元素
d[1:3] # 获取队列中索引为1到2的元素,即元素2和3
索引操作:
d.index(2) # 返回队列中元素2的索引
计数操作:
d.count(2) # 返回队列中元素2的个数
这些操作与列表的操作类似,但deque
在处理大量数据时更高效。
Counter计数字典
跟踪可迭代对象中元素的出现次数。
例如,我们可以使用Counter
来统计一个列表中每个元素出现的次数:
from collections import Counterlst = [1, 2, 3, 1, 2, 3, 1, 2, 3]
counter = Counter(lst)print(counter) # 输出:Counter({1: 3, 2: 3, 3: 3})
Counter
对象可以进行许多操作,例如:
- 元素个数:
len(counter)
- 某个元素出现的次数:
counter[element]
- 添加新元素:
counter[element] += 1
- 删除元素:
del counter[element]
- 元素迭代:
for element in counter
- 元素计数:
sum(counter.values())
namedtuple具有字段名的元组
例如,我们可以使用namedtuple
来创建一个表示点的坐标:
from collections import namedtuplePoint = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)print(p) # 输出:Point(x=3, y=4)
namedtuple
创建的类型具有与元组相同的内存结构,但可以更方便地访问其字段。例如,我们可以直接使用p.x
和p.y
来访问点的坐标,而不需要使用索引。
此外,namedtuple
还支持一些其他操作,例如:
- 字段名索引:
p[0]
、p[1]
- 切片:
p[:2]
、p[1:]
- 迭代:
for field in p
- 元素计数:
len(p)
- 元素测试:
3 in p
itertools库
itertools
是Python的一个标准库,它提供了一系列用于高效循环迭代的工具。
itertools
中的函数和类主要用于生成迭代器,这些迭代器可以用于循环、迭代以及其他需要重复执行操作的场景。
以下是一些常用的itertools
库中的函数和类:
chain(*iterables)
:创建一个迭代器,将多个可迭代对象连接起来。
from itertools import chaina = [1, 2, 3]
b = [4, 5, 6]for x in chain(a, b):print(x) # 输出:1 2 3 4 5 6
combinations(iterable, r)
:创建一个迭代器,返回可迭代对象中元素的所有r
长度组合。
from itertools import combinationsfor x in combinations([1, 2, 3], 2):print(x) # 输出:(1, 2) (1, 3) (2, 3)
permutations(iterable, r=None)
:创建一个迭代器,返回可迭代对象中元素的所有r
长度排列。
from itertools import permutationsfor x in permutations([1, 2, 3], 2):print(x) # 输出:(1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)
product(iterable, repeat=1)
:创建一个迭代器,返回可迭代对象中元素的所有组合。
from itertools import productfor x in product([1, 2], ['a', 'b'], repeat=2):print(x)
# 输出:(1, 'a', 1, 'a') (1, 'a', 1, 'b') (1, 'a', 2, 'a') (1, 'a', 2, 'b') (1, 'b', 1, 'a') (1, 'b', 1, 'b') (1, 'b', 2, 'a') (1, 'b', 2, 'b') (2, 'a', 1, 'a') (2, 'a', 1, 'b') (2, 'a', 2, 'a') (2, 'a', 2, 'b') (2, 'b', 1, 'a') (2, 'b', 1, 'b') (2, 'b', 2, 'a') (2, 'b', 2, 'b')
cycle(iterable)
:创建一个迭代器,返回可迭代对象中元素无限循环的迭代器。
from itertools import cyclefor x in cycle([1, 2, 3]):print(x) # 输出:1 2 3 1 2 3 1 2 3 ...
groupby(iterable, key=None)
:创建一个迭代器,将可迭代对象中具有相同键值的元素分组。
from itertools import groupbyfor x in groupby([1, 2, 2, 3, 3, 3], key=lambda x: x):print(x) # 输出:((1,), (2, 2), (3, 3, 3))
islice(iterable, start, stop=None, step=1)
:创建一个迭代器,返回可迭代对象中指定范围内的元素。
from itertools import islicefor x in islice([1, 2, 3, 4, 5], 2, 5):print(x) # 输出:2 3 4
相关文章:
python标准库常用方法集合
前段时间准备第十五届蓝桥杯python a组,因为赛中不允许导包,因此对py中的标准库进行了笔记和总结,即不导包即可使用的常用方法。包含了内置函数、math、random、datetime、os、sys、re、queue、collections、itertools库的常用方法࿰…...

智谱AI通用大模型:官方开放API开发基础
目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 申请API Key 三、基于SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 GLM-4是智谱AI发布的新一代基座大模型,整体性能相比GLM3提升60%,支持128K上下文&#x…...
单片机家电产品--OC门电路
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 单片机家电产品–OC门电路 前言 记录学习单片机家电产品内容 已转载记录为主 一、知识点 1OC门电路和OD门电路的区别 OC门电路和OD门电路的区别 OC门:三极管…...

gcc常用命令指南(更新中...)
笔记为gcc常用命令指南(自用),用到啥方法就具体研究一下,更新进去... 编译过程的分布执行 64位系统生成32位汇编代码 gcc -m32 test.c -o test -m32用于生成32位汇编语言...

【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常【3】
之前用NSL-KDD数据集做入侵检测的项目是: 【1】https://qq742971636.blog.csdn.net/article/details/137082925 【2】https://qq742971636.blog.csdn.net/article/details/137170933 有人问我是不是可以改代码,我说可以。 训练 我将NSL_KDD_Final_1.i…...

两步解决 Flutter Your project requires a newer version of the Kotlin Gradle plugin
在开发Flutter项目的时候,遇到这个问题Flutter Your project requires a newer version of the Kotlin Gradle plugin 解决方案分两步: 1、在android/build.gradle里配置最新版本的kotlin 根据提示的kotlin官方网站搜到了Kotlin的最新版本是1.9.23,如下图所示: 同时在Ko…...
ArcGIS加载的各类地图怎么去除服务署名水印
昨天介绍的: 一套图源搞定!清新规划底图、影像图、境界、海洋、地形阴影图、导航图-CSDN博客文章浏览阅读373次,点赞7次,收藏11次。一体化集成在一起的各类型图源,比如包括影像、清新的出图底图、地形、地图阴影、道路…...
AttributeError: module ‘cv2.face’ has no attribute ‘LBPHFaceRecognizer_create’
问题描述: 报错如下: recognizer cv2.face.LBPHFaceRecognizer_create() AttributeError: module ‘cv2.face’ has no attribute ‘LBPHFaceRecognizer_create’ 解决方案: 把opencv-python卸载了,然后安装ope…...

配置路由器实现互通
1.实验环境 实验用具包括两台路由器(或交换机),一根双绞线缆,一台PC,一条Console 线缆。 2.需求描述 如图6.14 所示,将两台路由器的F0/0 接口相连,通过一台PC 连接设备的 Console 端口并配置P地址(192.1…...
Google Guava第五讲:本地缓存实战及踩坑
本地缓存实战及踩坑 本文是Google Guava第五讲,先介绍为什么使用本地缓存;然后结合实际业务,讲解如何使用本地缓存、清理本地缓存,以及使用过程中踩过的坑。 文章目录 本地缓存实战及踩坑1、缓存系统概述2、缓存架构演变2.1、无缓存架构2.2、引入分布式缓存问题1:为什么选…...

一个文生视频MoneyPrinterTurbo项目解析
最近抖音剪映发布了图文生成视频功能,同时百家号也有这个功能,这个可以看做是一个开源的实现,一起看看它的原理吧~ 一句话提示词 大模型生成文案 百家号生成视频效果 MoneyPrinterTurbo生成视频效果 天空为什么是蓝色的? 天空之所以呈现蓝色,是因为大气中的分子和小粒子会…...

智能商品计划系统如何提升鞋服零售品牌的竞争力
国内鞋服零售企业经过多年的发展,已经形成了众多知名品牌,然而近年来一些企业频频受到库存问题的困扰,这一问题不仅影响了品牌商自身,也给长期合作的经销商带来了困扰。订货会制度在初期曾经有效地解决了盲目生产的问题࿰…...

OpenHarmony开发案例:【分布式遥控器】
1.概述 目前家庭电视机主要通过其自带的遥控器进行操控,实现的功能较为单一。例如,当我们要在TV端搜索节目时,电视机在遥控器的操控下往往只能完成一些字母或数字的输入,而无法输入其他复杂的内容。分布式遥控器将手机的输入能力…...

如何将Oracle 中的部分不兼容对象迁移到 OceanBase
本文总结分析了 Oracle 迁移至 OceanBase 时,在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式,通过提前发现并处理这些问题,可以有效规避迁移过程中的报错风险。 作者:余振兴,爱可生 DBA 团队成员&#x…...

Python也可以合并和拆分PDF,批量高效!
PDF是最方便的文档格式,可以在任何设备原样且无损的打开,但因为PDF不可编辑,所以很难去拆分合并。 知乎上也有人问,如何对PDF进行合并和拆分? 看很多回答推荐了各种PDF编辑器或者网站,确实方法比较多。 …...
python笔记(14)迭代器和生成器
迭代器的优势 延迟计算:迭代器按需提供数据,无需一次性加载整个数据集到内存中,特别适合处理大规模或无限数据流。资源效率:减少内存占用,尤其在处理大量数据时,避免一次性构建完整数据结构带来的开销。统…...

简单3步,OpenHarmony上跑起ArkUI分布式小游戏
标准系统新增支持了方舟开发框架(ArkUI)、分布式组网和 FA 跨设备迁移能力等新特性,因此我们结合了这三种特性使用 ets 开发了一款如下动图所示传炸弹应用。 打开应用在通过邀请用户进行设备认证后,用户须根据提示完成相应操作&am…...
GPT-3和自然语言处理的前沿:思考AI大模型的发展
引言 自然语言处理(NLP)是人工智能(AI)领域中最富有挑战性和活跃的研究领域之一。近年来,随着深度学习技术的发展和计算能力的提高,大型语言模型,尤其是OpenAI的GPT-3,已成为推动该…...
傅里叶变换例题
目录 傅里叶转化例题: 时移 频移 尺度 时域卷积性质:卷积==乘机...

基于Docker构建CI/CD工具链(六)使用Apifox进行自动化测试
添加测试接口 在Spring Boot Demo项目里实现一个简单的用户管理系统的后端功能。具体需求如下: 实现了一个RESTful API,提供了以下两个接口 : POST请求 /users:用于创建新的用户。GET请求 /users:用于获取所有用户的列…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...