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