-
python中 的循环结构有两种:for循环,while循环
1. for循环
a.语法
"""
for 变量名 in 序列:
循环体
"""
b.说明
for -关键字
变量名 -和声明变量的时候的变量名要求一样
in -关键字,固定写法
序列 -Python中的序列有:字符串、列表、元祖、字典、range、生成器、迭代器。
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句。
"""
c.执行过程
当程序执行到for循环的时候,让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体。
a = 'a' print(a) ,print('=====')
a = 'b' print(b) ,print('=====')
``输出结果
a
=====
b
=====
for num in 'abcdefa':
print(num,id(num))
print('=====')
2. range函数
用法:range(N) - N是正整数,产生0~~N-1的所有的整数。
range(M,N) - M,N都是整数,并且N > M ,产生M ~ N-1的所有整数。
range(M,N,S) -M,N,S都是整数,产生M ~ N-1,每次加S来产生下一个数
for num in range (0,101,2):
print('===:',num)
注意 Xrange 是Python2.x的语法,Python3.x无效
for num1 in range(10):
print(num1)
for num in range (100,1000):
print(num)
练习:计算1+2+3+...+100的和
sum1 = 0 # 保存和的变量
for num in range (1,100):
sum1 = sum1 + num # sum1 += num
print(sum1)
"""
分析过程:
sum1 = 0
num = (1,2,3,4)
num1 sum1 += num, sum1 = sum1+num ,sum1 =0+1=1
num2 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2=3
num3 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2+3=6
num4 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2+3+4=10
print(sum1) 10
"""
练习: 计算 2 *4 *6...20的结果
product = 1
for num in range (2, 21, 2):
product = product * num # prouduct *= num
print(product)
练习:打印计算0-100所有能够被3或者5整除的个数
sum2 = 0
for num6 in range(0,101):
if num6 % 3 == 0 or num6 % 5 == 0:
print(num6)
sum2 +=num6
print(sum2)
3.while循环
a.语法
"""
while 条件语句:
循环体
"""
b。说明:
"""
while - 关键字,固定写法
条件语句 - 可以是数据,变量,运算表达式,不能是赋值运算。
: -固定写法
循环体 - 与while保持一个缩进的一条或者多条语句。(会被重复执行)
"""
'''
c.执行过程:
先判断条件语句是否为True,为True就执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
以此类推,直到判断条件语句的结果为False,整个循环直接结束。
两个极端:1.当条件语句永远为True,会造成死循环的现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行。
练习:用while循环控制程序打印10行
count = 0
while count < 10:
print('======')
count += 1
- 练习,使用while循环,打印0-10
num = 0
while num < 11:
print(num)
num += 1
- 练习2,使用while循环打印11-20
count2 = 11
while count2 < 21:
print('练习2',count2)
count2 += 1
- 练习3,使用while循环打印2,4,6,8...40
count3 = 2
while count3 < 40:
print('练习3',count3)
count3 += 2
- 练习,不断输入,直到输入的值是100为止
num=int(input('请输入数字:')) #写法二:result = 0 #保存输入结果
while num != 100:
num=int(input('请输入数字'))
print(num)
4..补充随机数
- 导入random模块,random模块是Python内置的一个专门用来产生和处理随机数的一个模块
randint(M,N)----产生M~N的随机数,要求M,N都是整数,并且N>M。
import random
random_num = random.randint(0,10)
print('随机数:',random_num)
- 练习:猜数字游戏
产生一个0-100的随机,然后不断输入数字,直到输入的数字和产生的随机数为止,如果输入的数字和随机数不相等,给出偏大或者偏小的提示。
增加功能,统计猜对数字玩家用了多少次,然后根据次数范围给出相应的评价。
print('======================游戏开始==================')
num = int(input('请输入数字'))
num1 = 0
import random
random_num = random.randint(0,100)
print('随机数:',random_num)
while num != random_num:
if num > random_num:
print(num, '数字偏大')
else:
print(num, '数字偏小')
num=int(input('请输入数字:'))
num1+= 1
if num1 == 1 :
print('太棒了,天才')
elif 1 < num1 < 15:
print('聪明')
else:
print('笨蛋')
print('恭喜你猜对了!',num1,'次',random_num)
print('=====================游戏结束===================')
5.for循环和while循环的选择
a.遍历(一个一个的取)序列元素,用for循环
b.循环次数确定的时候用for循环
c.循环次数不确定的时候和死循环用while。
6. continue的用法
- 用法:continue 是关键字,只能出现在循环体中
- 功能:执行循环体的时候,如果遇到continue,就直接结束当次循环,直接进入下次循环的判断。
for x in range(10):
if x % 3 == 0:
continue
print(x)
print('=====')
7. break的用法
- 用法:break是关键字,只能出现在循环体中(for,while)
- 功能:执行循环体的时候,如果遇到break,整个循环直接结束。
for x in range(10):
print(x)
break
print('!!!')
print('结束')
- 练习:从0+1+2....,求加到和超过1000000的第一个数,求出这个数
sum1= 0
num = 1
while True:
sum1+=num
if sum1 > 1000000:
break
num += 1
print(num,sum1,sum1-num)
8 .else
- a.语法:
""""
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
"""
- b.执行过程:如果循环自然死亡,else对应的语句块会执行,如果循环因为遇到break,else对应的语句块就不会执行
for x in range(5):
print(x)
break
else:
print('循环结束')
for x in range(2,9):
print(x)
break
else:
print('循环结束,没有遇到break')
- 循环嵌套:在循环体中套一个循环结构(三层以上需要优化了)
- 执行过程,外循环执行一次,外循环执行完。
for x in range(5):
for y in range(4):
print(x)
print(y)