循环语句允许执行一个语句或语句组多次,其程序流程图如下:
在python中有三种循环方式:
- while 循环 当判断条件为 true 时执行循环体,否则退出循环体。
- for 循环 重复执行语句
- 嵌套循环 (在while循环体中嵌套for循环)
Python三种循环控制语句:(循环控制语句可以更改语句执行的顺序。)
- break 语句 在执行过程中终止循环,并跳出整个循环 。
- continue 语句 在块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
- pass 语句 是空语句,是为了保持程序结构的完整性。
一、while循环
判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。
1 基础应用
其基本形式为:while 判断条件(condition):执行语句(statements)……
a=1
while a<=10:print(a)a+=1
2 while 与 continue,break,else 连用。
continue 用于跳过该次循环。
break 则是用于退出循环。
两者对比如下:
i = 1
while i < 10:i += 1if i % 3 > 0: # 非3的倍数时跳过输出continueprint(i) # 输出3的倍数
i = 1
while i < 10:i += 1if i % 3 > 0: # 非3的倍数时跳过改循环breakprint(i) # 输出3的倍数
while … else,else 中的语句会在循环正常执行完(即 while不是通过 break 跳出而中断的)的情况下执行
number = 0
while number < 10:print (number, " is less than 10")number = number + 3
else:print (number, " is not less than 5")
3 无限循环(常值循环)
"判断条件"为常值,表示循环一定成立,若没有break或continue,将一直循环下去。
while 1: # 该条件永远为true,循环将无限执行下去num = input("Enter a number :")print( "You entered: ", num)
while 1: # 该条件永远为true,循环将无限执行下去num = input("Enter a number :")print( "You entered: ", num)break
二、For 循环
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
1 基础用法
for iterating_var in sequence:statements(s)
for str in 'happy': # 第一个实例print("str: %s" % str)names = ['lucy', 'lily', 'Jack']
for name in names: # 第二个实例print('name: %s' % name)print("Good bye!")
2 通过序列索引进行遍历
names = ['lucy', 'lily', 'Jack']
for index in range(len(names)):print('name: %s' % names[index])print("Good bye!")
内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。
range()返回一个序列的数。
index() :用来对列表做索引的函数。
str1="this is string example ...wow!"
str2="exam"
print(str1.index(str2))
3 for与else连用
for num in range(1,10): # 迭代 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 ('%d 是一个质数' % num)
三、嵌套循环
顾名思义就是在一个循环体里面嵌入另一个循环。
在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环
1、for 嵌套
格式如下:
for iterating_var in sequence:for iterating_var in sequence:statements(s)statements(s)
使用for 循环实现:获取100以内的质数
num=[];
i=2
for i in range(2,100):j=2for j in range(2,i):if(i%j==0):breakelse:num.append(i)
print(num)
结果如下:
2、while嵌套
格式如下:
while expression:while expression:statement(s)statement(s)
使用了while嵌套循环输出2~100之间的素数。示例如下:
i = 2
while (i < 100):j = 2while (j <= (i / j)): #非素数跑这里if not (i % j): # i % j 为false 跳出breakj = j + 1if (j > i / j): #素数跑到这个print(i, " 是素数")i = i + 1print("Good bye!")
结果如下:
3、for和while循环嵌套
格式如下:(这种结构可以用来解决一些需要逐行或者逐个元素进行操作的问题)
for item in iterable:while condition:#执行操作
逐行读取字符串,示例如下
with open('data.txt','r')as file:#使用相对路径 打开文件for line in file:line=line.strip() #strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。while line:#处理每一行的内容print(line)line = line[1:] #去除第一个字符with open("data.txt", "r") as file: #使用绝对路径 开文件data = file.read() #读取文件print(data)
结果如下:
注意:data.txt要与.py文件放在同一目录下。