带你走进 @ 机器人时代
Discover 点击上面蓝色文字,关注我们
Python循环中其实就是两种循环命令,看起来简单,要用好得要仔细研究一下,我们来看看第一种while循环的使用:
# while循环的用法
n = 1
# 当 n 小于5时会一直循环
while n <= 5 :
print("n=", n)
n += 1
print("循环结束!")
运行结果:
n= 1
n= 2
n= 3
n= 4
n= 5
循环结束!
看起来是不是很简单?我们再来看看另外一种循环:
#for循环的用法
for i in (1,2,3,4,5):
print(i)
运行结果:
1
2
3
4
5
是不是秒懂?
有时候,看起来越简单的东西功能越强大,我们来看看更多的应用:
a=0
for i in range(101):
a+=i
print('1+2+...+100的结果是: ',a)
运行结果:
1+2+...+100的结果是: 5050
Python为我们提供了一种功能更加强大的写法,如果我们想逐行打印1-5的平方:
[print(i*i) for i in range(1,6)]
运行结果:
1
4
9
16
25
一行代码搞定!这就是Python比较强大的列表推导式,它同样支持双重循环:
#简化前的写法:
d = []
for x in range(3):
for y in range(2):
d.append((x, y))
print('未简化的程序输出:')
print(d)
#简化后的写法:
print('列表推导式的输出:')
print([(x,y) for x in range(3) for y in range(2)])
运行结果:
未简化的程序输出:
[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
列表推导式的输出:
[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
看起来是不是很高级?还可以加入if语句,我们来看一个例子:
#将可以整除的数字配对
s= [30, 12, 66, 34, 39, 78, 36, 57, 121]
b = [3, 5, 7, 11]
# 只要y能整除x,就将它们配对在一起
r = [(x, y) for x in b for y in s if y % x == 0]
print(r)
运行结果:
[(3, 30), (3, 12), (3, 66), (3, 39), (3, 78), (3, 36), (3, 57), (5, 30), (11, 66), (11, 121)]
如果采用传统的写法是这样的:
#将可以整除的数字配对
s= [30, 12, 66, 34, 39, 78, 36, 57, 121]
b = [3, 5, 7, 11]
r=[]
for x in b:
for y in s:
# 只要y能整除x,就将它们配对在一起
if y%x==0:
r.append((x,y))
print(r)
运行结果:
[(3, 30), (3, 12), (3, 66), (3, 39), (3, 78), (3, 36), (3, 57), (5, 30), (11, 66), (11, 121)]
可以看出,列表推导式是一种非常先进的写法。
那么,for循环如何遍历字典呢?我们来看看:
#遍历字典
d={'张三': 11, '李四': 12, '王五': 13}
n = {print(x,y) for x,y in d.items()}
运行结果:
张三 11
李四 12
王五 13
这里可以看出,遍历字典的时候,我们需要两个变量,一个用来读取键,另一个用来读取键值。当然根据需要,也可以只读取其中一项。
值得注意的是,我们可以使用while和for来进行嵌套实现某些功能:
#循环嵌套
i = 0
while i<3: printi=',i,' j=',j) for j in range(2)] i=i+1 运行结果: i= 0 j= 0 i= 0 j= 1 i= 1 j= 0 i= 1 j= 1 i= 2 j= 0 i= 2 j= 1
在计算机编程中,有一种重要的算法,叫冒泡排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。
我们来看一段代码,利用双重循环来实现冒泡排序的效果:#实现冒泡排序 n = [2,4,1,3] for i in range(len(n)-1): for j in range(len(n)-i-1): if(n[j]>n[j+1]): #两个元素比较,根据结果交换 n[j],n[j+1] = n[j+1],n[j] print("排序后:",n) 运行结果: 排序后:[1, 2, 3, 4]
在编写循环代码的过程中,难免会遇到不小心弄成死循环的局面。虽然在调试的过程中,可以使用‘Ctrl+C’来中断程序运行,但正式发布时会造成程序的崩溃,因此,我们需要在适当的地方跳出循环,或者跳出进行下一次循环。
我们来看看break命令与continue命令的使用方法:
#将两个网址逐行打印,遇到$符号就中止 a = "https://www.baidu.com/,https://www.toutiao.com$这句话不要" # 一个简单的for循环 for i in a: if i == ',' : # 碰到逗号换行,跳转到下一次循环 print('\n下一个网址:') continue if i=='