python中循环有两种: for 和 while
作用:让部分操作重复执行
1. 如何使用for循环?
1)语法:
for 变量 in 序列:
——循环体
2)说明:
for、in —— 都是关键字,固定写法
变量 —— 变量名,需要满足变量名的要求
序列 —— 容器类型的数据(字符串、列表、元祖、集合、字典、迭代器、生成器、range)
: —— 固定写法
循环体 —— 和for保持一个缩进的一条或者多条语句(需要重复执行的代码)
3)执行过程
变量去序列中取值,一个一个的取,取完为止;每取一个值,执行一次循环体。
序列中数据的个数,决定了循环的次数。
for x in 'python':
print(x)
print('---')
x='p', print(a) , print('---')
x='y', print(a) , print('---')
......
x='n', print(a) , print('---')
循环结束
2. range函数
range是python内置的一个用来生成数字序列的函数,在python2中,range由xrange代替
- 结合for循环控制循环次数
- 结合for循环产生指定范围的数字序列
range(N) —— 产生数字范围 0 ~ N-1 (N是任意的正整数)
range(M,N) —— 产生数字范围 M ~ N-1 (N>M 的整数)
range(M,N,step) —— 产生数字范围 M ~ N-1 每次增加step; 如果step为负数,则 M > N
for x in range(10):
print(x)
for x in range(0,4):
print(x)
for x in range(1,10,2):
print(x)
for x in range(10,1,-2):
print(x)
3. 怎么使用while循环
1)语法
while 条件语句:
——循环体
2)说明
while —— 关键字 固定写法
条件语句 —— python支持的类型的数据 已经声明过的变量 除了赋值符号以外的运算表达式
: —— 固定写法
循环体 —— 和while保持一个缩进的一条或多条语句;会重复执行
3)执行过程
先判断条件语句是否为T,如果为T,就执行循环体;
执行完后,再判断条件语句是否为T;如果为T,就执行循环体;
以此类推,直到条件语句结果为F,循环结束,直接执行循环后的其他语句。
i = 0
while i < 5:
print(i)
i += 1
print(i)
while循环控制数字的产生
num = 10
while num >= 0:
print(num)
num -= 2
4. for循环与while的选择
for 循环能做的事情 while 循环都可以做
while 循环能做的事情 for 循环不一定能做得到
循环次数确定的时候,用for循环
循环次数不确定的时候和死循环,用while循环
5.continue / break / else
1)continue
continue 是循环体中的关键字
用来结束当次循环
当执行循环体的时候,遇到continue当次循环结束,不再执行循环体continue之后的其他语句
直接进入下次循环的判断
2)break
break 是循环体中的关键字
用来直接结束整个循环
当执行循环体的时候,遇到break整个循环直接结束,程序直接执行循环后的其他语句
while True:
——循环操作
——if 循环结束条件:
————break
3)else
(1). for的完整结构
for 变量 in 序列:
——循环体
else:
——代码块
其他语句
(2). while的完整结构
while 条件语句:
——循环体
else:
——代码块
其他语句
效果:
当循环自然死亡(for中变量将序列中的数据取完)(while后条件语句结果为F)
else中的代码块会执行,
如果循环因为遇到了break而结束的,else后面的代码就不会执行
通过else中的代码来检测循环有没有遇到break
练习1:打印所有的水仙花数
sum1 = 0
for num1 in range(100,1000):
a=num1 % 100 // 10 #十位数
c=num1 % 10 #个位数
d=num1 // 100 #百位数
if d**3+c**3+a**3 == num1:
print(num1,'这个数是水仙花数')
sum1 += 1
print('水仙花数有',sum1,'个')
num1 = 100
sum1 = 0
while num1 < 1000:
a=num1 % 100 // 10 #十位数
c=num1 % 10 #个位数
d=num1 // 100 #百位数
if d**3+c**3+a**3 == num1:
print(num1,'这个数是水仙花数')
sum1 += 1
num1 += 1
print(sum1)
练习2:统计100以内个位上的数是5的个数
count = 0
for x in range(1,101):
if x % 10 == 5:
count += 1
print(count)
练习3:使用while循环计算 1+2+3+····+100
j = 1 # j 控制循环次数
sum1 = 0
while j <= 100:
sum1 += j
j += 1
print(sum1)
练习4:程序能够不断地进行输入操作,直到输入的内容为0 为止
请输入一个数字:89
请输入一个数字:82
请输入一个数字:0
i = int(input('请输入一个数字:'))
while i != 0:
i = int(input('请输入一个数字:'))
print('ok')