沐枫凌-python 新手教学(6)--循环

上一节我给大家讲了条件判断,不知道大家有没有多去试试手?

没有试手也没有关系,因为这一节我将会给大家讲python的循环,讲了循环之后,大家就可以开始自己编写一些简单的程序了!

还是那上一节条件判断的图来看看

看上图,大家会很清楚的明白,在程序运行到条件判断的时候,若条件成立,则"输出",否则条回到前面,改变原先的"变量",然后在进行判断,若成立则"输出",若不成立则又跳回到原先……………………

这种条件不成立就重来一遍的程序就可以称之为"循环"

在python的循环中主要有两种循环

                  一种是   while循环        另一种是   for循环

对应的关键字是        while                                for

然后在循环中还配套有两个关键字,分别为     break终止循环     continue结束当前循环,开始下一个循环

我们还是先创建一个新的py文件,要是忘了怎么创建了话可以找到上一节的内容,里面有讲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(字典),我会分四个页面来 一 一呈现,希望大家能从中收获良多!

沐枫凌-python 新手教学(7-1)--列表

猜你喜欢

转载自blog.csdn.net/weixin_42582160/article/details/80882971