1.1 循环概念 ⼴义:⼀个周期现象或者重复出现的情况,这种状态被称为循环 狭义:在满⾜条件的情况下,反复执⾏某⼀段代码,在编程语⾔中出现的这种 现象被称为循环。被反复执⾏的这段代码被称为循环体 当反复执⾏某段代码时,需要在合适的时机将循环停⽌下来,否则会产⽣死循 环 Python中提供的循环语句:while语句,for-in语句
1.2 使⽤ 1.2.1 while语法
while 表达式: 循环体⼯作原理:遇到while语句时,⾸先计算表达式的值,如果表达式的值为假, 则跳过整个while语句,继续执⾏下⾯的代码;如果表达式的值为真,则执⾏ 循环体
# 计算1-100的和 sum1 = 0 i = 1 while i <= 100: sum1 += i i += 1 print(sum1,i)1.2.2 while-else
while 表达式: 循环体 else: 【else语句块】 i = 0 while i < 100: print("hello world") if i > 50: break i += 1 else: print("循环正常结束") #说明:当while语句执⾏完成之后,执⾏【else语句块】,如果⽤break跳出循环则 不执⾏else1.2.3死循环 在循环语句中,表达式永远为真的循环
while True: #循环体 while 1: #循环体1.2.4 while语句的嵌套
while 条件1: #外层循环 【语句块A】 while 条件2: #内存循环 【语句B】执⾏流程:⾸先判断外层循环的条件1,如果为真,则执⾏循环体中的【语句块 A】,执⾏内层循环,判断条件2是否成⽴,如果成⽴,执⾏内层循环的【语句块 B】,执⾏完内层循环后,重新判断外层循环条件…
特点:外层循环⾛⼀步,内层循环执⾏⼀遍外层循环和内层循环的循环变量必须不同 演示: 打印九九乘法表 #⾏数 i = 1 while i <= 9: # 打印每⾏的内容 j = 1 # 内循环必须完全嵌⼊到外重循环⾥ while j <= 9: print("%d * %d = - "%(i,j,i*j),end='') j += 1 print() i += 11.3. break和continue、exit()
continue 语句⽤来跳过当前循环的剩余语句,然后重新判断循环条件,开启下⼀ 轮循环。continue只能出现在while和for循环中 break⽤于结束当前循环。只对当前这⼀重循环起作⽤。break只能出现在循环中 exit()结束程序
#求最⼤公约数 #12和8最⼤公约数 min1 = min(12,8) i = min1 while i > 0: if 12 % i == 0 and 8 % i == 0: break # 退出当前这⼀重循环 i -= 1 print(i) #统计1到100中3的倍数的和 i = 0 sum1 = 0 while i < 101: if i % 3: i += 1 continue # 结束本次循环,从新判断条件,重新执⾏循环体 sum1 += i i += 1 print(sum1)2.for循环的使用 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法: for循环的语法格式如下:
or letter in 'Python': # 第一个实例 print ('当前字母 :', letter) fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二个实例 print ('当前水果 :', fruit) print ("Good bye!")输出结果: 当前字母 : P 当前字母 : y 当前字母 : t 当前字母 : h 当前字母 : o 当前字母 : n 当前水果 : banana 当前水果 : apple 当前水果 : mango Good bye! 2.2通过序列索引迭代
fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)): print ('当前水果 :', fruits[index]) print "Good bye!"以上实例输出结果: 当前水果 : banana 当前水果 : apple 当前水果 : mango Good bye! 2.3关于range函数 Python提供的range函数可以让for循环实现上面的功能,可以让for循环从0到10计数,或者从10到100每次递增5。range函数的语法如下:
range(start, end, step=1) range会返回一个整数序列,statr为整数序列的起始值,end为整数序列的结束值,在生成的整数序列中,不包含结束值。step为整数序列中递增的步长,默认为1。 range(0,5)生成包含0、1、2、3、4的整数序列,Python会把生成的这个整数序列用于for循环语句,循环从0到5,不包括5,步长为1,循环次数为5。
range(10,30,5)生成包含10、15、20、25的整数序列,循环从10到25,不包括30,步长为5,循环次数为4。可以看出,当range用于for循环时,循环次数取决于range返回的整数序列的长度,每次循环的索引计数为整数序列的值。 2.4循环使用 else 语句 在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
for num in range(10,20): # 迭代 10 到 20 之间的数字 for i in range(2,num): # 根据因子迭代 if num%i == 0: # 确定第一个因子 j=num/i # 计算第二个因子 print ('%d 等于 %d * %d' % (num,i,j)) break # 跳出当前循环 else: # 循环的 else 部分 print (num, '是一个质数)以上实例输出结果: 10 等于 2 * 5 11 是一个质数 12 等于 2 * 6 13 是一个质数 14 等于 2 * 7 15 等于 3 * 5 16 等于 2 * 8 17 是一个质数 18 等于 2 * 9 19 是一个质数