当前位置: 首页 > 编程日记 > 正文

干货 | 收藏!16段代码入门Python循环语句

640?wx_fmt=jpeg
(图片付费下载于视觉中国)

作者 | 李明江 张良均 周东平 张尚佳,本文摘编自《Python3智能数据分析快速入门》
来源 | 大数据(ID:hzdashuju)

【导读】本文将重点讲述for语句和while语句。for语句属于遍历循环,while语句属于当型循环。除了两个循环语句外,还介绍了break、continue与pass三个用于控制循环结构中的程序流向的语句。在此基础之上,还介绍了列表推导式,这是一种特殊的循环语句。

循环语句又称为重复结构,用于反复执行某一操作。面对大数量级的重复运算,即使借助计算机,重复编写代码也是费时的,这时就需要借助循环语句。使用循环语句一般要用到条件判断,根据判断式的返回值决定是否执行循环体。

循环分为两种模式,一种是条件满足时执行循环体;另一种则相反,在条件不满足时执行循环体。前者称为当型循环,后者称为直到型循环。

在图1中,虚线框内是一个当型循环结构,此结构包含判断条件和循环体,以及连接各部分的流向线。程序执行时,先判断条件的真假。判断为真时,则执行循环体;判断为假时,不再执行循环体,循环结束。当型循环先进行条件判断,如果满足循环条件,再执行循环体,因此又被称为前测试型循环。

640?wx_fmt=png
▲图1 当型循环结构

在图2中,虚线框内是一个直到型循环结构,此结构包括判断条件和循环体,以及连接各部分的流向线。程序执行时,先执行一次循环体,再判断执行循环的结果是否满足判断条件。满足条件时,再次执行循环体;不满足条件时,不再执行循环体。直到型循环在执行判断前先进入循环体运行,因此又被称为后测试型循环。

640?wx_fmt=png
▲图2 直到型循环结构

Python中主要有两种循环语句,即for语句和while语句。前者采用遍历的形式指定循环范围,后者视判断式返回值的情况而决定是否执行。要更灵活地操纵循环的流向,就要用到break、continue和pass等语句。

01 for

for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。不同于C语言,Python中的for语句将遍历系列中的所有成员,遍历顺序为成员在系列中的顺序。需要注意,在for循环中改变任何序列的内容都是危险的!

for语句不属于当型循环或直到型循环,它遍历序列对象内的元素,对每个元素运行一次循环体,循环的步数在程序开始执行时已经指定,不属于条件判断。

在for语句中,for和in搭配组成for-in循环结构,for-in循环依次把list或tuple中的每个元素迭代出来。for语句的基本语法格式如下。
for 变量 in 序列:	操作语句

for语句常用的语法格式及其参数说明如下所示:

  • 序列:接收序列,表示遍历范围。无默认值
  • 操作语句:接收操作语句,表示执行一段代码。无默认值

程序的执行从“for变量in序列”开始,该语句把序列中的每个元素代入变量,执行一遍操作语句1,重复的次数就是序列中元素的个数。

为了展示for循环的遍历功能,依次打印list中的姓名,如代码清单1所示。

  • 代码清单1:for语句遍历提取str
# 单纯遍历的for语句	
names = ['Michael', 'Bob', 'Tracy']	
# 遍历输出names中的元素	
for name in names:	print(name)
输出结果:
Michael	
Bob	
Tracy
for语句同样可以实现dict的遍历方法,如代码清单2所示。

  • 代码清单2:for语句遍历查询dict
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}	
# 遍历键值对	
print('key_value:', end = '')	
for key, value in dic.items():	print(key, value, sep = ':', end = ' ')	
# 遍历键	
print('keys:', end = '')	
for key in dic.keys():	print(key, end = ' ')	
# 遍历值	
print('values:', end = '')	
for value in dic.values():	print(value, end = ' ')
输出结果:
key_value:a:1 b:2 c:3 d:4	
keys:a b c d	
values:1 2 3 4

和条件语句一样,循环语句也可以使用嵌套,作用同样是丰富程序的功能性。设计一个成绩录入系统,就必然要录入姓名和课程这两类信息,仅靠一层循环是无法实现的,可使用两层循环结构,如代码清单3所示。

  • 代码清单3:嵌套for语句
students = ['小明', '小红']	
subjects = ['语文', '数学'] 	
sum1 = []	
avg = []	
for i in students: 	print ('开始录入%s的考试成绩!'%i) 	sum = 0	for j in subjects: 	print('请输入%s成绩:'%j) 	score = int(input())	sum += score	average = sum / 2	avg.append(average)	sum1.append(sum)	
print(students, '的总分依次是', sum1, ',', '平均分依次是', avg)	
print('完成成绩录入!')
输出结果:
开始录入小明的考试成绩!	
请输入语文成绩:	
97	
请输入数学成绩:	
90	
开始录入小红的考试成绩!	
请输入语文成绩:	
89	
请输入数学成绩:	
100	
['小明', '小红'] 的总分依次是 [187, 189] , 平均分依次是 [93.5, 94.5]	
完成成绩录入!

理论上,for循环也可以无限嵌套,但并不推荐。

02 while

while语句是Python中最常用的递归结构。区别于for循环,while循环结构包含条件判断式,是一种条件循环,属于当型循环。

while语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句。也可以在结尾处包含一个else代码块,它与while代码块是同级的,组成while-else的形式。while语句的基本语法格式如下。

while 条件表达式:	操作语句 1	操作语句 2 
while语句常用的参数及其说明如下所示:

  • 条件表达式:接收布尔表达式,表示判断条件是否成立。无默认值
  • 操作语句:接收操作语句,表示执行一段代码。无默认值

执行while语句时,只要顶部的条件表达式返回真值,就一直执行while部分嵌套的递归代码,当条件表达式返回假值时,不再执行操作语句,程序跳出while结构。

while语句的基础使用方法如代码清单4所示。

  • 代码清单4:while语句
sum = 0	
n = 99	
while n > 0:	sum += n	n -= 2	
print(sum)

输出结果:2500

如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。

如果布尔表达式始终返回1,while语句就变成无限循环,如代码清单5所示。

  • 代码清单5:while语句无限循环
# 布尔表达式为常数1,始终为真值	
while 1:	print('循环')

输出结果:
循环	
循环	
…
# 布尔表达式每次递归运算都为2,始终为真值	
x, y = 2, 1	
while x / y:	print('循环')	x = x * 2	y = y * 2
输出结果:
循环	
循环	
…
运行代码清单5,将会不断打印出“循环”。代码清单5展示了制造无限循环的两种方式,既可以在while后写入一个固定的真值,也可以写入一个一直生成真值的表达式。要终止无限循环,可以使用快捷键Ctrl+C中断循环的执行,也可以用循环终止语句,这将在下文中介绍。

灵活地利用while语句中的布尔表达式及代入表达式的递归值,可以实现特别的功能,如代码清单6所示。

  • 代码清单6:while语句实现str截取
string = 'abcd'	
while string:	print(string)	
# 该语句的递归计算是,每次从str的第2个字符开始截取	string = string[1:]
输出结果:
abcd	
bcd	
cd	
d
代码清单6包含一个自减迭代值,它并不通过明显的运算符实现自减,而是利用索引法则,x变量一直从str中第2个值截取至结尾,每次都将位于str最前面的字符截取掉,最终只剩下一个字符时,再次截取就只有空的结果,布尔表达式返回0,循环终止。

通过代码清单5和代码清单6可以看到,灵活地利用递归式,可以实现程序流向的控制。

while循环同样可以使用嵌套,嵌套的while循环实现成绩录入系统如代码清单7所示。

  • 代码清单7:嵌套while语句
j = 1	
while j <= 2:	sum = 0	i = 1	name = input('请输入学生姓名:')	while i <= 2:	print ('请输入第%d门的考试成绩: '%i)	sum += int(input())	i += 1	avg = sum / (i-1)	print(name, '的平均成绩是%d'%avg)	j += 1	
print('学生成绩输入完成!')
输出结果:
请输入学生姓名:小明	
请输入第1门的考试成绩: 	
98	
请输入第2门的考试成绩: 	
88	
小明 的平均成绩是93	
请输入学生姓名:小红	
请输入第1门的考试成绩: 	
65	
请输入第2门的考试成绩: 	
100	
小红 的平均成绩是82	
学生成绩输入完成!

代码清单7的第1层while语句用于录入人名,第2层则在各人名下录入多门成绩,布尔表达式决定录入的人数和课程数。

03 break、continue与pass

在前两节中,已经介绍了Python中的两种循环语句。循环语句中还可以嵌入break、continue和pass语句,以灵活地改变流向,实现更多功能。

1. break

在Python中,break语句用于终止循环语句的执行。使用该语句时,即使循环条件判断为真,或序列未被完全递归,循环语句也会被立刻停止。

break语句一般配合条件判断使用,因为程序的终止必须是在某一条件被满足时执行。break语句在for循环和while循环中的使用如代码清单8所示。

  • 代码清单8:break语句的使用
# break语句用于for循环	
string = "Python"	
for i in string:	
# 遍历至string中的字符n时,不再执行else代码块	if i == 'n':	break	else:	print("letter:{}". format(i))
输出结果:
letter:P	
letter:y	
letter:t	
letter:h	
letter:o
# break语句用于while循环	
counts = 0	
while True:	print(counts)	counts += 1	
# 满足counts等于3时跳出循环,不再进入循环体	if counts == 3: 	break

输出结果:
0	
1	
2
从代码清单8可以看到,break语句用于for循环和while循环是有区别的。用于for循环时,只终止遍历中某一次的循环体执行;用于while循环时,整个循环被终止。

break只终止本层循环,如有多层嵌套的循环,在其中一层循环中写入break,只在这层循环中生效,程序将跳到上一层循环中继续运行,如代码清单9所示。

  • 代码清单9:break语句用于嵌套循环结构
# 第1层循环,遍历次数为2	
for i in range(2):	print("-----%d-----" %i)	
# 第2层循环,遍历次数为10	for j in range(10):	
# 使用break语句,j>1时不执行循环体	if j > 1:	break	print(j)
输出结果:
-----0-----	
0	
1	
-----1-----	
0	
1
在代码清单9中,break语句在条件判断式“if j>1:”后被使用,因此尽管j的指定遍历次数为10,实际上遍历只运行两次。由于break语句只终止本层循环的运行,i依旧遍历执行了两次,而不是在第1次遍历过程末尾终止。

2. continue

Python中的continue语句用于跳出当前循环,并执行下一次循环,而break跳出整层循环,两者的功能具有明显区别。

如果一段代码中包含continue语句,循环执行至continue处时,先忽略本次循环,在本层仍满足条件的剩余循环次数中继续执行,不会终止这一层循环。实际上,如果在某一层的每次循环中都使用continue语句,就相当于使用break语句。

打印一个数表,要不打印某些指定的数字,或只打印某类数,就可以使用continue语句跳过一些循环次数,该语句在for循环和while循环中都可以自由地使用,如代码清单10所示。

  • 代码清单10:continue语句用于循环结构
# 当i等于1或3时,跳过continue后的print语句	
for i in range(0,5):	if i == 1 or i == 3:	continue	print(i)
输出结果:
0	
2	
4
# 如果遇到偶数,跳过continue后的print语句	
counts = 0	
while counts < 10:	counts += 1	if counts % 2 == 0:	continue 	print(counts)
输出结果:
1	
3	
5	
7	
9 
break语句一旦用于嵌套循环中的第n层,该层循环会被终止,但在执行第n-1层循环时,仍会创造一个第n层循环并执行。continue语句同样如此,只是仍会执行某一层的剩余部分。因此,无论使用哪种循环终止语句,都只会影响使用终止语句的那一层循环,而不会干扰到其他层。continue语句用于循环的例子如代码清单11所示。

  • 代码清单11:continue语句用于嵌套循环结构
# 第1层循环,遍历次数为2	
for i in range(2):	print("-----%d-----" %i)	
# 第2层循环,遍历次数为5	for j in range(5):	
# 当j等于2或4时,不执行循环体	if j == 2 or j == 4:	continue	print(j)
输出结果:
-----0-----	
0	
1	
3	
-----1-----	
0	
1	
3

3. pass

pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。pass语句并非循环或者条件语句的一部分,但与break、continue在代码形式上有些类似。

使用pass语句遍历输出str及数值计算,如代码清单12所示。

  • 代码清单12:pass语句
for element in "Python":	
# element为y时,不做任何操作,不会被输出	if element == "y":	pass	else:	print(element)
输出结果:
P	
t	
h	
o	
n
counts = 0	
while counts < 5:	counts += 1	
# i=3时,不执行循环体	if counts == 3:	pass	else:	print(counts ** 2)
输出结果:
1	
4	
16	
25 
从代码清单12可以看到,Python在“P”和“t”之间占位,当循环遍历到“y”时不做任何操作;当i等于3时,幂运算不执行,但不影响其他数值。上述两个代码如果在pass的位置缺失,程序将无法执行,因为判断条件没有给出相应的执行语句,会导致逻辑出错。使用pass语句占位,一方面为了让程序正常执行,另一方面也是为了方便以后补充操作语句。

04 列表推导式

推导式是可以从一个数据序列构建另一个新的数据序列的结构体,能够非常简洁地构造新的变量。列表推导式是其中最常用的类型。

列表推导式又称为列表解析式,是Python迭代机制的一种应用,也是一种高效创建列list的方式,可以动态地创建list。由于列表推导式必须用到遍历循环,因此属于一种特殊的循环。

使用列表推导式时,需要将推导式写在[]中。list中的元素可以来源于其他类型序列、可迭代对象或自建的满足一定条件的序列。使用列表推导式的好处是代码更加简洁,实现效率更高。

列表推导式的基本语法格式如下:
[操作语句 for变量 in 序列 if 条件表达式]    

列表推导式常用的参数及其说明如下所示:

  • 操作语句:接收操作语句,表示执行一段代码。无默认值
  • 序列:接收序列,表示遍历范围。无默认值
  • 条件表达式:接收布尔表达式,表示判断条件是否成立。无默认值

列表推导式可以不包含条件表达式,只做遍历,生成list,如代码清单13所示。

  • 代码清单13:使用列表推导式生成list
vec = [-4, -2, 0, 2, 4]	
# 用vec中元素的倍数,创建一个数组	
print([x * 2 for x in vec])
输出结果:
[-8, -4, 0, 4, 8]
# 创建一个包含2元tuple的list	
print([(x, x ** 2) for x in range(6)])    

输出结果:
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]    

在代码清单13中,除了列表推导式的简单形式,还说明了列表推导式中可以使用多样的函数和变量类型。另外,列表推导式中也可以包含条件语句,如代码清单14所示。

  • 代码清单14:包含条件语句的列表推导式
# 过滤list,删除list中的负数	
print([x for x in vec if x >= 0])
输出结果:
[0, 2, 4]

列表推导式最大的优点还是简洁,这需要与常规的编程方式进行对比。如代码清单15所示,要创建一个平方数组成的list,这里的两种方式是等价的,但列表推导式的方式显然代码更加简洁。

  • 代码清单15:常规方式与列表推导式对比
# 创建一个平方数list:常规方式	
squares = [] 	
for x in range(10): 	squares.append(x ** 2) 	
print(squares)
输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 创建一个平方数list列表推导式	
squares = [x ** 2 for x in range(10)] 	
print(squares)  
输出结果:

列表推导式中同样可以实现嵌套循环,如代码清单16所示。

  • 代码清单16:包含嵌套循环的列表推导式

输出结果:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 打印由tuple组成的list,i在0至2之间且小于1,j在0至2之间且大于1	
[(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
输出结果:
[(0, 2)]

代码清单16所示的列表推导式将两个不同list中的元素整合到了一起。列表推导式中包含一对括号,在括号中有一个表达式,表达式后面紧跟一条for语句,然后是零条或多条for语句或if语句。通过for语句和if语句计算出表达式,结果作为新list的元素。

(*本文为AI科技大本营转载文章,转载联系作者)

精彩推荐


【结果提交倒计时】PV,UV流量预测算法大赛,结果提交截止时间为9月20日,还没有提交的小伙伴抓紧时间了~~9月25日公布初赛成绩。最新排行榜请扫码查看。

推荐阅读

  • dfuse、慢雾科技、MYKEY共同出席,与你探讨区块链数据架构和项目上链那些事!

  • 大数据工程师手册:全面系统的掌握必备知识与工具

  • 演讲实录:知乎算法团队负责人孙付伟:Graph Embedding在知乎的应用实践

  • NASNet:神经架构搜索网络在图像分类中的表现

  • 实操 | 从0到1教你用Python来爬取整站天气网

  • 5大必知的图算法,附Python代码实现

  • 我们到底该如何看待6G?

  • 互联网大佬为什么爱唱歌

  • 惊呆!这辆悍马自己在跑跑跑跑跑跑跑!

640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

相关文章:

Intel TBB简介及在Windows7 VS2013上源码的编译过程

Intel TBB(Intel Threading Building Blocks)是Intel线程构建块开源库&#xff0c;它的License是Apache 2.0.Intel TBB是一种用于并行编程的基于C语言的框架&#xff0c;它是一套C模板库。它提供了大量特性&#xff0c;具有比线程更高程度的抽象。Intel TBB可以在Windows、Linu…

react中ref的使用

在react中获取真实dom的时候就需要用到ref属性&#xff0c;具体使用如下 var MyComponent React.createClass({handleClick: function() {console.log(this.input)},render: function() {return (<div><input type"text" ref{(input) > {this.input in…

Caffe源码中blob文件分析

Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件&#xff0c;这里介绍下include/caffe/blob.hpp文件的内容&#xff1a;1. Include文件&#xff1a;(1)、<caffe/common.hpp>&#xff1a;此文件的介绍可以参考&#xff1a;http://…

jQuery之替换节点

如果要替换节点&#xff0c;jQuery提供了两个方法&#xff1a;replaceWith()和replaceAll()。 两个方法的作用相同&#xff0c;只是操作颠倒了。 作用&#xff1a;将所有匹配的元素都替换成指定的HTML或者DOM元素。&#xff08;摘自《锋利的jQuery(第二版)》P72&#xff09; 基…

比特大陆发布第三代AI芯片,INT8算力达17.6Tops

9月17日&#xff0c;福州城市大脑暨闽东北信息化战略合作发布会在数字中国会展中心隆重召开。本次发布会上&#xff0c;比特大陆正式推出了第三代AI芯片BM1684&#xff0c;同时也宣布BM1684将作为底层算力&#xff0c;赋能福州城市大脑&#xff0c;助力数字福州、数字中国的建设…

在 Azure 网站上使用 Memcached 改进 WordPress

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 和 Windows Azure 网站开发人员体验合作伙伴共同撰写。 您是否希望改善在 Azure 网站服务上运行的 WordPress 网站的性能&#xff1f;如果是&#xff0c;那么您就需要一个可帮助加快您…

Caffe源码中io文件分析

Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件&#xff0c;这里介绍下include/caffe/util/io.hpp文件的内容&#xff1a;1. include文件&#xff1a;(1)、<google/protobuf/message.h>&#xff1a;关于protobuf的介绍可以参考&…

DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现

作者 | Jesus Rodriguez译者 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】近几年&#xff0c;深度强化学习&#xff08;DRL&#xff09;一直是人工智能取得最大突破的核心。尽管取得了很多进展&#xff0c;但由于缺乏工具和库&#xff0c;DRL 方法仍…

seq2seq

链接&#xff1a; https://blog.csdn.net/wuzqchom/article/details/75792501 转载于:https://www.cnblogs.com/yttas/p/10631442.html

vip能ping通,但80不通的解决方法

最近遇到一个很奇怪的问题&#xff0c;在做两台服务器负载均衡的时候&#xff0c;vip已经添加了&#xff0c;而且能ping通了&#xff0c;但是页面访问不了&#xff0c;也就是说80端口一直不通&#xff0c;ipvsadm -lnc查看链接状态全部是SYN_RECV。网上找了好长时间&#xff0c…

OpenCV中imread/imwrite与imdecode/imencode的异同

OpenCV中的cv::imdecode函数是从指定的内存缓存中读一幅图像&#xff0c;而cv::imencode是将一幅图像写进内存缓存中。cv::imread是从指定文件载入一幅图像&#xff0c;cv::imwrite是保存一幅图像到指定的文件中。cv::imread和cv::imdecode内部都是通过ImageDecoder类来进行图像…

奖金+招聘绿色通道,这一届算法大赛关注下?

大赛背景伴随着5G、物联网与大数据形成的后互联网格局的逐步形成&#xff0c;日益多样化的用户触点、庞杂的行为数据和沉重的业务体量也给我们的数据资产管理带来了不容忽视的挑战。为了建立更加精准的数据挖掘形式和更加智能的机器学习算法&#xff0c;对不断生成的用户行为事…

Linux文件属性

文件属性和权限 [rootdaf root]# ls -al total 64 drwxr-x--- 4 root root 4096 Feb 14 22:02 . drwxr-xr-x 23 root root 4096 Feb 16 13:35 .. -rw-r--r-- 1 root root 1210 Feb 10 06:03 anaconda-ks.cfg -rw------- 1…

Caffe源码中layer文件分析

Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件&#xff0c;这里介绍下include/caffe/layer.hpp文件的内容&#xff1a;1. include文件&#xff1a;(1)、<caffe/blob.hpp>&#xff1a;此文件的介绍可以参考&#xff1a;http://b…

全球首个软硬件推理平台 :NVDLA编译器正式开源

作者 | 神经小姐姐来源 | HyperAI超神经&#xff08;ID:HyperAI&#xff09;【导读】为深度学习设计新的定制硬件加速器&#xff0c;是目前的一个趋势&#xff0c;但用一种新的设计&#xff0c;实现最先进的性能和效率却具有挑战性。近日&#xff0c;英伟达开源了软硬件推理平台…

【leetcode】1018. Binary Prefix Divisible By 5

题目如下&#xff1a; Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a binary number (from most-significant-bit to least-significant-bit.) Return a list of booleans answer, where answer[i]is true if and only …

php中magic_quotes_gpc对unserialize的影响

昨天朋友让我帮他解决下他网站的购物车程序的问题&#xff0c;程序用的是PHPCMS&#xff0c;换空间前是好的&#xff08;刚换的空间&#xff09;&#xff0c;具体问题是提示成功加入购物车后跳转到购物车页面&#xff0c;购物车里为空。 我看了下代码&#xff0c;大致的原理就是…

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)

作者 | 黄浴转载自知乎专栏自动驾驶的挑战和发展【导读】上周&#xff0c;我们在激光雷达&#xff0c;马斯克看不上&#xff0c;却又无可替代&#xff1f;》一文中对自动驾驶中广泛使用的激光雷达进行了简单的科普&#xff0c;今天&#xff0c;这篇文章将各大公司和机构基于激光…

Caffe源码中Pooling Layer文件分析

Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件&#xff0c;这里介绍下include/caffe/vision_layers文件中PoolingLayer类&#xff0c;在最新版caffe中&#xff0c;PoolingLayer类被单独放在了include/caffe/layers/pooling_layer.hpp文件中…

手持终端以物联网的模式

近年来&#xff0c;物联宇手持终端以物联网的模式&#xff0c;开启了信息化的管理模式&#xff0c;迸发了新的自我提升和业务新商机。手持终端是一款智能的电子设备&#xff0c;它的核心功能为用户速带来业务效率的提升&#xff0c;如快递行业&#xff0c;每天的工作量需求大&a…

Linux系统基础-管理之用户、权限管理

Linux用户、权限管理一、如何实现"用户管理"1.什么是用户 "User" : 是一个使用者获取系统资源的凭证&#xff0c;是权限的结合&#xff0c;为了识别界定每一个用户所能访问的资源及其服务的。只是一种凭证。会有一个表示数字&#xff0c;计算机会首…

Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤

(1)、查看是否已安装ruby&#xff0c;执行命令&#xff0c;如下图&#xff0c;可见机子上还没有安装ruby&#xff0c;即使通过apt-get install命令安装也只能安装1.8版本&#xff1b;(2)、从 http://www.ruby-lang.org/en/downloads/ 下载最新稳定版2.4即ruby-2.4.0.tar.gz&a…

图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务

AI科技大本营消息&#xff0c;9月17日&#xff0c;图森未来宣布获得1.2亿美元的D2轮投资&#xff0c;并完成总额为2.15亿美元的D轮融资。D2轮的投资方除了此前已宣布的UPS外&#xff0c;还包括新的投资方鼎晖资本&#xff0c;以及一级供应商万都&#xff08;Mando Corporation&…

中国互联网公司开源项目调研报告

近年来&#xff0c;开源技术得到越来越多的重视&#xff0c;微软收购GitHub、IBM收购红帽&#xff0c;都表明了开源的价值。国内公司也越来越多的参与开源&#xff0c;加入开源基金会/贡献开源项目。但是&#xff0c;它们到底做得如何呢&#xff1f;为此InfoQ统计了国内在GitHu…

ReSharper 配置及用法

1:安装后&#xff0c;Resharper会用他自己的英文智能提示&#xff0c;替换掉 vs2010的智能提示&#xff0c;所以我们要换回到vs2010的智能提示 2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢&#xff1f;我是使用re的快捷键 3: Resharper安装后&#xff0c;会做…

Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤

Ubuntu14.04 LTS中默认的gcc/g版本为4.8.4&#xff0c;如下图&#xff0c;在C11中增加了对正则表达式的支持&#xff0c;但是好像到gcc/g 4.9.2版本才会对正则表达式能很好的支持&#xff0c;这里介绍下Ubuntu14.04 LTS升级gcc/g版本到4.9.4的操作步骤&#xff1a; 1&#xff0…

华为全球最快AI训练集群Atlas 900诞生

作者 | 胡巍巍来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;你&#xff0c;和计算有什么关系&#xff1f;早上&#xff0c;你打开手机App&#xff0c;查看天气预报&#xff0c;和计算有关&#xff1b;中午&#xff0c;你打开支付宝人脸支付&#xff0c;买了份宫保…

rabbitmq可靠发送的自动重试机制 --转

原贴地址 https://www.jianshu.com/p/6579e48d18ae https://www.jianshu.com/p/4112d78a8753 git项目代码地址 https://github.com/littlersmall/rabbitmq-access 转载于:https://www.cnblogs.com/hmpcly/p/10641688.html

在Linux下如何安装配置SVN服务

2019独角兽企业重金招聘Python工程师标准>>> Linux下在阿里云上架一个svn centos上安装&#xff1a;yum install subversion 安装成功 键入命令 svnserve --version 有版本信息则进行下一步 1、新建版本库目录 mkdir -p /opt/svndata/repos 2、设置此目录为…

201671030129 周婷 《英文文本统计分析》结对项目报告

项目内容这个作业属于哪个课程软件工程这个作业的要求在哪里软件工程结对项目课程学习目标熟悉软件开发整体流程及结对编程&#xff0c;提升自身能力本次作业在哪个具体方面帮助我们实现目标体验组队编程&#xff0c;体验一个完整的工程任务一&#xff1a; 作业所点评博客GetHu…