上一节我给大家讲了条件判断,不知道大家有没有多去试试手?
没有试手也没有关系,因为这一节我将会给大家讲python的循环,讲了循环之后,大家就可以开始自己编写一些简单的程序了!
还是那上一节条件判断的图来看看
看上图,大家会很清楚的明白,在程序运行到条件判断的时候,若条件成立,则"输出",否则条回到前面,改变原先的"变量",然后在进行判断,若成立则"输出",若不成立则又跳回到原先……………………
这种条件不成立就重来一遍的程序就可以称之为"循环"
在python的循环中主要有两种循环
一种是 while循环 另一种是 for循环
对应的关键字是 while for
然后在循环中还配套有两个关键字,分别为 break终止循环 continue结束当前循环,开始下一个循环
我们还是先创建一个新的py文件,要是忘了怎么创建了话可以找到上一节的内容,里面有讲py文件的创建
下面我见开始为大家讲解循环
while循环
while在python中属于关键字,while可以理解为当………………成立时执行循环,当………………不成立时终止循环
下面直接上例子,大家可以将代码复制运行一次,看看所反映的结果
#这是while循环的代码示例
number = 0 #先设定number变量的值为0
while number <= 10: #当number的值小于等于10时,执行下面的程序
print(number) #打印number的值
number = number +1 #number += 1 也是可以的
下面是结果
0
1
2
3
4
5
6
7
8
9
10
我们可以很清楚的看到,系统将0~10依次输出了
在程序开始的时候,number被赋值为0,然后while进行判断,因为number = 0小于10,所以程序运行了下面的代码
print(number)显示出了当前循环下number的值,然后我们的 新number = 老number + 1,现在number就等于2了
到循环下面的最后时将会回到while的判断代码处,此时number = 2小于10,所以又开始循环……以此类推
直到过完11次循环时,number的值已经成了11大于10了,所以while在判断11<=10时得到的是不成立的条件,因而终止循环
while的格式
while xxxxx: #当xxxxxx条件成立时,执行下面的程序
……………………
……………………
……………………
while和if,elif,else的书写格式一样,在写完条件后要加 : (冒号)
因为下面的程序也是在基于他的条件下运行的,所以也是老套路,往后偏一个TAB
while的永久循环
如果按照上面所讲的那样写的话,除非number越来愈小,或者值不变,不然迟早会结束循环,想要永久循环的方法有很多种,下面我 一 一 列举:
while True: #直接给他一个真然后他就可以无限循环下去
………………
………………
a = True #设定变量
while a: #当变量a存在的时候,执行循环(因为你已经设立了a为True,所以a一直存在,所以可以无限循环)
………………
………………
while 1+1==2: #直接给一个弱智的数学判断,成立了就可以无限循环
………………
………………
尽管如此,想要无限循环的话,本人推荐第一个
1.简单 2.减少程序运行时间
for循环
for在python中属于一个关键字,for尽管是一种循环,但是实际上倒不像是专门用来循环的,下面直接上代码
for i in range(10):
print(i)
结果是
0
1
2
3
4
5
6
7
8
9
我来翻译一遍 for i in range(10): ==> 将 i 依次 赋值为 0到9的范围整数
也就是说, i 被依次从0赋值到9(为什么是9而不是10呢,我有说过 range(x)是指从[0,x)的整数吧,范围是左闭右开哦)
为什么要这么用呢?
下面我直接上代码,大家可以复制下来运行一遍试试
for i in '我爱学习!':
print(i)
for i in {12,54,773,4632,123}:
print(i)
import os
all_file = os.listdir(os.getcwd())#返回程序现在正在运行的路径
files = []
for i in all_file:
print(i)
if os.path.splitext(i)[-1]=='.py':
files.append(i)
print(files)#显示所检测到的所有的py文件
所以可见,for循环的的用途比while循环更大,使用的频率也更高
主要的用途可以说是批量的赋值,只不过是每一次循环只能赋一个值
for的格式
for xxx in ………… :
……………………
……………………
……………………
记住了!! for是关键字,in是关键字,两个都不能少,由于下面的程序是基于for循环下运行的,所以 : (冒号)不能少
然后就是,for没有无限循环
break关键字
break属于python中的一个关键字,主要用于配合条件判断(if-elif-else)直接在循环时终止循环,下面是例子
for i in range(10):
print(i)
if i == 8: #当i等于8的时候
print('循环终止')
break #终止循环
下面时结果
0
1
2
3
4
5
6
7
8
循环终止
我们可以看到,程序没有将9打印出来,而是在打印到8的时候直接终止了循环
当然也可以用在while循环上
a = 0
while True: #直接开始循环
print(a)
if a == 10: #当a等于10时执行基于条件下的程序
print('终止循环')
break #终止循环
else: #否则
a += 1 #新a 等于 老a + 1
print('a != 10,所以没有终止循环')
结果
0
a != 10,所以没有终止循环
1
a != 10,所以没有终止循环
2
a != 10,所以没有终止循环
3
a != 10,所以没有终止循环
4
a != 10,所以没有终止循环
5
a != 10,所以没有终止循环
6
a != 10,所以没有终止循环
7
a != 10,所以没有终止循环
8
a != 10,所以没有终止循环
9
a != 10,所以没有终止循环
10
终止循环
总的来说break就是用来直接结束当前循环的
!!!但是,break只能终止掉它存在的循环中,不能终止它存在的循环之外的循环中,例子!!!
times = 1
while True: #直接开始执行大循环
l_times = 1 #在每一轮的大循环的开始都定义这个循环下的l_times的值为1
print('开始大循环的第',times,'个循环')
while True: #直接开始小循环
print('开始小循环的第',l_times,'个循环')
if l_times == 4: #如果l_times等于4则执行基于该条件下的程序
print('结束小循环')
break #结束小循环
l_times += 1 #每一轮运行,都会使 新l_times = 老l_times + 1
if times == 3: #如果times等于3,则执行基于该条件下的程序
print('结束大循环')
break #结束大循环
times += 1 #每一轮的循环都会将 新times = 老times + 1
结果
开始大循环的第 1 个循环
开始小循环的第 1 个循环
开始小循环的第 2 个循环
开始小循环的第 3 个循环
开始小循环的第 4 个循环
结束小循环
开始大循环的第 2 个循环
开始小循环的第 1 个循环
开始小循环的第 2 个循环
开始小循环的第 3 个循环
开始小循环的第 4 个循环
结束小循环
开始大循环的第 3 个循环
开始小循环的第 1 个循环
开始小循环的第 2 个循环
开始小循环的第 3 个循环
开始小循环的第 4 个循环
结束小循环
结束大循环
可以看到,在小循环内的break只终止了小循环,大循环内的break也只能终止大循环!
continue关键字
continue在python是关键字,主要意义就是不执行下面的程序,直接跳到下一个循环,例
for i in range(10): #将i 依次从 0 赋值到 9
if i == 5:
continue
print(i)
下面是结果
0
1
2
3
4
6
7
8
9
我们可以看到,输出结果中少了一个5,那是因为,在i == 5时,条件判断成立,使得其执行了continue,从而直接跳到下一个循环,没有运行print(i)
!!!然后就是,continue和break是一个"个性",就是只作用于自己所处的最小循环中!!!
循环的示例代码
讲了这么多,不知道你们有没有看懂,试试看一看下面的代码吧,要是看懂了,你就可以往后看了
#随机数的循环生成
import random
xrl = 0
while xrl != 8:
xrl = random.randint(0,9)
print('随机数为',xrl,)
if xrl == 8:print("由于随机数是8,程序终止运行!")
#确认公倍数
xrl = {"h":2,"c":3,"f":5,"g":7} #这个要是看不懂的话不用急,下节我会讲!
for n in range(101):
if n % xrl["h"] == 0 and n % xrl["c"] == 0 and n % xrl["f"] == 0 and n % xrl["g"] == 0:
print(n,"是2,3,5,7的倍数")
elif n % xrl["h"] == 0 and n % xrl["c"] == 0 and n % xrl["f"] == 0 and n % xrl["g"] == 0 and n == 0:
print(n,"在数学中不属于该范围")
else:
print(n,"不都是2,3,5,7的倍数")
好了,讲了这么多,希望你们都看懂了,还是要多实战才能成长!
下一节我将会讲python的List(列表),Tuple(元组),Sets(集合),Dict(字典),我会分四个页面来 一 一呈现,希望大家能从中收获良多!