定义,在日常生活中很多问题都是无法一次解决的,需要重复的运行才能解决,循环的课i行有两种:
重复一定次数的循环,称为计次循环,如for
一直重复,直到条件不满足时才结束的循环,称为条件循环。只要条件为真,这种循环会一直持续下去,如while循环。
一、while循环
定义:while循环是通过一个条件控制是否继续反复执行循环体的语句。语法如下:
while 条件表达式:
循环体 #循环体是一组被重复执行的语句
当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重复判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
例:
print("a\n")
none = True
number = 0
while none :
number += 1
if number % 3 == 2 and number % 5 == 3 and number % 7 == 2 and number % 1119 == 2:
print(number, "符合条件")
none = False
二、for循环
定义:for循环是一个计次循环,一般应用在循环次数已知的情况下。通常适用于枚举或遍历序列,以及迭代对象的元素。语法如下:
for 迭代变量 in 对象:
循环体
1、数值循环
其中迭代变量用于保存读取的值:对象为要遍历或迭代的对象,该对象可以是任何有序列的序列对象,如字符串、列表和元组等:循环体为一组重复执行的语句。
例:
print("计算1+2+3+。。。100") result = 0 #保存累加结果的变量 for i in range(101): #range 输出连续的整数 (start 起始值(可以省略,默认0),end 结束值(不能省略,不包括),step(步长,两个数之间的距离)) result +=i #实现累加 print(result)
上面的代码使用了range()函数,该函数是python内置函数,用于生成一系列连续的整数,多用于for循环语句中,语法如下:
range(start,end,step)
start:用于指定计数的起始值,可以省略,如果省略则从0开始;
end:用于指定计数的结束值,该值不包含在内,且不能省略。当range()函数中有一个数则为结束值
step:用于指定步长,即两个数字之间的间隔,可以省略,省略步长为1,
说明:在使用range()函数时,如果只有一个数,那么表示指定的是end,如果是两个数,则表示起始值和结束值,三个数都存在,最后一个数表示步长。
例: for i in range(10,101,2): #xrange python2中的应用 print(i,end=' ') #输出10到101之间的偶数,不包含101
在python2.x中,如果想让print语句输出的内容在同一行上显示,可以在后面加上逗号(例如,print i ,),但是在python3.x中,使用print()函数时,不能直接加逗号,需要加上“end = ‘分隔符 ’”,在上面的代码中使用的分隔符为一个空格。
2、遍历字符串
使用for循环语句除了可以循环数值,还可以遍历字符串,例如,下面代码可以将横向显示的字符串转换为纵向显示:
例:
string ='希文是个大帅比' print(string) #横向显示 for ch in string: print(ch) #纵向显示
说明:for循环体还可以用于迭代(遍历)列表、元组、集合和字典等
三、循环嵌套
在python中,允许在一个循环体中嵌入另一个循环,这称为循环嵌套。例如,在电影院找座位,需要从排和列依次开始寻找,这个过程用代码显示就是一个循环嵌套。
python中,for和while都可以进行循环的嵌套。
例如:
1、在while循环中套用while循环的格式如下:
while 条件表达式1:
while条件表达式2:
循环体2
循环体1
2、在for循环中套用for循环的格式:
for 迭代变量1 in 对象1:
for 迭代变量2 in 对象2:
循环体2
循环体1
3、while中嵌套for循环:
while 条件表达是:
for 迭代变量 in 对象:
循环体2
循环体1
4、在for循环中嵌套while循环如下:
for 迭代变量 in 对象:
while 条件表达式:
循环体2
循环体1
除了上面的4种循环的嵌套之外,还可以实现多层的嵌套,方法与上面的类似。
例1:查找座位
for row in range(1,5):
print("当前所在的排:",row)
if 2 == row :
print("第二排是我们所在排数!")
for column in range (1,8):
print("当前所在的列:" ,column)
if 3 == column:
print("第三列是我们所在的列")
例2:九九乘法表
for i in range(1,10): #控制行数 for j in range(1,i+1): #输出与行数相等的列 print(str(j)+"*"+str(i)+"="+str(j*i)+"\t",end='') print("") #换行