python中的循环结构有两种: for循环、while循环
1.for循环
a.语法
for 变量名 in 序列:
循环体
b.说明
for - 关键字,固定
变量名 - 和声明变量的时候的变量名要求一样
in - 关键字,固定写法
序列 - python中的序列有: 字符串、列表、元祖、字典、集合、range、生成器和迭代器等
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句
c.执行过程
当程序执行到for循环的时候: 让变量去序列当中取值,一个一个的取,取完为止。每取一个值,执行一次循环体。
for a in ('abcdef'):
print(a)
print('lllll')
2.range函数
range(N) - N是正整数,产生0~N-1的所有整数
for num in range(10):
print(num)
range(M,N) - M,N都是整数,并且N>M,产生M~N-1的所有整数
for num in range(100,1000):
print(num)
range(M,N,S) - M, N, S都是整数,产生M~N-1,每次加S 来产生下一个数
for num in range(0,101,2): # 0到100内所有的偶数
print(num)
注意: xrange 是python2.x的语法,python3.x无效
练习: 计算1+2+3+...+100的和
num = 0 # 保存和的变量
for n in range(1,101):
# num = num + n
num += n
print(num)
过程分析:
num = 0
n = (1,2,3,4...100)
n = 1 num += n , num = num + n , num = 0 + 1 = 1
n = 2 num += n , num = num + n , num = 1 + 2 = 3
...
n = 100 num += n , num = num + n , num = 4950 + 100 = 5050
print(num) 5050
练习: 计算2468...20的积
num = 1
for n in range(2,21,2):
num *= n
print(num)
练习:计算0-100中所有能够被3或者5整除的数的和
num = 0
for n in range(101):
if n % 3 == 0 or n % 5 == 0:
num += n
print(num)
1.while 循环
a.语法
while 条件语句:
循环体
b.说明:
while - 关键字,固定写法
条件语句 - 可以是数据、变量、运算表达式等。不能是赋值运算
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句(会被重复执行)
c.执行过程:
先判断条件语句是否为True,为True就执行一次循环体
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
以此类推,直到判断条件语句的结果为False,整个循环直接结束。
两个极端: 1.当条件语句永远为True,会造成死循环现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行
练习: 用while循环控制程序打印10行“=====”
count = 0
while count < 10:
print('====')
count += 1
分析过程:
count = 0
count < 10 0<10 True print('====') count += 1 count = count + 1 = 0 + 1 = 1
count < 10 1<10 True print('====') count += 1 count = count + 1 = 1 + 1 = 2
...
count < 10 10<10 False
print(count) print(10)
练习1: 使用while循环打印 0-10
num = 0
while num <= 10:
print(num)
num += 1
练习2: 使用while循环打印11-20
num = 11
while num <= 20:
print(num)
num += 1
练习3: 使用while循环打印2,4,6,8,10...40
num = 2
while num < 41:
print(num)
num += 2
练习4: 求2+4+6+...+40
num = 2
sum = 0
while num < 41:
print(num)
sum += num
num += 2
print(sum)
练习: 不断输入,直到输入的值是100为止
num = 0
while num != 100 :
num = int(input('请输入数字:'))
print('结束!')
ctrl + c 可以立刻终止命令!
2.补充: 随机数
randint(M,N) - 产生M~N的随机数,要求M,N都是整数,并且N>M
import random # 导入random模块,random是Python内置的一个专门用来产生和处理随机数的模块
random_num = random.randint(0,10)
print('随机数:',random_num)
练习: 猜数字游戏
random_num = random.randint(0,100)
n = 0
num = int(input('请输入一个0-100的数字:'))
while num != random_num:
if num > random_num:
print('偏大')
else:
print('偏小')
n += 1
num = int(input('请输入一个0-100的数字:'))
print('猜对了')
if n <= 3:
print('您太棒了!')
elif 3<n<=6:
print('还不错哦!')
else:
print('玩家总共游戏:'+str(n)+'要加油哦!')
3.for循环和while循环的选择
a.遍历(一个一个的取)序列元素用for循环
b.循环次数确定的时候用for循环
c.死循环和循环次数不确定的时候用while循环
1.continue
用法: continue是关键字,只能出现在循环体中
功能: 执行循环体的时候,如果遇到continue,就直接结束当次循环,直接进入下次循环的判断
for x in range(10):
if x % 3 ==0:
continue
print(x)
print('=====')
2.break
用法: break 是关键字,只能出现在循环体
功能:执行循环体的时候,如果遇到break,整个循环直接结束
for x in range(10):
print(x)
break
print('=====')
print('结束!')
练习:从0+1+2+....+n ,求当他们的和大于1000000时的第一个数
num = 0
N = 1
while True:
num += N
if num >= 1000000:
break
N += 1
print(N,num,num-1)
3.else
a.语法
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
b.执行过程: 如果循环过程正常截止,else对应的语句块继续执行!如果循环过程遇到break而结束,else对应的语句块不执行
for x in range(5):
print(x)
break
else: # 主要是识别循环语句中是否有 break
print(1111)
循环嵌套: 再循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完