循环
一、for循环
- for循环
'''
语法:
for 变量 in 序列:
循环体
说明:
for、in - 关键字,固定写法
变量 - 写一个变量名。(可以是已经定义过的,也可以没有定义过的)
序列 - 容器型数据类型对应的数据,常见序列:植复仇、列表、元组、字典、集合、迭代器、生成器、range
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句;就是需要重复执行的代码。
执行过程:
让变量去序列中取值,直到取完为止,每取一次执行一次循环体。
for循环循环次数和序列中元素的个数有关
'''
for x in 'abc123':
print(x,'hello')
'''
x = 'a': print(x,'hello') -> print('a','hello')
......
x = '3': print(x,'hello') -> print('3','hello')
'''
- range函数 - 产生指定范围的数字序列
# 1)range(N) - 产生[0,N)的数字序列,其中步长是1
# 2)range(M,N) - 产生[M,N)的数字序列,步长为1
# 3)range(M,N,step) - 产生[M,N)的数字序列,步长为step指定的值
print('======用法一:产生0开始步长为1的数字序列======')
for x in range(10):
print(x)
print('======用法2:直接的控制循环次数==========')
for x in range(4):
print('hello!')
print('======================================================')
for x in range(10,20):
print(x)
print('=========================================')
for x in range(-10,0):
print(x)
print('==========================')
for x in range(10,20,2):
print(x)
print('=========================')
for x in range(20,0,-1):
print(x)
print('=========================================')
for x in range(30,10,-3):
print(x)
print('========1111========================1111==============')
# 练习1:打印100以内所有的偶数
print('====================方法一========================')
for x in range(100):
if x % 2 == 0:
print(x)
print('=======================方法二=========================')
for x in range(0,100,2):
print(x)
# 练习2:打印100-200中所有个位数是3的数
print('========================方法一=============================')
for x in range(103,200,10):
print(x)
print('=========================方法二=====================')
for x in range(100,201):
if x % 10 ==3:
print(x)
# 练习3:打印所有的水仙花数
print('===================================================')
for num in range(100,1000):
ge = num % 10
shi = num // 10 % 10
bai = num // 100
if ge ** 3 + shi ** 3 + bai ** 3 == num:
print(num)
二、两个套路
1、统计100以内的偶数个数
num = 0 # 统计满足条件的个数
for x in range(0,100):
if x % 2 == 0:
num += 1
print('一百以内的偶数个数',num)
- 统计100以内能被3整除的偶数个数
# 方法一
num = 0
for x in range(0,100,3):
if x % 2 == 0:
num += 1
print('一百以内的能被3整除的偶数个数',num)
# 方法二
num = 0
for x in range(0,100,6):
num += 1
print('一百以内的能被3整除的偶数个数',num)
- 计算1+2+3+…+100的和
sum1 = 0
for x in range(1,101):
sum1 += x
print('1+2+3+。。。+100的和',sum1)
'''
x = 1:sum1 += x -> sum1 += 1 -> sum1 = 0 + 1 (后面就是0+1+2+。。。+100)
......
'''
- 计算所有水仙花数的和
sum1 = 0
for num in range(100,1000):
ge = num % 10
shi = num // 10 % 10
bai = num // 100
if ge ** 3 + shi ** 3 + bai ** 3 == num:
sum1 += num
print('所有水仙花数的和',sum1)
三、while循环
- while
'''
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 - 任何有结果的表达式(只有赋值语句不行)
: - 固定写法
循环体 - 和while保持一个缩进的一条或则和多条语句;需要重复执行代码
执行过程:
先判断条件语句是否为True,如果为True就执行循环题,执行完在判断是否为True...依次类推,当条件语句结果为False循环直接结束
'''
# 使用while循环控制程序打印10个’hello‘
num = 10
while num > 0:
print('hello')
num -= 1
# while 循环控制循环次数的原则:让条件经历过指定次数后由True变为False
# while 和 for 的选择
# for循环:循环次数确定时使用
# while循环:循环次数并不确定时使用 (程序员写代码时没办法通过任何方式来确定循环次数)
# 练习:提示用户不断输入内容,直到输入的数据是0为止
value = input('请输入:')
while value != '0':
value = input('请输入:')
四、循环关键字
- continue 和 break
'''
continue he break只能出现在循环体中
1)continue - 结束一次循环/结束当次循环
如果在执行循环体的时候遇到了cintinue,那么当初循环结束,直接进入下一次循环
2)break - 结束整个循环
如果子啊执行循环题的时候遇到了break,整个循环直接结束
'''
# 1)=========continue====================
for x in range(4):
print('=====')
continue
print('+++++')
print('-----')
for x in range(10):
if x == 5 or x == 8:
continue
print(x)
# ======================break=========================
for x in range(4):
print('=====')
break
print('+++++')
print('-----')
print('end')
for x in range(10):
print(x)
if x == 3:
break
# 2.有了break的while循环
'''
while True:
需要重复执行的操作
if 循环结束的条件:
break
'''
while True:
value = input('请输入:')
if value == '0':
break
# 3、else
'''
完整的for循环
for 变量 in 序列:
循环体
else:
代码段