从零开始学Python-Day11-循环

Python零基础 木人张 7个月前 (03-17) 99次浏览 0个评论 扫描二维码
文章目录[隐藏]

循环指令与上一节提到的条件判断指令相结合是编程思维最基础的思维方式。

循环

一个简单的问题,从1加到10000,怎么表示?从不能一个一个去加,这时候就需要用到循环语句。Python提供了两种循环for…in循环和while循环

for…in循环

下面的例子中,names是一个有序的list,for…in的作用,就是拿name这个量循环有序的从list中取值,然后执行后面缩进的指令。这里list也可以是一个tuple元组,for…in语句结束记得:结束,下一行缩进输入要执行的指令。

>>> names = ['张三','李四','王五']
>>> for name in names:
	print(name)

张三
李四
王五

我们要做一个1+到10的和,可以用sum这个变量做累加,如下,x循环有序的从list中取值,在每次取到值后累加进sum并循环下去:

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)

回到最开始说的从1加到10000,看上面的例子那是不是我们还要生写一个list包含这么多数字?Python提供了一个range()函数,可以生成一个从0开始的整数序列:

>>> list(range(5))
[0, 1, 2, 3, 4]

那么1到10000就是range(10001),最开始的问题就可以解决了:

>>> sum = 0
>>> for x in range(10001):
	sum = sum+x

>>> print(sum)
50005000

如果这里最后一个print忘了另起行,直接写在在缩进的sum下面就表明print动作是循环的一部分,会每一步都输出一个结果,如下:

>>> sum = 0
>>> for x in range(5):
	sum=sum+x
	print(sum)

while循环

第二种循环while循环,条件满足就循环,条件不满足就打破循环到下一个代码块。还是之前的问题,用while循环改怎么解决:

>>> sum = 0
>>> n =10000
>>> while n > 0:
	sum = sum + n
	n = n - 1

>>> print(sum)
50005000

在上面的循环内,n从10000每次-1再循环,直到n减到0,不再满足n>0的条件,循环结束

break打断

当符合条件时,可以用break语句打断循环,将循环提前结束。

>>> n = 1
>>> while n <= 10:
	print(n)
	n = n + 1

1
2
3
4
5
6
7
8
9
10

上面这个例子是用来循环打印1~10的数字,当我们增加条件,只打印到5,可以这么做:

>>> while n <= 10:
	if n >5:
		break
	print(n)
	n = n + 1

1
2
3
4
5

continue继续

在循环的进程中,可以用continue,跳过当前循环,进入下一次循环,下面的例子是从1输出到10

>>> while n < 10:
	n = n + 1
	print(n)

1
2
3
4
5
6
7
8
9
10

那如果我们想列出所有偶数呢?如下:我们在while的循环块内增加一个if条件,当n除以2余数不为零,也就是说n当前是个奇数,continue跳过当次循环,不执行该循环块下面的print指令,返回循环最开始,判断是否n<10

>>> n=0
>>> while n<10:
	n=n+1
	if n%2!=0:
		continue
	print(n)

2
4
6
8
10

需要注意的是,不要滥用break和continue,这两种语句容易造成逻辑关系层级太多混淆,极容易出错造成死循环等情况。


木人张,版权所有丨如未注明 , 均为原创,禁止转载。
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址