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!')