1. for循环
1.1 语法:
for 变量名 in 序列:
循环体
1.2 说明:
- for : 关键字,固定写法
- 变量名: 和声明变量的时候的变量名要求一样
- in : 关键字,固定写法
- 序列: python中的序列有:字符串、列表、元组、字典、集合、range、生成器、迭代器
- 冒号: 固定写法
- 循环体: 和for保持一个缩进的一跳或者多条语句
1.3 执行过程:当程序执行到for循环的时候:让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体。
for a in 'abcdefa':
print(a, id(a))
print('=====')
1.4 range()函数
range(N) N是正整数, 产生0~N-1的所有整数
for num in range(10):
print(num)
range(M,N) M,N都是整数,并且M<N,产生M~N-1的所有整数
for num in range(1, 100):
print(num)
注意:xrange()是python2.x中的函数,在python3.x中无效。
range(M,N,S) M,N,S都是整数,产生M~N-1中间隔S长度的每个数
for num in range(1, 100, 2):
print(num)
练习:计算1+2+3+...+100的和
sum = 0
for i in range(1,101):
sum += i
print(sum)
练习:计算2468...*20的结果
sum = 1
for i in range(2, 21, 2):
sum *= i
print(sum)
练习:打印0-100中所有能够被3或者5整除的数
for i in range(0, 101):
if i%3==0 or i%5==0:
print(i)
2. while循环
2.1 语法:
while 条件语句:
循环体
2.2 说明:
- while: 关键字,固定写法
- 条件语句: 可以是数据、变量、运算表达式等,不能是赋值运算
- 冒号: 固定写法
- 循环体: 和while保持一个缩进的一条或者多条语句(会被重复执行)
- 执行过程: 先判断条件语句是否为True,为True就执行一次循环体,执行完循环体再判断条件语句是否为True,为True又执行一次循环体,再判断条件语句是否为True,为True又执行一次循环体,再判断条件语句是否为True,为True又执行一次循环体,以此类推,直到判断条件语句的结果为False,整个循环直接结束。
2.3 两个极端:
- 当条件语句永远为True,会造成死循环的现象
- 一开始条件语句的结果就是False,那么循环一次都不会执行
练习1:用while循环控制程序打印10行"======"
count = 0
while count < 10:
print('======')
count += 1
练习2:使用while循环打印0-10
i = 0
while i<11:
print(i)
i += 1
练习3:使用while循环打印11-20
i = 11
while i<21:
print(i)
i += 1
练习4:使用while循环打印2,4,6,8,10,...,40
i = 2
while i < 41:
print(i)
i += 2
练习5:不断输入,直到输入的值是100为止
num = 0
while result != 100:
result = int(input("请输入数字: "))
print('结束')
补充:随机数
导入random模块,random是python内置的一个专门用来产生和处理随机数的模块
radnint(M,N) 产生M~N的随机数,要求M,N都是整数,并且N>M
import random
random_num = random.radnint(0, 10)
print("随机数: ", random_num)
练习:猜数字游戏,产生一个0-100的随机数,然后不断输入数字,直到输入的数字和产生的随机数一致为止
import random
print("=========猜数字游戏=========")
print("===猜0-100之间的一个随机数===")
random_num = random.randint(0, 100)
num = int(input("请猜一个数字: "))
i = 1
while num != random_num:
if num<random_num:
print("偏小")
else:
print("偏大")
i += 1
num = int(input("请重新猜猜: "))
print("恭喜猜中了数字", random_num,",一共猜了", i, "次")
if i > 10:
print("亲,您的智商需要充值了哦")
elif i < 5:
print("聪明")
if i == 1:
print("居然一次就猜对了")
2.4 for循环和while循环的选择:
- 遍历(一个一个的取)序列元素用for循环
- 循环次数确定的时候用for循环
- 死循环和循环次数不确定的时候用while循环
3. continue、break和else
3.1 continue
用法:continue是关键字,只能出现在循环体中
功能:执行循环体的时候,如果遇到continue,就直接结束当次循环,直接进入下次循环的判断
for x in range(10):
if x%3 == 0:
continue
print(x)
print("=======")
3.2 break
用法:break 是关键字,只能出现在循环体
功能:执行循环体,如果遇到break,整个循环体直接结束
for x in range(10):
print(x)
break
print("===")
print("结束")
练习:从0+1+2+......,求看到和超过1000000的时候,求出这个数
n = 0
m = 1
while True:
n += m
m += 1
if n > 1000000:
print(m, n)
break
3.3 else
语法:
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
执行过程:如果循环自然死亡,else对应的语句块会执行;如果循环因为遇到break而结束,else对应的语句块不执行
for x in range(5):
print(x)
break
else:
print("循环结束")
4. 循环嵌套
循环嵌套:在循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完
for x in range(5):
for y in range(4):
print(x)
print(y)
#if(x==1):
#break 内层循环结束,外层循环不结束
#if(x==1):
#break 内层、外层循环都结束
网友评论