当前位置: 首页 > news >正文

python学习——【第四弹】

前言

上一篇文章 python学习——【第三弹】 中学习了python中的流程控制语句,这篇文章我们接着学习python中的序列。先给大家介绍不可变序列 字符串可变序列 列表,下一篇文章接着补充元组,集合和字典。

序列

指的是一块可以存放多个值的连续内存空间,这些值按一定的顺序排列,可以通过每个值所在的位置的编号,也就是索引来访问他们。

python中的序列类型包括:字符串(string)、列表(list)、元组(tuple)、集合(set),还支持一种映射数据类型:字典(dictionary)。序列的基础操作一般有:增加,删除,修改,查询

python中的序列又分为可变序列不可变序列

可变序列

列表,集合以及字典可变序列的数据结构是可以进行查看的,并且可以对其进行一些修改操作后id(内存地址)不改变,不会开辟新的内存地址;

列表为例:
在这里插入图片描述

不可变序列

字符串,元组,数值只允许查看它们的值,当对不可变序列进行修改操作时,它会开辟一块新的内存地址,从而id发生变化。

字符串为例:

在这里插入图片描述

序列操作

1:索引

索引即为序列的下标通过下标来查询或取出序列中的元素。

strs='人生如戏,全是演技'
zifu1=strs[3]
zifu2=strs[-3]
zifu3=strs[10]
print('第四个字是:',zifu1)# 戏   索引为大于等于0的数,从字符串的左边向右边开始查询,从索引为0开始
print('倒数第三个字是:',zifu2)#是    索引为小于0的数,从字符串的右边向左边开始查询,从索引为-1开始
print('超出字符串的索引范围:',zifu3)  #IndexError: string index out of range

2:切片

python中的序列都可以使用切片操作:

切片操作:切片的结果–》原列表片段的拷贝
切片的范围:–》取得到start起始值,取不到stop终止值,可以记作 顾头不顾尾
step步长默认是1——》简写为[start:stop]
step是正数——》[:stop:step] -->切片的第一个元素默认是列表的第一个元素, 从第一个元素开始往后计算切片
step是正数——》[start::step] -->切片的最后一个元素默认是列表的最后一个元素, 从start开始往后计算切片
step是负数-》[:stop:step] -->切片的第一个元素默认是列表的最后一个元素, 从最后一个元素开始往前计算切片
step是负数——》[start::step] -->切片的最后一个元素默认是列表的第一个元素 从start开始往前计算切片

strs='ABCDEFGHIGKLMN'
print('--------步长为正数------')
print('原字符串的标识:',id(strs))
str1=strs[1:5:]  #  BCDE  以及strs[1:5] 步长默认是1,起始下标是1,终止下标是5
str2=strs[:5:2]   #  ACE      步长是2,起始下标默认为1,终止下标为5
str3=strs[1::2]  #  BDFHGLN       步长是2,起始下标是1,终止下标默认为字符串的最后一个元素的下标
print('步长为正时切片的标识:strs[1:5:]',str1,id(str1))
print('strs[:5:2]' ,str2, id(str2))
print( 'strs[1::2] ',str3,id(str3))print('\n-----步长为负数------')
str4=strs[13:3:-1]  #步长是-1,起始下标是字符串的最后一个元素的下标,终止下标是3
str5=strs[:3:-1] #步长为-1,起始下标默认是字符串的最后一个元素下标,终止下标是3
str6=strs[13::-1]#步长是-1,起始下标是13,终止下标默认是字符串第一个元素的下标
print('strs[13:3:-1]',str4,id(str4))
print('strs[:3:-1]',str5,id(str5))
print('strs[13::-1]',str6,id(str6))

在这里插入图片描述在这里插入图片描述

字符串

python当中的字符串的相关方法可以查看 python学习——【第一弹】 ,这里对字符串的相关操作介绍一下。

1:改变字母大小写

strs='hello World'
# 首字母大写
str1=strs.capitalize()
print('首字母大写',str1)
# 全部大写
str2=strs.upper()
print( '全部大写',str2)
# 全部小写
str3=strs.lower()
print('全部小写:',str3)
# 大小写互换
str4=strs.swapcase()
print('大小写互换', str4)#zifu='abc_def-gkL'
str5=zifu.title()
print('转换后的字符:',str5)  #转换后的字符: Abc_Def-Gkl用特殊字符或者数字隔开的单词首字母大写

在这里插入图片描述

字母的大小写也可运用于验证码的检验当中

# 将其都转换成大写或小写字母后进行核对检验
yan='abc_De1s5'
yinput=input('请输入验证码:')
while yinput.upper()!=yan.upper():print('验证码错误!')yinput=input('请重新输入验证码:')
print('验证码输入成功!')

在这里插入图片描述

2:find(), index()函数查找元素索引

python中提供了find() 和index()方法通过元素查找索引值;
其中利用 find()查找 若找到相应元素就返回该元素的索引值,如果找不到就返回-1;
利用 index()查找 如果找到相应元素就返回该元素索引值,找不到就抛出 ValueError 错误。

zifu='hello world'
print(zifu.find('h')) #0
print(zifu.find('a'))  #-1
print(zifu.index('e'))  #1
print(zifu.index('a'))  #ValueError

3:center()函数居中字符串

strs = 'alexWUsir'
str1 = strs.center(20, '%')  # 用%填充后共有20个字符
str2 = strs.center(15, '|')  # 用|填充后共有15个字符
str3 = strs.center(20)  # 空白填充
print(str1) 
print(str2)
print(str3)

在这里插入图片描述

4:is判断

strs='123 abc@'
print(strs.isdigit())#判断该字符串是否全由数字组成   False
print(strs.isalpha())#判断该字符串是否全由字母组成   False
print(strs.isalnum())#判断该字符串是否只由字母或数字组成      False
print(strs.isspace())# False  判断该字符串是否全部由空格组成,如果字符串有空格外其他数字组成或者是空,返回False

5:replace()函数替换字符串中的元素​

Python中的 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:str.replace(old, new,[max])

str1 = '来者何人,东方不败!东方不败'
str2 = str1.replace('东方不败','天山果佬')
str3 = str1.replace('东方不败','天山果佬',1)
print(str1)
print(str2)
print(str3)

在这里插入图片描述

6:format()函数格式化字符串

是一种字符串格式化的方法,主要是用来构造字符串。

基本语法: 通过 {} 和 : 来代替以前的 % 。在 {} 符号操作过程中,每一个 {} 都可以设置顺序,分别与format的参数顺序对应;如果没有设置{}下标,默认重0开始递增。

strs="我叫{0},今年{2}岁,来自{3},喜欢的语言是{1}。".format('小明','python','19','山东')
str1="我叫{},今年{}岁,来自{},喜欢的语言是{}。".format('小亮','19','山东','PHP')
print(strs)
print(str1)

在这里插入图片描述

7:split()函数分割字符串

str1='hello world 你好 世界'
str2='hello:world:你好:世界'
s1=str1.split()
print('默认用空格分割:',s1)
s2=str2.split(':')
print('使用分号分割:',s2)

在这里插入图片描述

8:count()函数计算字符串中元素出现的个数

str1='hello world'
str2=str1.count('l')
print('\"l\"的个数是:',str2) #"l"的个数是: 3
str3=str1.count('a')
print('\"a\"的个数是:',str3) #"a"的个数是: 0

9:strip()函数删除字符串前后的空格或字符

str1='--! hello! world!  '
str2=str1.strip()#删除字符串前后的空格;默认删除的是字符串两边的空格
print(str2) #--! hello! world!
str3=str1.strip('--')#删除字符串前后的!
print(str3) #! hello! world!

在这里插入图片描述

列表

列表(List)是 Python 中最基本的数据结构,它是一种有序的集合,列表中每个元素都有其对应的位置值(索引),类似于其他语言中的数组;是一种可变序列,对其进行增删改等操作不会影响它的id标识符。

列表的特点:

1,按照列表中的顺序有序排序;
2,索引映射唯一一个数据;
3,列表可以存储重复数据;
4,任意数据类型可混存;
5,根据需要动态分配和回收

1:创建列表

python中创建列表由两种方法:
一是使用方括号的方式创建列表
二是使用内置函数list()函数创建列表。

# 1 使用方括号:我们只需要把列表的所有元素放在 方括号 [] 里面,每个元素之间通过 逗号 , 间隔起来即可,当然,列表中允许存放不同数据类型的元素。
list1=['a',{},'b',1,'c']# 2 使用内置函数 list()
list2=['a',{},'b',1,'c']
print(list1,type(list1))
print(list2,type(list2))
#['a', {}, 'b', 1, 'c'] <class 'list'>
# ['a', {}, 'b', 1, 'c'] <class 'list'>

空列表的创建

lis=[]
lis2=list()

2:查询列表中元素的索引值

python中提供了index()函数来查找列表中元素的索引,要注意的是在列表对象中没有find()方法,如果使用回抛出AttributeError错误;而str对象同时具有find()和index()方法!

index()函数​

# 当列表中有相同元素时,使用index()函数取返回指定元素的索引时默认返回相同元素中第一个元素的索引;如果要查找的元素在列表中不存在,会报ValueError 的错误
list3=list(['a','b','a','c'])
print(list3,'第一个a的位置是',list3.index('a'))  #['a', 'b', 'a', 'c'] 第一个a的位置是 0
# index在指定范围查找元素
print(list3,list3.index('b',1,3))# ['a', 'b', 'a', 'c'] 1      查找下标从1到3之间的元素(包括下标1不包括下标3的元素)

当然,如果想获取列表中所有元素的索引值,我们可以使用列表推导式和enumerate()函数来获取

languages = ["JavaScript","Python","Java","Python","C++","Python"]
python = [index for (index, item) in enumerate(languages)]
print(python)  #[0, 1, 2, 3, 4, 5]#输出元素为“python”的索引
'''
使用enumerate()函数,可以存储满足条件的元素的索引,首先将列表中的每一个键值对(index,item)作为参数传递到函数中;
index 表示列表项的索引号, item 表示列表项本身;接着会像一个计数器一样从0开始计数,满足判断条件后自动递增,
选择并移动符合条件的元素索引,并将满足条件的索引存储在 "python" 形成一个新的列表
'''
languages = ["PHP","Python","Java","Python","C++","Python"]
python = [index for (index, item) in enumerate(languages) if item == "Python"]
print(python)
##[1, 3, 5]

3:列表的遍历

使用for — in的方法遍历列表

list2=[10,20,30,'python']
for i in list2:  #i代表迭代元素  不需要另外声明  直接利用for循环打印出来列表元素print(i,id(list2))
'''
10 140620010123824
20 140620010123824
30 140620010123824
python 140620010123824
'''

4:列表生成式

生成列表的公式——》语法格式 [i * i for i in range(1,n)]
其中:
i*i中的i 表示列表元素的表达式
for 后面的i 表示自定义变量
range()函数中的1,n表示可迭代的对象
注意事项:表示列表元素的表达式中包含自定义变量

list1=[ i for i in range(1,10)] #注意是左闭右开区间  产生的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9]
print('产生的整数序列',list1,id(list1)) #产生的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9] 140173346492976
list2=[i*i for i in range(1,10)]  #[1, 4, 9, 16, 25, 36, 49, 64, 81]
print(list2) #[1, 4, 9, 16, 25, 36, 49, 64, 81]

5:切片获取列表元素

切片前面已经为大家介绍过了,这里举个例子:

list4=[10,20,30,40,50]
print('原列表:',id(list4)) #原列表: 140709945504304
after=list4[1:3:1]
print('切的片段:',after,id(after)) #切的片段: [20, 30] 139765064281136
print('此时的原列表:',id(list4))#此时的原列表: 139765064278576

6:向列表中添加元素

我们可以直接使用下标索引更新列表

books = ["语文", "数学", "英语", "历史", "物理", "化学"]
books[1] = "地理"
print(books)
#['语文', '地理', '英语', '历史', '物理', '化学']

由于列表是可变序列,因此在python中可以使用append() 或 insert()方法来向列表中添加元素

使用append()函数在列表的末尾添加元素

books=['Chinese','English','Mathematics']
bookes.append("Science")
print(books)
#['Chinese','English','Mathematics','Science']

extend()在列表的末尾至少添加一个元素

list2=[10,20,30,'python']
list3=[1,2,3,4,5]
print(id(list3))
list3.extend(list2)
print(list3,id(list3))#[1, 2, 3, 4, 5, 10, 20, 30, 'python']
#   将list2中的所有元素都添加到了list3的末尾,添加后和添加前的原列表的id值是一样的

在这里插入图片描述

使用insert()函数在列表的指定位置插入新对象

books=['Chinese','English','Mathematics']
books.insert(1,"Science")
print(books)
#['Chinese', 'Science', 'English', 'Mathematics']

7:对列表排序

常见的两种方式
1:调用sort()方法 列表中的所有元素默认按照从小到大的顺序进行排序,可以在函数括号中指定
reverse=True 进行降序排序
2: 调用内置函数sorted() 可以在函数的括号中指定 reverse=True 进行降序排序原列表不发生改变 但产生一个新的列表对象。
reverse 颠倒 撤销 使完全相反 相反的
sort 分类 排序 种类 整理(v&n)
sorted v. 整理; 把…分类; 妥善处理; 安排妥当; adj.完成的;已解决的;整理好的;

# 使用sort()方法  没有指定reverse=True,默认为升序排序;排序前后的列表id值不发生改变
list1=[11,22,33,44,55,0,11]
print('排序前的列表',list1)
list1.sort()
print('排序之后的列表',list1)
#排序前的列表 [11, 22, 33, 44, 55, 0, 11]
#排序之后的列表 [0, 11, 11, 22, 33, 44, 55]
list2=[22,33,11,33,22,44,55,99]
list2.sort(reverse=True)#当不指定时,默认是升序
print('降序后的:',list2)
#降序后的: [99, 55, 44, 33, 33, 22, 22, 11]
# 使用内置函数sorted将列表进行排序产生一个新的列表对象
list3=[11,22,55,44,33]
print(list3,id(list3)) #[11, 22, 55, 44, 33] 140335719927232
new_list3=sorted(list3)
print(new_list3,id(new_list3)) #[11, 22, 33, 44, 55] 140335719386160
new_lis3=sorted(list3,reverse=True)
print(new_lis3)#[55, 44, 33, 22, 11]

8:删除列表中的元素

在对列表进行删除操作时,我们可以根据索引删除对应位置的元素,也可以根据元素本身的值进行删除;当然,还可以直接利用 clear()函数 清空整个列表并且删除操作也不会改变原列表的标识。

del()函数

books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
del books[1]  # 删除第 2 个元素
print(books)#['语文', '英语', '历史', '数学', '物理', '数学']
del books[1:4]  # 删除第 2 个到第 4 个的所有元素
print(books)#['语文', '物理', '数学']

如果想要删除的列表索引不存在就会抛出 IndexError: list assignment index out of range 的错误

pop()函数

pop()函数默认删除最后一个元素,并返回删除的元素

books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.pop()  # 默认删除列表最后一个元素 '数学'
print(books) #  ['语文', '数学', '英语', '历史', '数学', '物理']books.pop(3)  # 删除列表指定索引下的元素 '历史'
print(books)#['语文', '数学', '英语', '数学', '物理']

如果要删除的列表索引不存在,就会抛出 IndexError: pop index out of range 的错误remove

remove()函数

remove()函数删除指定的元素,出现重复元素只删除第一个出现的元素

books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.remove("数学")
print(books)#['语文', '英语', '历史', '数学', '物理', '数学']

**如果删除的索引不存在,会抛出 ValueError: list.remove(x): x not in list 的错误

clear()函数

清空列表

books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.clear()
print(books)#[]

9:列表的运算操作符

在这里插入图片描述
利用操作符对列表去重:

list1 = [1,2,3,4,5,6,7,10,1,2,2,3,4,8,9,0]
new = []
for each in list1:if each not in new:new.append(each)
print('去重后的列表:',new)# 去重后的列表: [1, 2, 3, 4, 5, 6, 7, 10, 8, 9, 0]
#遍历list1的每个元素,若不存在于new,调用append添加

列表函数、方法补充
在这里插入图片描述

每篇一语

每个方向都有人奋力追光!

如有不足,感谢指正!

相关文章:

python学习——【第四弹】

前言 上一篇文章 python学习——【第三弹】 中学习了python中的流程控制语句&#xff0c;这篇文章我们接着学习python中的序列。先给大家介绍不可变序列 字符串和可变序列 列表&#xff0c;下一篇文章接着补充元组&#xff0c;集合和字典。 序列 指的是一块可以存放多个值的…...

Web3中文|无聊猿Otherside元宇宙启动第二次旅行

3月9日消息&#xff0c;无聊猿Bored Ape Yacht Club母公司Yuga Labs公布了其Otherside元宇宙游戏平台第二次测试的最新细节。Yuga Labs公司称&#xff0c;“第二次旅行”将于3月25日举行&#xff0c;由四位Otherside团队长带领完成近两小时的游戏故事。本次旅行对Otherdeed NFT…...

SpringCloud-7_OpenFeign服务调用

OpenFeign介绍OpenFeign是什么1.OpenFeign是个声明式WebService客户端&#xff0c;使用OpenFeign让编写Web Service客户端更简单2.它的使用方法是定义一个服务接口然后在上面添加注解3.OpenFeign也支持可拔插式的编码器和解码器4.Spring Cloud对OpenFeign进行了封装使其支持了S…...

解决docker容器之间网络互通

docker容器之间相互访问 1.查看当前的网络 Copy [roothost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 3dd4643bb158 bridge bridge local 748b765aca52 host host …...

测试微服务:快速入门指南

在过去几年中&#xff0c;应用程序已经发展到拥有数百万用户并产生大量数据。使用这些应用程序的人期望快速响应和 24/7 可用性。为了使应用程序快速可用&#xff0c;它们必须快速响应增加的负载。 一种方法是使用微服务架构&#xff0c;因为在单体应用程序中&#xff0c;主要…...

MySQL Show Profile分析

6 Show Profile分析&#xff08;重点&#xff09; Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量 官网文档 默认情况下&#xff0c;参数处于关闭状态&#xff0c;并保存最近15次的运行结果 分析步骤&#xff1a; 1、是否…...

基于Docker快速搭建蜜罐Dionaea(30)

实验目的 1. 快速搭建Dionaea蜜罐 2. 使用Nmap扫描测试Dionaea蜜罐预备知识1. 初步认识Dionaea dionaea&#xff0c;中文的意思即捕蝇草&#xff0c;是否形容蜜罐很形象&#xff1f;dionaea是nepenthes&#xff08;猪笼草&#xff09;的发展和后续&#xff0c;更加容易被部署和…...

WP_Query 的所有参数及其讲解和实用案例

WP_Query 是 WordPress 提供的一个强大的查询工具&#xff0c;用于获取与当前页面或文章相关的内容。下面是 WP_Query 的所有参数及其讲解&#xff1a;author: 查询特定作者的文章。可以是作者 ID、作者登录名或作者昵称。实用案例&#xff1a;查询作者为 "John Smith&quo…...

100个网络运维工作者必须知道的小知识!(上)

1&#xff09;什么是链接&#xff1f; 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2&#xff09;OSI参考模型的层次是什么&#xff1f; 有7个OSI层&#xff1a;物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0c;传输…...

Python如何获取大量电影影评,做可视化演示

前言 《保你平安》今天上映诶&#xff0c;有朋友看过吗&#xff0c;咋样啊 这是我最近比较想看的电影了&#xff0c;不过不知道这影评怎么样&#xff0c;上周末的点映应该是有蛮多人看的吧&#xff0c;可以采集采集评论看过的朋友发出来的评论&#xff0c;分析分析 这周刚好…...

【C语言】详讲qsort库函数

qsort函数介绍具体作用qsort函数是一种用于对不同类型数据进行快速排序的函数&#xff0c;排序算法有很多最常用的冒泡排序法仅仅只能对整形进行排序,qsort不同,排序类型不受限制,qsort函数的底层原理是一种快速排序.基本构造qsort( void* arr, int sz, int sizeof, cmp_code);…...

SEO技术风口来了|SEO能否抓住全球约93%的网络用户?

开篇词作者/出品人 | 美洽 SEO 流量专家 白桦为什么要做一个 SEO 专栏&#xff1f;在一部分人眼中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经是老掉牙的玩意儿&#xff0c;在这个信息爆炸的年代&#xff0c;它似乎已经无法承担吸引流量的主要作用。但&#xff…...

mxnet版本与numpy,requests等都不兼容问题

简介 跟着李沐学AI时遇到的mxnet环境问题。 问题 使用pip install mxnet时会重新安装相匹配的numpy和requests&#xff0c;而这新安装的这两个版本不满足d2l所需的版本。 然后报错&#xff1a; ERROR: pips dependency resolver does not currently take into account all …...

逆向分析——壳

你脑海中的壳是什么 壳在自然界是动物的保护壳&#xff0c;软件同样有保护壳&#xff0c;为了防止破解 也许大海给贝壳下的定义是珍珠&#xff0c;也许时间给煤炭下的定义是钻石 ——沙与沫 壳的由来 在DOS时代&#xff0c;壳一般指的是磁盘加密软件中的一段加密程序 后来发展…...

为 Argo CD 应用程序指定多个来源

在 Argo CD 2.6 中引入多源功能之前,Argo CD 仅限于管理来自 单个 Git 或 Helm 存储库 的应用程序。用户必须将每个应用程序作为 Argo CD 中的单个实体进行管理,即使资源存储在多个存储库中也是如此。借助多源功能,现在可以创建一个 Argo CD 应用程序,指定存储在多个存储库…...

verilog specify语法

specify block用来描述从源点&#xff08;source&#xff1a;input/inout port&#xff09;到终点&#xff08;destination&#xff1a;output/inout port&#xff09;的路径延时&#xff08;path delay&#xff09;&#xff0c;由specify开始&#xff0c;到endspecify结束&…...

CMake编译学习笔记

CMake学习笔记CMake编译概述CMake学习资源CMake编译项目架构cmake指令CMakeList基础准则CMakeList编写项目构建cmake_minimum_required() 和 project()set()find_package()add_executable()aux_source_directory()连接库文件include_directories()和target_include_directories…...

Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践

反向代理和网关是什么关系 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于反向代理和网关是什么关系的内容。 一、反向代理 反向代理 是一种网络技术&#xff0c;用于将客户端的请求转发到一个或多个服务器上&#xff0c;并将响应返回给客户端。与正向代理不同&am…...

IT行业就业趋势显示:二季度平均月薪超8千

我国的IT互联网行业在近些年来规模迅速扩大&#xff0c;技能和技术水平也明显提升&#xff0c;目前IT互联网行业已经成为社会发展中新型产业的重要组成部分&#xff0c;行业的人才队伍也在不断的发展壮大&#xff0c;选择进入入互联网行业工作的人也越来越多。 根据58同城前段…...

【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)

简介 五子棋作为一个棋类竞技运动&#xff0c;在民间十分流行&#xff0c;为了熟悉五子棋规则及技巧&#xff0c;以及研究简单的人工智能&#xff0c;决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用&#xff0c;客户端…...

C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator

今天介绍的Krypton控件中的kryptonSeparator。下面介绍控件的外观属性如下图所示&#xff1a;Cursor属性&#xff1a;表示鼠标移动过该控件的时候&#xff0c;鼠标显示的形状。属性值如下图所示&#xff1a;DrawMoveIndicator属性&#xff1a;表示确定移动分隔符时是否绘制移动…...

Java的jar包打包成exe应用

将springboot项目使用maven打出的jar包&#xff0c;打成windows平台下exe应用程序包&#xff08;自带jre环境&#xff09;。 工具&#xff1a;1、exe4j 2、Inno Setup 工具放到网盘&#xff0c;链接&#xff1a;https://pan.baidu.com/s/1ZHX8P7u-7GBxaC6uaIC8Ag 提取码&#x…...

Latex学习笔记

Latex 学习笔记 快速入门 编译软件: TeX Live TexStudio, Ctex, 线上: Overleaf第一个示例代码&#xff1a; \documentclass{article} % 设置文档使用的文档类 % 导言区 \title{my first Latex document} \author{Jclian91} \date{\today} \begin{document} % 正文区\maket…...

【c++复习】C++的基础知识(常用关键字、缺省参数、函数重载、引用)

C基础写在开头C基础常用关键字using namespace流插入和流提取操作符内联函数(inline)宏auto关键字 (c11nullptr (c11缺省参数函数重载引用写在开头 C基础部分我想介绍如下几个关键点&#xff1a; 常见关键字命名空间的定义和使用缺省参数函数重载引用、指针和引用的区别内联函…...

Docker入门建议收藏 第二部分

二、Docker 容器技术与虚拟机的区别 Docker 到底是个什么东西呢&#xff1f;我们在理解 Docker 之前&#xff0c;首先得先区分清楚两个概念&#xff0c;容器和虚拟机。 虚拟机 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在…...

蓝桥杯三月刷题 第7天

文章目录&#x1f4a5;前言&#x1f609;解题报告&#x1f4a5;三角回文数&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;数数&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;数组切分&#x1f914;一、思路:&#x1f60e;二、…...

面试官问百万数据excel导出功能如何实现?

文章目录 背景实现1.异步处理1.1 使用job1.2 使用mq2.使用easyexcel4.多个sheet5.计算limit的起始位置6.文件上传到OSS7.通过WebSocket推送通知8.总条数可配置9.order by商品编号总结背景 用户在UI界面上点击全部导出按钮,就能导出所有商品数据。 咋一看,这个需求挺简单的。…...

理解HTTPS及配置

HTTP的弊端及HTTPS的由来 众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种.那么在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数据本身存在的安全问题:(1)、通信使用明文(不…...

IP-guard浏览器上传下载智能加解密,让管理更省心省力

现在员工日常工作中经常会通过浏览器访问公司的业务系统&#xff08;OA、JIRA等&#xff09;&#xff0c;或者访问其他外部系统&#xff0c;访问下载服务器的文档变得更便捷&#xff0c;工作地点也不再局限于办公室中。为确保应用系统机密安全且又不影响员工的正常工作&#xf…...

leetcode day22 位运算

位运算咋这么老难 剑指 Offer 56 - I. 数组中数字出现的次数 借评论区大佬答案&#xff1a;nums [1,2,10,4,1,4,3,3] a^a0a^0aa^b^ca^c^ba&(-a)最低位为1的二进制&#xff08;从又到左&#xff09;所有的异或结果得到sum2^108flag-8&88可分为两组&#xff0c;一组为与…...

java中如何判断map是否为空

java中判断map是否为空的方法是&#xff1a;利用isEmpty()函数来判断。函数介绍&#xff1a;isEmpty()是Java中用于判断某种容器是否有元素的系统库函数。如用来判断ArrayList&#xff0c;HashSet&#xff0c;HashMap是否有元素等。在Java中&#xff0c;可以用isEmpty();判断一…...

C语言数据结构:链表的增删改查及动态创建

目录 一&#xff0c;链表与数组 ① 定义区别 ② 实现区别 二&#xff0c;链表遍历和计算链表中节点数量 ① 链表遍历 ② 计算节点数量 三&#xff0c;查找链表节点 四&#xff0c;增加节点到链表中 ① 在节点后方插入 ② 在节点前方插入 ● 在头节点前方插入 ● 在…...

「Python 基础」I/O 编程、正则表达式

文章目录1. I/O 编程文件读写StringIO 和 BytesIO操作文件和目录序列化2. 正则表达式进阶re 模块1. I/O 编程 I/O指Input/Output&#xff1b; Input Stream 从外面&#xff08;磁盘、网络&#xff09;流进内存&#xff1b; Output Stream 从内存流到外面&#xff1b; 同步 …...

java 把pdf图片文档和文章文档转成文字的方法

java 提供了一些库和工具可以用来把 PDF 文档和图片文档转成文本。 Apache PDFBox&#xff1a;这是一个开源的 PDF 库&#xff0c;可以用来提取 PDF 文件中的文本内容。 iText&#xff1a;这是一个用于创建和处理 PDF 文件的库&#xff0c;可以用来提取 PDF 文件中的文本内容。…...

JavaScript 中的全部对象

宿主对象&#xff08;host Objects&#xff09;&#xff1a;由 JavaScript 宿主环境提供的对象&#xff0c;它们的行为完全由宿主环境决定。 【 浏览器环境宿主&#xff0c;全局对象window&#xff0c;window 上又有很多属性&#xff0c;如 document。 全局对象 window 上的属…...

【教学典型案例】23.部分服务总是频繁出现掉线情况

目录一&#xff1a;背景介绍问题描述解决二&#xff1a;问题分析过程解决过程设计到的知识1、nacos的data目录作用。2、nacos data目下的protocol目录3、nacos ip混乱问题三&#xff1a;总结一&#xff1a;背景介绍 问题描述 因为某些特殊原因需要把nacos迁移到另一个版本的n…...

线程安全 List 效率测试

List 常见类以及各自优缺点可自行参考 https://blog.csdn.net/weixin_39883065/article/details/111197724 本机环境 java 版本&#xff1a;1.8.0_161 window 信息&#xff1a; 测试代码 下面通过代码测试 List 线程安全类 Vector、Collections.synchronizedList(List lis…...

LeetCode 热题 C++ 581. 最短无序连续子数组 617. 合并二叉树

581. 最短无序连续子数组 给你一个整数数组 nums &#xff0c;你需要找出一个 连续子数组 &#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组&#xff0c;并输出它的长度。 示例 1&#xff1a; 输入&am…...

鉴源论坛 · 观模丨模型检查综述

作者 | 李建文 华东师范大学软件工程学院博导 版块 | 鉴源论坛 观模 01 模型检查的历史 模型检查是一种起源于20世纪70年代末的形式化验证技术。该技术最初由Edmund M. Clarke、E. Allen Emerson和Joseph Sifakis提出&#xff0c;他们因在模型检查领域的贡献而获得了2007年的…...

Easy Deep Learning——池化层

池化是什么&#xff1f;它有什么作用&#xff1f; 还是草地的场景&#xff0c;把草地分成一块块的网格&#xff0c;数量还是太多了&#xff0c;如何继续简化输入数据呢? 这时候可以只取一块网格中所有的小草的大小形状的平均值或者最大值作为一个输入数据&#xff0c;这样就大…...

TryHackMe-VulnNet: Active(ez 域渗透)

VulnNet: Active VulnNet Entertainment在他们以前的网络中遇到了不好的时光&#xff0c;该网络遭受了多次破坏。现在&#xff0c;他们移动了整个基础架构&#xff0c;并再次聘请您作为核心渗透测试人员。您的目标是获得对系统的完全访问权限并破坏域。 这应该是我在thm打的最…...

TencentOS Server 安装 PostgreSQL

TencentOS 简介 2019 年&#xff0c;随着腾讯公司外部客户的需求&#xff0c;以及公司开源协同战略的推进&#xff0c;tlinux 对外开源并进行了品牌升级&#xff0c;升级为 TencentOS Server。TencentOS 包含三大场景&#xff0c;分别如下&#xff1a; TencentOS Server&…...

多线程的风险 --- 线程安全

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; ✨每日一语&#xff1a;低头赶路&#xff0c;敬事如仪&#xff1b;自知自心&#xff0c;其路则明。 目 录&#x1f378;一. 线程不安全&#x1f379;二. 线程不安全的原因&#x1f…...

Linux信号详解

文章目录Linux信号什么是信号**从生活角度理解: **技术应用角度的信号进程的注意事项信号概念用kill -l命令可以察看系统定义的信号列表信号处理常见方式概览信号产生通过终端按键产生信号使用signal函数自定义SIGINT信号的处理方式使用sigprocmask函数阻塞2号信号和40号信号vo…...

JAVA使用POI操作EXCEL

设置公式totalRow.createCell(4).setCellFormula("SUM(E9:E35");// 执行公式wb.setForceFormulaRecalculation(true);合并单元格sheet.addMergedRegion(new CellRangeAddress(0, 0, 3, 7));单元格格式CellStyle cellStyle wb.createCellStyle();// 字体XSSFFont fon…...

只做笔记有必要买apple pencil吗?苹果笔的代替笔推荐

如果仅仅使用IPAD来进行打游戏和看剧的话&#xff0c;未免有些浪费。ipad的作用还是挺大的&#xff0c;可以用来做学习笔记&#xff0c;也可以用来做绘画&#xff0c;也可以用来做一些重要的内容。很多人都会认为&#xff0c;苹果的电容笔很好用&#xff0c;但是价格上要比一般…...

Hive---sqoop安装教程及sqoop操作

sqoop安装教程及sqoop操作 文章目录sqoop安装教程及sqoop操作上传安装包解压并更名添加jar包修改配置文件添加sqoop环境变量启动sqoop操作查看指定mysql服务器数据库中的表在hive中创建一个teacher表跟mysql的mysql50库中的teacher结构相同将mysql中mysql50库中的sc数据导出到h…...

【C++】register 关键字

文章目录一. 什么是寄存器&#xff1f;二. 为什么要存在寄存器&#xff1f;三. register 修饰变量一. 什么是寄存器&#xff1f; 我们都知道&#xff0c;CPU主要是负责进行计算的硬件单&#xff0c;但是为了方便运算&#xff0c;一般第一步需要先把数据从内存读取到CPU内&…...

剑指 Offer II 024. 反转链表

题目链接 剑指 Offer II 024. 反转链表 easy 题目描述 给定单链表的头节点 head&#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;h…...

从Linux内核中学习高级C语言宏技巧

Linux内核可谓是集C语言大成者&#xff0c;从中我们可以学到非常多的技巧&#xff0c;本文来学习一下宏技巧&#xff0c;文章有点长&#xff0c;但耐心看完后C语言level直接飙升。 本文出自&#xff1a;大叔的嵌入式小站&#xff0c;一个简单的嵌入式/单片机学习、交流小站 从…...