循环语法循环结构循环结构是一种使用while和for循环语句的结构,可以减少冗余代码,提高代码效率。while循环,while循环中if的使用基本相同,while后使用表达式。如果表达式为真,while循环代码块的作用域会被重复执行,每次执行完都会重新判断while表达式,重复上述步骤,直到表达式为假;如果一开始是false,直接跳过。whileexpression:code0code1...#输出1~~100的数,并计算它们的和num=1#数sum_up=0#计算count=100#循环次数whilecount:#确定count的值,如果为0,跳出循环print(num)#输出数sum_up+=num#计算它们的和num+=1#增加数count-=1#减少次数print('sum:',sum_up)#循环结束,输出它们和死循环只要while循环的条件表达式一直为真,对应的作用域就会一直执行,不能跳出,形成死循环。无限循环时,循环跳不出来,循环语句后面的代码也不会执行。whileTrue:print('无限循环')print('跳出循环')#永远跳不出循环的关键字的使用先说三个很重要的关键字:pass,break,continuepass表示pass和placeholder.它是一个空语句,没有意义,不会做任何事情,只是占据一些必要的位置,以保持程序结构的完整性。注意区分None和pass的区别。None表示没有,但也表示Boolean为假;而传球根本没有任何意义,只是为了占据一些位置和放置失误。更多情况下,use是在程序开发中使用的,正式上线时很难看到这个关键字。#代码块中必须有作用域,否则会报错,但是我现在什么都不想执行,怎么办?ifTrue:pass#使用pass占位符whileTrue:pass#使用pass占位符break只能用在循环语句中,比如while,for,只要出现这个关键字,就会立即中断循环,跳出循环,在循环范围内未执行的代码不会被执行,即使循环语句的条件表达式还不为假,也会立即停止执行。count=10whilecount:count-=1ifcount==6:breakprint(count)'''result:987'''continue只能用在循环语句中,注意和break的区别,continue是跳过当前循环语句,然后继续执行循环。count=10whilecount:count-=1ifcount==6:continueprint(count)'''result:987543210'''for循环语句作用于循环、遍历、迭代。for循环的主要作用是遍历可迭代对象。将可遍历的iterable对象中的数据元素逐一提取出来,然后执行代码块中的代码,直到遍历结束。遍历类型的可迭代对象:容器类型数据、range()函数、迭代器。#for……中间的变量是可迭代对象中的元素数据。forvariableiniterableobject:code2code1...#遍历一个容器中的数据,所有容器都是可迭代对象dictionary={'one':1,'two':2,'three':3}foriindctvar:print(i)'''result;onetwothree'''遍历多级容器,我们将需要使用嵌套for循环var=[[1,2,3,4,5],[12,34,56,67,84,55]]foriinvar:forjini:print(j)variableUnpacking对于容器,我们可以直接使用相同长度的变量直接提取容器中的数据。#所有容器都支持a,b,c,d,e='hello'print(a,b,c,d,e)a,b=['hello','motherland']print(a,b)a,b={'one':1,'two':2}#解包字典得到字典的keyprint(a,b)'''result:hellohellomotherlandonetwo'''这样遍历就平等多了length容器调平时,可以利用变量拆包的特性快速遍历容器,尽量避免循环嵌套,因为循环嵌套非常消耗计算机资源。var=[[1,2,3,4,5],[12,56,67,84,55]]fora,b,c,d,einvar:print(a,b,c,d,e)'''Result:123451256678455'''range()objectrange函数是一个可迭代的对象,可以按顺序返回一些数字,配合for可以简化一些复杂的工作。Syntax:range([start_number],stop_number,step_number)range([startvalue],endvalue,[stepsize])range的三个参数都是整数,range输入参数有3种方式,分别是表示结束值,返回结果为0~~N-1foriinrange(5):print(i)'''result;01234'''输入两个参数,第一个参数S为起始值,第二个参数N为结束值,返回S~~N-1。foriinrange(-3,2):print(i)'''result:-3-2-101'''输入三个参数,第三个参数表示步长,表示值按照步长按顺序返回的大小。#从2开始,数字增加3,默认为1foriinrange(2,10,3):print(i)'''result:258'''reciprocalforiinrange(5,0,-1):print(i)'''Result:54321'''总结while循环一般用在比较浮躁的逻辑中;for循环一般用于数据遍历。但是他们两个之间的本质是一样的。
