循环语法
循环构造
循环构造是应用while
、for
循环语句的构造,能够缩小冗余代码,晋升代码的效率。
while 循环
while
循环,while
循环的应用if
的基本相同,在while
之后应用表达式,如果表达式为真,就会重复执行while
循环代码块的作用域,每执行完一次就从新判断while
的表达式,真就反复上述步骤,直到表达式为假才会跳出;如果一开始就是假,间接跳过。
while expression: code0 code1 ...
# 输入1 ~~ 100 的数字,并计算出它们的和num = 1 # 数字sum_up = 0 # 计算和count = 100 # 循环的次数while count: # 判断count的值,如果为0就跳出循环 print(num) # 输入数字 sum_up += num # 计算他们的和 num += 1 # 数字自增 count -= 1 # 次数自减print('和:', sum_up) # 循环完结,输入他们的和
死循环
只有while循环的条件表达式始终为真,相应的作用域就会始终执行,无奈跳出,造成死循环。死循环时循环无奈跳出,循环语句之后的代码也不会执行。
while True : print('死循环')print('跳出循环') # 永远无奈跳出循环
关键字的应用
咱们来讲三个很重要的关键字:pass
、break
、continue
pass
意思是过、占位符。自身是个空语句,没有任何含意,不会做任何的事件,只是为了放弃程序结构的完整性二占据一些必要的地位。
要留神辨别None
和pass
的区别,None
的意思是什么都没有,然而也一层布尔为假的含意;而pass
是一点意义都没有,只是为了占据一些地位搁置出错而已,更多的状况是用来程序的开发中应用,正式上线是很难看到这个关键字的。
# 代码块中必须有作用域,否则出错,然而我当初不想执行任何货色,怎么办?if True: pass # 应用pass占位while True: pass # 应用pass占位
break
只能用于循环语句当中,比方while
、for
,只有呈现这个关键字,循环立刻中断,并跳出循环,循环作用域中未执行的代码也不会执行,即便是循环语句的条件表达式尚未为假,也会立即进行执行。
count = 10while count: count -= 1 if count == 6: break print(count)'''后果:987'''
continue
只能用于循环语句当中,留神和break
的区别,continue
是跳过以后的循环语句,而后持续循环的执行。
count = 10while count: count -= 1 if count == 6: continue print(count)'''后果:987543210'''
for循环语句
作用
循环、遍历、迭代。for循环的次要作用是能够遍历迭代可迭代对象。将遍历可迭代对象中的数据元素此一个一个顺次提取进去,而后执行代码块中的代码,直到遍历完结。
遍历类型
可迭代对象:容器类型数据、range()函数、迭代器。
# for …… in 两头的变量是可迭代对象中的元素数据。for 变量 in 可迭代对象: code2 code1 ...
# 将一个容器中的数据遍历进去,所有的容器都是可迭代对象container = 'hello motherland'for i in container: print(i)
遍历字典只会遍历出字典的键
dctvar = {'one': 1, 'two': 2, 'three': 3}for i in dctvar: print(i)'''后果;onetwothree'''
遍历多级容器,咱们就须要嵌套应用for循环
var = [[1, 2, 3, 4, 5], [12, 34, 56, 67, 84, 55]]for i in var: for j in i: print(j)
变量的解包
对于容器,咱们能够间接应用等同长度数量的变量间接将容器中的数据提取进去。
# 所有容器都反对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} # 解包字典获取的是字典的键print(a, b)'''后果:h e l l ohello motherlandone two'''
所以遍历等长的多级容器的时候就能够利用变量的解包这一个性,疾速遍历容器,尽量的防止循环的嵌套应用,因为循环嵌套是非常耗费计算机资源的。
var = [[1, 2, 3, 4, 5], [12, 56, 67, 84, 55]]for a, b, c, d, e in var: print(a, b, c, d, e)'''后果:1 2 3 4 512 56 67 84 55'''
range()对象
range函数是一个可迭代对象,能够依照程序返回一些数字,能够配合for将一些简单的工作简化。
语法:
range([start_number], stop_number, step_number)
range([开始值], 完结值, [步长])
range的三个参数都是整型数字,range有三种应用办法
输出一个参数,这个参数示意完结值,返回的后果是
0 ~~ N-1
for i in range(5): print(i)'''后果;01234'''
输出两个参数,第一个参数S是开始值,第二个参数N是完结值,返回
S ~~ N-1
。for i in range(-3, 2): print(i)'''后果:-3-2-101'''
输出三个参数,第三个参数示意步长,意思是数值的增长依照步长的大小来顺次返回。
# 从2开始,数字依照3来增长,默认是1for i in range(2, 10, 3): print(i)'''后果:258'''
倒数
for i in range(5, 0, -1): print(i)'''后果:54321'''
总结
while
循环个别应用再较为塌实的逻辑当中;for
循环个别就是用于数据的遍历。然而它们两个之间的实质是雷同的。