python中两种循环结构:for while
循环的作用:让部分操作重复执行
序列:容器类型的数据,字符串、列表、元组、集合
1.执行过程
让变量去容器(序列,也就是字符串、列表、元组、集合
字典、迭代器、生成器、range)中一个一个取值,取完为止,
每取一个值执行一次循环体。序列中的个数决定了循环的次数。
for n in 'python':
print(n)
print('===')
print('end')
n='p',print(a),print('===')
n='y',print(n),print('===')
n='t',print(n),print('===')
n='h',print(n),print('===')
n='o',print(n),print('===')
n='n',print(n),print('===')
2.range函数
range是python内置的一个用来生成数字序列的函数,
在python2.x版本中,range由xrange代替.
range(N) 产生数字范围0~N-1 (N是正 整数)
range(10) 就是0~9范围
range(M,N) 产生数字范围M~N-1 N大于M M可以取到(可以是负数,但必须是整数) 相当于上面那种M=0
range(M,N,step) 这里step是等差,产生数字范围每次增加step的大小
如果step是负数M>N,相当于递减。
for x in range(10):
print(x)
for x in range(-2,5):
print(x)
for x in range(0,10,2):
print(x)
s=0 #保存和的变量
for a in range(101):
s+=a
if a==50:
print(s) #当a=50的时候,这时和的值
print(s) #当a=100的时候,这时和的值
3.while循环执行过程
先判断条件语句是否为True(如果条件语句不是布尔值,先转换成布尔值),就执行
循环体,再判断条件语句是否为True,如果为True再执行循环体。直到条件语句
为False,循环结束,执行后面的语句。
先判断条件语句是否为True(如果条件语句不是布尔值,先转换成布尔值),就执行
循环体,再判断条件语句是否为True,如果为True再执行循环体。直到条件语句
为False,循环结束,执行后面的语句。
i=0
while i<5:
print(i)
i+=1
print('?')
# 用while循环1+2+3+...+100
i=1
s=0
while i<101:
s+=i
i+=1
print(s)
# 打印所有水仙花数
s=100
while s<1000:
a=s%10
b=s//10%10
c=s//100
if a**3+b**3+c**3==s:
print(s)
s+=1
4.什么时候用for 什么时候用while
for循环能做的while都能做,while能做的
for不一定能做到。例如:死循环
循环次数确定的时候用for,循环次数不确定的时候
用while。
5.continue
是循环体中的关键字,只能用在循环体中,用来结束当次
循环。当执行循环体的时候,遇到了continue,当次循环直接
结束,不再执行循环体中continue后面的语句,直接进入下次
循环的判断.
for x in range(5):
print(x)
print('====')
continue
print('++++')
# 1,100之内偶数和
sun=0
for x in range(101):
if x%2==1:
continue
sun+=x
print(sun)
# 打印100以内除3倍数的数
x=1
while x<101:
if x%3==0:
x+=1
continue
print(x)
x+=1
6.break
break是循环体的关键字,用于直接结束整个循环
当执行循环体的时候遇到了break,整个循环直接结束
循环直接执行后边的语句。
print('======================')
for x in range(10):
print(x)
break
print('+++++')
print('==============')
while True:
s=int(input('输入一个数'))
if s==0:
break
print('bingo')
7.else
for的完整结构
for 变量 in 序列:
循环体
else:
代码块
其他语句
while的完整结构
while 条件语句:
循环体
else:
代码块
其他语句
当循环自然死亡(for中变量中序列数据取完,while后边
的条件语句值为False),else后面的代码才会执行
如果循环是因为遇到break结束,else后面的代码就不会执行.
可以通过else循环有没有遇到break
for x in range(10):
print(x)
if x==4:
break
else:
print('循环自然死亡')