【python基础知识】5.for循环和while循环

news2024/12/23 13:17:03

文章目录

  • 前言
  • for...in...循环语句
    • for循环:空房间
    • for循环:一群排队办业务的人
    • range()函数
    • for循环:办事流程
  • while循环
    • while循环:放行条件
    • while循环:办事流程
  • 两种循环对比

前言

上一关,我们学习了两种新的数据类型:列表和字典。

这一关,我们要学习的主题是【循环】。循环的意思是:把一件事重复执行很多遍。

在这里插入图片描述
每个人的生活和工作都充满了循环,很多时候,循环意味着重复和枯燥。比如你要手动输入200个员工的个人信息,比如她要一遍一遍地给不认真的人费劲口舌解释同样的事情,又比如他一成不变、如同一潭死水般的生活。

一成不变的生活终归需要你自己去打破循环,但工作的事,就大可让计算机帮一帮我们了。与人类不同,计算机不怕苦也不怕累,无聊的事情可以重复上千遍,只要能追寻到你想要的答案。

这恰恰就是编程解放人类的地方。比如你需要下载很多很多张图片,本来你是要手动操作的,而计算机通过【循环】,就可以依照某些规则,帮你一张一张地下载图片,你在一旁歇着就好。计算机干重复性的工作比你拿手。

再比如作为运营,可能需要去解散很多的用户群,本来要一个一个手动点击,而计算机通过【循环】,就可以依照某些规则,帮人一个一个解散。计算机干重复性的工作比你省力。

现在你再看“循环”这两个字,是不是跟开始不太一样了?

为什么计算机就特别擅长做重复性工作呢?注意,是“超擅长、速度超快”,而不只是“能干活、不抱怨”。

究其原理,其实是因为代码中的【循环语句】,让计算机能够重复性地、自动地执行指令。

在这里插入图片描述
要实现“重复、自动地执行代码”,有两种循环语句可供我们选择使用:一种是for…in…循环语句,另一种是while循环语句。

“循环”在计算机中是非常重要,是最基础的编程知识,为了讲解得更加清楚,我们将循环这一章节分成了上下两关。这一关,我们将对两种循环语句形成初步的了解,并学会简单的应用。

话不多说,我们先一起来看看第一种循环的方式:for…in…循环,它也被简称为for循环。

for…in…循环语句

还记得前一关里,班主任点名的例子吗?本来要重复50次才能完成的任务,最后变成了3行代码。

student = ['党志文', '浦欣然', '罗鸿朗', '姜信然', '居俊德', '宿鸿福', '张成和', '林景辉', '戴英华', '马鸿宝', '郑翰音', '厉和煦', '钟英纵', '卢信然', '任正真', '翟彭勃', '蒋华清', '双英朗', '金文柏', '饶永思', '堵宏盛', '濮嘉澍', '戈睿慈', '邰子默', '于斯年', '扈元驹', '厍良工', '甘锐泽', '姚兴怀', '殳英杰', '吴鸿福', '王永年', '宫锐泽', '黎兴发', '朱乐贤', '关乐童', '养永寿', '养承嗣', '贾康成', '韩修齐', '彭凯凯', '白天干', '瞿学义', '那同济', '衡星文', '公兴怀', '宫嘉熙', '牧乐邦', '温彭祖', '桂永怡']
for i in student:
    print(i+'在不在?')

这里的第2-3行就是for循环。

先看一段最简单的for循环代码,了解它的格式:

在这里插入图片描述
来,先运行一下图中的示例代码。

for i in [1,2,3,4,5]:
   print(i)

运行结果:

1
2
3
4
5

终端上依次出现了列表里的所有数字,对吧?我们用大白话来打个比方,以便更好地理解这段代码的意义:

在这里插入图片描述

for i in [1,2,3,4,5]:
   print(i)

#有一群数字在排队办业务,也就是列表[1,2,3,4,5]
#它们中的每一个被叫到号的时候(for i in),就轮流进去一个空房间办业务
#每一个数字进去房间之后,都对计算机说:“喂,我要办这个业务:帮忙把我自己打印出来”,也就是print(i)
#然后计算机忠实的为每一个数字提供了打印服务,将1,2,3,4,5都打印在了屏幕上

for循环的3个要点即是:1.空房间;2.一群等着办业务的人;3.业务流程

我们一个一个来看:

for循环:空房间

for i in [1,2,3,4,5]:  #i是“空房间”
   print(i)

空房间的学名叫【元素】(item),你可以把它当成是一个变量。那么首先,我们需要给房间取一个名字,也就是“变量名”。

为什么我总是用i?因为英文是item,所以i是常用名嘛。但其实你给这个房间取什么名字都行。

来,直接运行一下代码试试。

for i in [1,2]:
    print(i)

for number in [1,2]:
    print(number)

for LOVE in [1,2]:
    print(LOVE)

运行结果:

1
2
1
2
1
2

是不是三种结果都一样?这就对啦,不必拘束姓名。

在for循环结束之后,我们还能使用这个房间,不过这时候房间里的人是谁呢?请运行代码体验一下:

for i in [1,2,3,4,5]:
    print(i)

print('事情全部办完了!现在留在空房间里的人是谁?')
print(i)

运行结果:

1
2
3
4
5
事情全部办完了!现在留在空房间里的人是谁?
5

原来,业务结束之后,最后一个走进去的5留在了房间里,被打印了出来。

搞清楚了什么是“空房间”,我们再看看下一个要点:

for循环:一群排队办业务的人

在这里插入图片描述
我们刚刚看到的“一群排队办业务的人”,都是以列表的形式出现:[1,2,3,4,5]。还有哪些数据类型也属于“一群排队办业务的人”呢?

我觉得你已经猜到了,就是字典。来直接体验一下代码运行效果:

dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}

for i in dict:
    print(i)

运行结果:

日本
英国
法国

我们用print(i)把“空房间”i打印了出来,发现i会逐个接待字典中的每一个【键】。

那什么不属于“一群排队办业务的人”呢?请你猜一猜:

请问以下哪个选项的数据不能放在for i in a:循环中?

A.a =[1,3,50,9]
B.a=5
C.a ={‘师父’:‘唐僧’,‘大师兄’:‘孙悟空’,‘二师兄’:‘猪八戒’,‘三师弟’:‘沙和尚’}
D.a=‘吴承恩’

答案是:B
字典、列表和字符串’吴承恩’都是一群排队办业务的人,但a = 5并不是。

哈哈,是不是做题时有点犹豫,看到答案后有些疑惑:为什么’吴承恩’也可以?

不要怀疑,字符串也属于“一群排队办业务的人”。打个比方,'吴承恩’三个字就像一家三口,但走进空房间办业务时,这家人是可以一个一个进去的。来试试吧。

for i in '吴承恩':
    print(i)

运行结果:

吴
承
恩

而整数、浮点数是不属于“一群排队办业务的人”的,如果把它们放在for循环里,代码会报错。

请你体验一下报错的代码,遇到报错后,可以把代码修改成正确的(把a和b都变为字符串类型即可),或者直接跳过。

a = 100
b = 0.01

for i in a:
    print(i)

for i in b:
    print(i)

现在我们理解了:列表,字典,字符串都可以是“一群排队办业务的人”。

for i in [1,2,3,4,5]:  
   print(i)

还是这段代码,代码的运行结果你应该已经了然于心,是1,2,3,4,5依次出现。也就是说,当这一群排队的人依次序走进空房间,每个人都会把业务办完。

这个过程,在Python中的学名就叫做【遍历】。

其实,遍历这个词在古代汉语中就已经出现过了:

在这里插入图片描述
只不过古人是遍历名山大川,一一寻访学问;而Python是遍历数据结构(列表、字典等),一一访问其中的数据。

除了列表,字典,字符串三种数据类型,我们还可以遍历其他的数据集合。比如和for循环常常一起搭配使用的:range() 函数。

range()函数

# 请直接运行代码
for i in range(3):
    print(i)

运行结果:

0
1
2

运行后,你看到了整数0,1,2,是不是?使用range(x)函数,就可以生成一个从0到x-1的整数序列。

它还有更多用法,再来看这段代码,并运行:

for i in range(13,17):
    print(i)

运行结果:

13
14
15
16

使用range(a,b) 函数,你可以生成了一个【取头不取尾】的整数序列。

你可能会想问,我没事儿取这些整数出来干嘛?嗯,这是个好问题。再来看一段代码,并运行:

for i in range(1,10):
    for j in range(1,10):
        print(str(i)+'*'+str(j)+'='+str(i*j))
print('我很棒')

运行结果:

1*1=1
1*2=2
1*3=3
1*4=4
1*5=5
1*6=6
1*7=7
1*8=8
1*9=9
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
8*9=72
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81
我很棒

重要的事情说三遍,哈哈。像这样,有了range()函数之后,当你想把一段代码固定重复n次时,就可以直接使用for i in range(n)解决问题。

来练习一下:如果你要重复打印“书桓走的第n天,想他”,n为0到10,你会怎么写?

参考答案:

for i in range(11):
    print('书恒走的第'+str(i)+'天,想他')

运行结果:

书桓走的第0天,想他
书桓走的第1天,想他
书桓走的第2天,想他
书桓走的第3天,想他
书桓走的第4天,想他
书桓走的第5天,想他
书桓走的第6天,想他
书桓走的第7天,想他
书桓走的第8天,想他
书桓走的第9天,想他
书桓走的第10天,想他

你做对了吗?

range()函数还有一种用法,我们来直接运行体验一下:

for i in range(0,10,3):
    print(i)

运行结果:

0
3
6
9

你观察出规律了么?这里range(0,10,3)的意思是:从0数到9(取头不取尾),步长为3。
在这里插入图片描述
好啦,我们来实战一下:请你用for循环完成1到100的整数分别乘以5的计算,并打印出来,效果就像这样:

5
10
15
20
……(中间过程省略)
490
495
500

你会怎么写出for循环代码呢?

开始写代码前,我们要先创建一个从1到100的整数列表,请问写法正确的是?

range(1,101 )

没错!range(1,101 )表示从1-100的整数列表,不包括101。
请开始写代码吧:

参考答案:

for i in range(1,101):
    print(i*5)

我们最后来理解一下for循环的第三个要点:

for循环:办事流程

在这里插入图片描述
我们以下面的代码为例:

for i in [1,2,3,4,5]:print(i*5)

这两行代码中,in表示从“一群排队办业务的人”(字符串、列表、字典等)中依次取值,这个刚才我们已经学过了。

在循环的过程中,“一群排队办业务的人”会被依次取出,然后走进房间i去办理业务。

但办事流程呢?在这里流程很简单,都是print(i*5)。然后在i=1的情况下,执行一遍流程;在i=2的情况下,再执行一遍流程……一直执行到i=5,也就把这群人的事情全部办完了:

在这里插入图片描述
“办事流程”的学名是【for子句】。格式是【冒号】后另起一行,【缩进】写命令。

格式对于编程来说是一件再怎么强调也不为过的“小事”,所以在这里我们再强调一下for循环的格式:

在这里插入图片描述
到这里,你已经掌握for循环的基本语法了,我们再做一些练习。

假设你要做大采购,让小明买醋,小红买油,小白买盐,小张买米;我们先把这堆事情写成一个字典:d = {‘小明’:‘醋’,‘小红’:‘油’,‘小白’:‘盐’,‘小张’:‘米’}

如果我们把这四个人要买的东西依次print出来,要写4句print语句:

d={'小明':'醋','小红':'油','小白':'盐','小张':'米'}
print(d['小明'])
print(d['小红'])
print(d['小白'])
print(d['小张'])

请你来动手用for循环代替以上重复性代码,并起到同样的效果。

参考答案:

#请直接运行代码
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}

for i in d:
    print(d[i])

你做对了吗?如果有点不确定,可以回头补一补上一关“字典”的相关知识。

到这里,for循环的3个要点都讲解完毕:

在这里插入图片描述
好了,我们学完了for循环,我们来看看另一种循环方式。

while循环

先来看看while循环长啥样:

在这里插入图片描述
你猜一猜,图中代码的运行结果会是怎么样的呢?

#请直接运行代码
a = 0
while a < 5:
    a = a + 1
    print(a)

运行结果:

1
2
3
4
5

还是1,2,3,4,5依次出现,对吧?我们也用大白话去解释一下这段代码。

和for循环语句不同,while语句没有“空房间”,也不是“把一群排队办业务的人做完”。它是“在一定的条件下”,“按照流程办事”。

在这里插入图片描述

a = 0                #先定义变量a,并赋值
while a < 5:         #设定一个放行条件:a要小于5,才能办事
    a = a + 1  # 满足条件时,就办事:将a+1
    print(a)   # 继续办事:将a+1的结果打印出来 

很明显,while循环有2个要点:1.放行条件;2.办事流程。咱们先看第一个。

while循环:放行条件

while在英文中表示“当”,while后面跟的是一个条件。当条件被满足时,就会循环执行while内部的代码(while子句)。

所以while循环本质上像是一个哨卡:只要事情符合条件,那就一遍又一遍的“按流程办事”。

就像在上面的例题中,只要a<5这个条件成立,就不停地办事(把a+1的结果打印出来),直到条件不成立,办事流程就停止。

a = 0
while a < 5:
    a = a + 1
    print(a)

同样,while语句也要注意代码规范:

在这里插入图片描述
和for循环一样,冒号和内部代码的缩进都是必不可少的。╭(╯^╰)╮写不规范的话计算机又给你报错,然后你又卡在莫名其妙的地方很久噢…

下面,我们用一个好玩儿的案例来说明while的具体用法,不晓得同学们有没有看过金庸的武侠小说《神雕侠侣》?

小说里的主角小龙女(古墓派掌门人)自小在终南山上的古墓里生活。这个门派有个规定,除非有男人愿意为掌门人死,否则掌门人永远不能出墓门半步。

在Python中,这个故事的逻辑就被翻译成:当(while)没有男人愿意为小龙女去死的时候,小龙女要一直一直一直生活在古墓里,这就是一种循环。只有当条件(没有男人愿意为小龙女去死)为假的时候,就可以打破循环,小龙女就能出古墓下山了。

这段代码我先写出来,你看看~

man = ''  # 注:''代表空字符串
while man != '有':  #注:!=代表不等于
​    man = input('有没有愿意为小龙女死的男人?没有的话就不能出古墓。')
print('小龙女可以出古墓门下山啦~')

第1行代码:定义了变量man为空的字符串。使用变量前要先定义变量并为变量赋值,下面我们还会继续用到变量man。

第2行代码:while后面有一个条件,当这个条件被满足时,即man != '有’时,放行、办事。开始执行循环内部代码,即第3行的代码,开始询问。

第3行代码:询问现在有男人愿意为小龙女死吗?输入完信息后,回到第2行代码,重新判断条件真假。直到条件被判断为假,即man == ‘有’,while循环才结束。

第4行代码:while 循环结束后的代码,也是循环外部的代码。因为当有男人愿意为小龙女死的时候,while 后面的条件就为假,此时,程序会结束循环,去运行第4行代码。

我们来运行一下好了,同样需要你输入内容。你可以先随便输入几个数据,只要你输入的不是有,代码就会一直循环;直到你输入有,循环会结束。

man = ''  # 注:这个''代表空字符串
while man != '有':
    man = input('有没有愿意为小龙女死的男人?没有的话就不能出古墓。')
print('小龙女可以出古墓门下山啦~')

运行结果:

有没有愿意为小龙女死的男人?没有的话就不能出古墓。1
有没有愿意为小龙女死的男人?没有的话就不能出古墓。hah
有没有愿意为小龙女死的男人?没有的话就不能出古墓。没有
有没有愿意为小龙女死的男人?没有的话就不能出古墓。有
小龙女可以出古墓门下山啦~

幸运的是,小说的男主角杨过在因缘际会下,来到了活死人墓,和小龙女互生情愫。杨过对小龙女用情很深,愿意为她而死,所以满足了师门的规定,小龙女就可以出古墓下山了。

好了,你感受过了while循环的逻辑之后,现在我想请你自己动手练一练。放心,没那么难,有疑问的话看看小龙女的例题。

这个画风突变的故事是这样的:你家的大门是密码门,密码是你的生日816。当输入密码错误的时候,会提示“请尝试输入密码:”。直到密码输入正确,就会提示“欢迎回家!”。

终端的运行效果应该差不多长这样:

请尝试输入密码:
123
请尝试输入密码:
456
请尝试输入密码:
789
请尝试输入密码:
……(中间过程省略)
816
欢迎回家!

请你补全这段代码吧:

怎么样,写出来了吗?
参考答案是这样的:

password = ''  # 变量password用来保存输入的密码

while password != '816':
    password = input('请尝试输入密码:')

print('欢迎回家!')

那什么,或许你会有小小的疑惑(很可能也没注意到),816到底是谁的生日?偷偷告诉你,是95版《神雕侠侣》女主角李若彤的生日,永远的小龙女。

在这里插入图片描述
好啦,言归正传。我们再看看while循环的第二个要点:办事流程。

while循环:办事流程

while循环,在满足条件的时候,会一轮又一轮地循环执行代码。

我们来做道选择题,请看代码回答问题:

a = 0

while a < 5:
​    a = a + 1
print(a)

请问终端运行的结果是啥?

Bingo!答对啦,a从0开始,每次循环都加1,当a被加到5的时候,就不会满足循环的条件哨卡就不会通过,于是循环就会结束。最后打印a,也就是5.

这道题跟一开始的例题非常相似,唯一的区别在于print(a)有没有缩进。

# 之前的例题
a = 0

while a < 5:
​    a = a + 1
    print(a)

# 本题
a = 0

while a < 5:
​    a = a + 1
print(a)

有缩进的时候,print(a)也是循环中的“办事流程”,会将数字逐一打印。没有缩进的时候,循环中的“办事流程”就只有做加法,print(a)也就只会打印循环结束时的最后一个数字。

稍微有点费事是不?我们来做一下分解,看看每一行代码的含义:

a = 0  # 定义了一个变量a

while a < 5:  # 当a小于5的时候,就自动执行后续缩进部分的语句
    print('现在a的值是:' + str(a)) #加一个print看看现在的a是多少
    a = a + 1  # 每执行一次循环,变量a的值都加1
    print('加1后a的值是:' + str(a)) #加一个print看看加1后的a是多少
print(a)

可以看到,最后一轮循环的时候a=4,然后最后a的值被加1后等于5:

在这里插入图片描述
所以,缩进后的【while子句】才是会被循环执行的“办事流程”,这一点,你应该差不多明白了吧~

那,我们再来做一个小练习。

之前,我们用for循环解过“1到100分别乘以5”的题目:

for i in range(1,101):
    print(i*5)

如果现在用while循环,应该怎么写呢?你来试试看。

参考答案:

i = 1
while i<101 :
    print (i*5)
    i = i+1

到这里,for循环和while循环的知识就都学完了~

for循环和while循环都可以帮我们完成重复性的劳动,那到底两个循环有什么区别,什么时候用for什么时候用while呢?让我们来对比一下。

两种循环对比

for循环和while循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡。

所以说,当我们【工作量确定】的时候,我们就可以让for循环来完成重复性工作。反之,要【工作量不确定时】可以让while循环来工作:

# 适合用for...in...循环
for i in '神雕侠侣':print(i)

# 适合用while循环
password = ''
while password != '816':
​     password = input('请尝试输入密码:')

要把字符串’神雕侠侣’拆成一个个字符打印出来,这件事【工作量确定】,适合用for循环。

而对于“输入密码,判断输入的密码是否正确”这件事,我们并不知道要判断几遍才能得到正确密码,所以【工作量不确定】,适合用while循环。

不过有一种情况for循环和while循环都可以解决问题,那就是【把一件事情做N遍】:

# 直接运行代码即可

#用for循环把诗句打印3遍
for i in range(3) :
    print('明日复明日,明日何其多。')

#用while循环把诗句打印3遍
j = 0
while j<3 :
    
    print ('明日何其多,明日何其多。')
    j =j+1

你会看到,两者都能做。不过for循环的代码相对更简洁一些。

让我们总结一下什么时候用for什么时候用while:

在这里插入图片描述
好啦,到目前为止,最基础的知识,我们就讲完了。来到这一关的尾声,想说一说“循环”。

正如开头所说,计算机能帮我们做的,是许许多多繁杂重复的工作。当计算机为我们解放双手,这平凡的日子就空出了一些时间。

这些时间,你会用来做什么呢?

曾有一段日子,我选择让自己的思想任意驰骋,想看看哪里是我的边缘。

后来,我用那些多出来的时间回归生活,学习陪伴家人,学习表达我的珍惜。

而此时,此地,此刻的每一个你,就是现在的我,为这些时间所做出的选择。

路还长着呢,我们下一关再会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新23转债上市价格预测

新23转债 基本信息 转债名称&#xff1a;新23转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;11.6亿元。 正股名称&#xff1a;新泉股份&#xff0c;今日收盘价&#xff1a;53.17元&#xff0c;转股价格&#xff1a;51.35元。 当前转股价值 转债面值 / …

新手学习导航设计的10个技巧

如果一个网站有良好的可用性&#xff0c;基本的需求是良好的导航设计。 本文结合社区优秀的网页导航设计案例&#xff0c;总结了网页导航设计的10项技能。 网页导航设计案例即时设计是一款支持在线协作的专业级 UI 设计工具&#xff0c;支持 Sketch、Figma、XD 格式导入&#…

uniapp微信小程序隐私保护引导新规

1.components中新建组件PrivacyPop.vue <template><view class"privacy" v-if"showPrivacy"><view class"content"><view class"title">隐私保护指引</view><view class"des">在使用当…

微信小程序添加用户授权《隐私保护协议》

官方文档&#xff1a;wx.onNeedPrivacyAuthorization(function listener) | 微信开放文档 隐私协议配置 微信小程序平台上需要进行隐私配置&#xff0c;审核成功后大概半小时左右才会生效。 小程序公众平台 --- 设置 --- 服务内容声明 --- 用户隐私保护指引&#xff08;提交…

接口自动化框架Pytest —— 配置文件pytest.ini的详细使用

前言 我们在执行用例的时候&#xff0c;每次都在命令行中输入-v&#xff0c;-s等一些命令行参数的时&#xff0c;比较麻烦。其中pytest.ini这个配置文件可以快速的帮助我们解决这个问题。 配置文件 我们在执行用例的时候&#xff0c;每次都在命令行中输入-v&#xff0c;-s等一…

期权交易手续费哪家券商平台费率最低?怎么收费的?

随着场内ETF期权市场的发展&#xff0c;越来越多的新的品种上市。我们知道&#xff0c;想要交易5期权必须先在券商开通50ETF期权账户&#xff0c;不同券商手续费收取多少不一样&#xff0c;那么就来为大家介绍一下期权交易手续费哪家券商平台费率最低&#xff1f;怎么收费的&am…

设计模式 - 责任链

一、前言 ​ 相信大家平时或多或少都间接接触过责任链设计模式&#xff0c;只是可能有些同学自己不知道此处用的是该设计模式&#xff0c;比如说 Java Web 中的 Filter 过滤器&#xff0c;就是非常经典的责任链设计模式的例子。 那么什么是责任链设计模式呢&#xff1f; ​ …

智慧电力系统

智慧电力系统依托电易云-智慧电力物联网&#xff0c;将人工智能技术、物联网技术与电力行业相结合&#xff0c;通过数据的收集、分析和应用&#xff0c;实现电力资源精准调度、安全稳定运行、智能管理的全过程解决方案。 智慧电力系统的核心理念是将科技与能源紧密结合&#x…

SECOND:Sparsely Embedded Convolutional Detection

论文背景 为了克服图像单独提供空间信息的不足&#xff0c;点云数据在三维应用中变得越来越重要。点云数据包含精确的深度信息&#xff0c;可以由LiDAR或RGB-D相机生成。 VoxelNet&#xff1a;首先将点云数据分组成体素&#xff0c;然后在将体素转换成密集的3D张量用于区域提…

C语言插入排序

前言&#xff1a; 本文主要讲解插入排序中的直接插入排序和希尔排序。 1、直接插入排序&#xff1a; 1.1基本思想 直接插入排序是一种简单的插入排序法&#xff0c;其基本思想是把待排序的数值按照大小顺序逐个插入到一个已经排好序的有序序列中&#xff0c;直到将所有记录…

骨传导和普通耳机哪个危害大?哪款更值得入手一些?

先说结论&#xff0c;普通耳机对人体的危害要比骨传导耳机大一些&#xff0c;区分方式也很简单&#xff0c;想要了解骨传导耳机和普通耳机哪个对人体的危害更大&#xff0c;首先就要了解它们的传声方式&#xff0c;普通耳机的传声原理很简单&#xff0c;利用空气传声&#xff0…

App自动化测试持续集成效率提高50%

持续集成是一种开发实践&#xff0c;它倡导团队成员需要频繁的集成他们的工作&#xff0c;每次集成都通过自动化构建&#xff08;包括编译、构建、自动化测试&#xff09;来验证&#xff0c;从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态&#xff0c;让产品…

A6500-CC 9199-00120 基于时间或基于条件的工作流

A6500-CC 9199-00120 基于时间或基于条件的工作流 B-Scada宣布VoT(虚拟化事物),允许真实世界的对象和其他数据源在虚拟模型中表示&#xff0c;该模型可以从任意数量的不同来源检索实时数据。虚拟化支持在结构化环境中对这些对象进行实时监控和管理&#xff0c;该环境可以在任…

[杂谈]-快速了解LoRa和LoRaWAN

快速了解LoRa和LoRaWAN 文章目录 快速了解LoRa和LoRaWAN1、什么是LoRa2、什么是 LoRaWAN3、LoRa和LoRaWAN比较4、LoRa与其他无线技术比较5、为什么需要LoRaWAN6、LoRa的缺点7、LoRa联盟8、LoRaWAN标准9、LoRaWAN的应用 许多事物进一步推动工业物联网 (IIoT)&#xff1b; 其中之…

Java 若依框架导出excel添加单表头标题

图示 若依框架通过Excel注解已经封装好导出的工具类了&#xff0c;目前是可以实现简单的单表表头标题添加 在exportExcel方法的后面直接添加一项参数就可以导出添加标题了~

ModaHub魔搭社区:星环科技向量数据库Hippo社区版来啦

大语言模型正在与企业应用迅速结合,并深刻改变企业的各个产业环节。而大模型训练所使用的数据包含了如文档、图片、音视频等各种类型的非结构化数据,传统关系型数据库能力有限。通过将这些非结构化数据转换为多维向量,可以结构化地在向量数据库中进行管理,实现高效的数据存…

DG232RL兼容FT232RL开发资料

芯片上处理的整个 usb 协议——不需要 usb 专用固件编程。 • uart 接口支持7或8个数据位、1或2个停止位和奇数/偶数/标记/空格/无奇偶校验。* 充分辅助的硬件或 x-on/x-off 软件握手。* 数据传输速率从300波特到3兆波特(RS422/RS485和 ttl 级) &#xff0c;从300波特到1兆波特…

终于来啦!OpenDataLab 新增自主上传功能,升级CLI/SDK工具、数据集详情页……体验赠好礼~

9月&#xff0c;OpenDataLab 全新版本上线&#xff0c;支持用户自主发布原创数据集&#xff0c;同时升级了 CLI/SDK 工具、数据集详情页&#xff0c;让 AI 数据集开源更方便、展示更清晰。还有创作领好礼活动&#xff0c;快来看看吧&#xff01; &#xff08;注意&#xff01;…

配电柜监控的真正标准,只有一个!

在现代社会中&#xff0c;电力是我们生活和工作不可或缺的一部分。大楼宾馆作为城市中繁忙生活的一部分&#xff0c;依赖于可靠的电力供应来支持各种设施和服务&#xff0c;从客房照明到电梯运行&#xff0c;无一不离电。然而&#xff0c;大楼宾馆电力分配系统的稳定性和安全性…