python中的循环有两种:for循环和while循环
第一节
1.for循环
语法:
for 变量 in 序列:
循环体
说明:
a. for/in - 关键字;固定写法
b. 变量 - 可以是任意变量;一般写一个新的变量
c. 序列 - python中容器型数据类型,例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等
d. 冒号 - 固定写法
e. 循环体 - 和for保持一个缩进的一条或者多条语句;循环体就是需要重复执行的代码块。
执行过程:
让变量去序列中取值,一个一个的取,取完为止;每取一个值执行一次循环体。
(for循环的循环次数看序列中元素的个数)
for x in 'abcyu':
print(x, 'hello')
2.range的用法
1)range(N) - 产生一个 0 ~ N-1 的数字序列: 0,1,2,3,4,…,N-1 (N必须是正整数)
2)range(M, N) - 产生 M ~ N-1 的数字序列:M,M+1,M+2,…N-1 (M和N都是整数并且M小于N)
3) range(M, N, step) - step控制每次增加的值(默认是1):M, M+step, M+2*step, …
for x in range(10):
print('x:', x)
for y in range(-10, 101):
print('y:', y)
for z in range(0, 101, 2):
print('z:', z)
for m in range(1, 100, 2):
print('m:', m)
练习:产生 100到1所有的数字对应的序列
for i in range(100, 0, -1):
print('i:', i)
求和套路:计算1+2+3+…+100的和
sum1 = 0 # 定义一个变量保存最后的和
for num in range(1, 101):
sum1 = sum1 + num # 相当于: sum1 += num
print(sum1)
统计个数:统计0~100中能够被3整除的偶数的个数
方法一:
count = 0 # 定义一个变量保存最后的个数
for num in range(101):
if num % 3 == 0 and num % 2 == 0:
count += 1
print(count)
方法二:
count = 0
for num in range(0, 101, 6):
count += 1
print(count)
练习1:求1000以内能被7整除但是不能被3整除的数的和
方法一:
sum1 = 0
for x in range(1000):
if x % 7 == 0 and x % 3 != 0:
sum1 += x
print(sum1)
方法二:
sum1 = 0
for x in range(0, 1000, 7):
if x % 3 != 0:
sum1 += x
print(sum1)
练习2:统计1000以内十位数加上个位数的和等于5的数的个数
count = 0
for x in range(1000):
shi = x % 100 // 10
ge = x % 10
if shi + ge == 5:
count += 1
print(count)
第二节
1.while循环
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 - 除了赋值语句以外的任意表达式
冒号 - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句; 循环体就是需要重复执行的代码块。
执行过程:
先判断条件语句是否为True,为True就执行循环体。
执行完循环体再判断条件语句是否为True, 为True再执行循环体。
.以此类推,直到条件语句的结果为False整个循环就结束。
while 控制次数的套路:
变量 = 0
while 变量 < 次数:
需要重复执行的操作
变量 += 1
num = 0
while num < 5:
print('============')
num += 1
print(num)
执行过程
num = 0; num < 5 -> True -> print('============'); num += 1;
num = 1; num < 5 -> True -> print('============'); num += 1;
num = 2; num < 5 -> True -> print('============'); num += 1;
num = 3; num < 5 -> True -> print('============'); num += 1;
num = 4; num < 5 -> True -> print('============'); num += 1;
num = 5; num < 5 -> False (循环结束)
2.for循环和while的选择
什么时候用for循环:
1)遍历序列(将序列中的元素一个一个取出来)
2)循环次数确定
什么时候用while循环
1)死循环
2)循环次数不确定
while True:
pass
练习:写程序实现不断输入数据,直到输入的内容为0为止
请输入: abc
请输入:123
请输入:ah是
请输入:0
value = 1
while value != '0':
value = input('请输入:')
from random import randint
第三节
continue和break只能在循环体中使用
1.continue - 结束一次循环
如果在执行循环体的时候遇到了continue,那么当次循环结束直接进入下次循环
测试用例:
for x in range(5):
print('======')
continue
print('++++++')
count = 0
for x in range(10):
if x % 3 == 0:
continue
count += 1
print(count)
count = 0
x = 0: if 0 % 3 == 0 -> True: continue
x = 1: if 1 % 3 == 0 -> False; count += 1 -> count = 1
x = 2: if 2 % 3 == 0 -> False; count += 1 -> count = 2
x = 3: if 3 % 3 == 0 -> True: continue
x = 4: if 4 % 3 == 0 -> False; count += 1 -> count = 3
…
“”"
2.break - 结束整个循环
如果执行循环体的时候遇到了break,那么整个循环直接结束
num = 0
while num < 5:
print('=======')
break
print('+++++++')
num += 1
print('end')
num = 0
sum1 = 0
while True:
sum1 += num
if sum1 > 1000:
break
num += 1
print(num-1, sum1-num)
3.while循环的用法
while True:
需要重复执行的操作
if 循环结束的条件:
break
猜数字游戏:
随机产生一个0~100数字: num, 用户不断输入数字直到输入的值和产生的随机数相等游戏就结束
num = 35(假设)
请输入一个整数(0~100): 50
大了,请再猜!
请输入一个整数(0~100):49
大了,请再猜!
请输入一个整数(0~100):20
小了,请再猜!
请输入一个整数(0~100):25
小了,请再猜!
请输入一个整数(0~100):35
恭喜你!猜对了
randint(M, N) - 产生一个 M ~ N 的随机整数
num = randint(0, 100)
while True:
value = int(input('请输入一个整数(0~100):'))
if value == num:
print('恭喜你!猜对了!')
break
elif value > num:
print('大了, 请再猜!')
else:
print('小了, 请再猜!')
#### 1.完整的for循环和while循环
for 变量 in 序列:
循环体
else:
代码块
while 条件语句:
循环体
else:
代码块
else不影响原循环的执行; else后面的代码块在循环正常结束的时候会执行。
如果循环是因为遇到break而结束的,else后面的代码块就不会执行。
for x in range(5):
if x == 3:
break
print('======')
else:
print('else!')