python 中有两种循环,for,while
重复执行
循环的作用:让部分的操作重复执行。
语法:
for 变量 in 序列:
循环体
说明:
for in - 关键字,固定写法。
变量 - 变量名的要求
序列 - 容器类型的数据,例如:字符串,列表,元组,集合,字典,迭代器,生成器,range。
:- 固定写法
循环体 - 和for保持缩进的一条或多条语句,需要重复执行的代码。
执行过程 - 让变量去序列中取值,按顺序取,一个一个取,直到取完,每取一个执行一次循环体
序列中的个数决定循环次数
range函数 - python 内置函数,用来生成数字序列的函数 ,Python2.x中range由xrange代替
range(N) - 产生数字范围0~N-1。循环遍历,类型转换。
range(M,N) - 产生数字范围M~N-1,M,N是整数,N>M
range(M,N,step) - 产生数字范围,M到N,每次增加step,step是负数,要求M>N。
结合for循环,1、控制循环次数,2、产生制定范围的数字序列。
print(list(range(10)))
print(list(range(0,10)))
print(list(range(1,-10,-2)))
print(sum(list(range(1,5))))
1
sum_out=0
for i in range(101):
sum_out+=i
print(sum_out)
#2
print(sum(list(range(101))))
#3
print(sum(range(101)))
#打印所有的水仙花数
#1
sum_index=0
for i in range(100,1000):
if (i//100)**3 + (i%100//10)**3 + (i%10)**3 == i :
sum_index+=1
print(i,sum_index)
#2
list_out=[]
for i in range(100,1000):
if (i//100)**3 + (i%100//10)**3 + (i%10)**3 == i :
list_out.append(i)
if (int(str(i)[0]))**3 + (int(str(i)[1]))**3 + (int(str(i)[2]))**3 == i:
list_out.append(i)
print(list_out)
#联系3,统计100以内个位上的数是5的个数。
#1
count_0 = 0
for i in range(101):
if i % 10 == 5 :
count_0+=1
if str(i)[0]=='5':
pass
print(count_0)
#2
count_1 = 0
for i in range(100):
if str(i)[0]=='5':
count_1+=1
print(count_0)
while 循环
语法:
while 条件语句 :
循环体
说明:
while - 固定写法
条件语句 - 和if后面的条件语句要求一样。Python支持类型的数据、已声明变量...除了赋值运算表达式都可以。
: - 固定写法
循环体 - 和while保持缩进的一条或多条语句,满足条件语句,会重复执行代码块。
执行过程:
先判断条件语句是否为True(其它转化为True),如果为TRUE,执行循环体,执行完循环体再判断条件语句是否为TRUE,以此类推,直至条件语句为False,循环结束,执行下面的代码。
如果进入死循环,Ctrl+c 中断程序。
#1
i=sum_0=0
while i<=100:
sum_0+=i
i+=1
print(sum_0)
#2
i=100
while i<=999:
if (i//100)**3 + (i%100//10)**3 + (i%10)**3 == i :
print(i)
i+=1
#循环怎么选择,for能做的while都能做,while能做的for不一定能做,比如死循环。
#循环次数确定的都用for
#循环次数不确定的时候用while循环。
i=1
while i != 0:
i=input('随便来个数:')
print(i)
print('gg')
1/continue是循环体中的关键字,用来结束当次循环。
当执行循环体重,遇到了continue,单次循环直接结束,不再执行循环体后面的其它语句。continue后面的循环体不再执行.
for i in range(3):
print('dddd')
print(213212)
continue
print('ejwelf')
for i in range(10):
print('ddd')
if i>5:
continue
print(i)
2/break是循环体中的关键字,直接结束整个循环。
当执行循环体中遇到了break,整个循环直接结束,程序直接执行后面的语句。
print('start')
for i in range(5):
print(i)
if i == 3:
break
print('gg')
while True:
input_data=inpu('input'):
if input_data==0:
break
3/else,当循环自然结束,for中变量将序列中数据取完,while条件语句为false,else后面的代码块执行。
如果循环是因为遇到了break而结束的,else后面的代码不执行。
应用:通过else代码块是否执行来检查循环中是否遇到了break。
'''
循环完整结构:
for 变量 in 序列:
循环体
else:
代码块
while 条件语句:
循环体
else:
代码块
'''