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 = 'c' print(c),print('=====')
...
a
=====
b
=====
c
=====
...
"""
for a in 'abcdefa':
print(a)
print('=====')
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(N,M,S) # M,N,S都是整数,产生M~N-1,每次加S来产生下一个数
for num in range(0,101,2):
print('===',num)
#注意:xrange是python2.X的语法,在python3.X无效
练习:计算1+2+3+...+100的和
sum1 = 0 #保存和的变量
for num in range(1,101):
# sum1 = sum1 + num
sum1 += num
print(sum1)
"""
sum1 = 0
num = (1,2,3,4)
num = 1 sum1 += num,sum1 = sum1+num,sum1 = 0 + 1 = 1
num = 2 sum1 += num,sum1 = sum1+num,sum1 = 1 + 2
num = 3 sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3
num = 4 sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3 + 4 = 10
print(sum1) 10
"""
练习:计算 2 * 4 * 6 * 8 * ... * 20结果
sum2=1
for num2 in range(2,21,2):
sum2 *=num2
print(sum2)
练习:计算0-100中所有能被3或者5整除的数的和
sum4 = 0
for num3 in range(101):
if num3 % 3 == 0 or num3 % 5 == 0:
print(num3)
sum4 += num3
print(sum4)
1.while循环
a.语法
"""
while 条件语句:
循环体
"""
b.说明:
"""
while # 关键字,固定写法
条件语句 # 可以是数据,变量,运算表达式等。不能是赋值运算
: # 固定写法
循环体 # 和while保持一个缩进的一条或者多条语句(会被重复执行)
"""
c.执行过程:
"""
先判断条件语句是否为True,为Ture就执行一次循环体,
执行完循环体再判断条件语句是否为Ture,为True又执行一次循环体,
执行完循环体再判断条件语句是否为Ture,为True又执行一次循环体,
以此类推,直到判断条件语句的结果为False,这个循环直接结束
两个极端:1.当条件语句永远为True,会造成死循环的现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行
"""
练习:用while循环控制成勋打印10行"====="
num = 0
while num < 10:
print('=====')
num += 1
"""
num = 0
num < 4 0 < 4 True print('=====') num += 1 num = num + 1 = 0 + 1
num < 4 1 < 4 True print('=====') num += 1 num = num + 1 = 1 + 1 = 2
num < 4 2 < 4 True print('=====') num += 1 num = num + 1 = 2 + 1 = 3
num < 4 3 < 4 True print('=====') num += 1 num = num + 1 = 3 + 1 = 4
num < 4 4 < 4 False
print(num) print(4)
输出:
=====
=====
=====
=====
4
"""
练习1:使用while循环打印0-10
num2 = 0
while num2 < 11:
print(num2)
num2 += 1
练习2:使用while循环打印11-20
num3 = 11
while num3 < 21:
print(num3)
num3 += 1
练习3:使用while循环打印2,4,6,8,10...40
num4 = 2
while num4 <= 40:
print(num4)
num4 += 2
练习4:求2+4+6+...+40
num5 = 0
num6 = 2
while num6 <= 40:
num5 += num6
num6 += 2
print(num5)
练习:不断输入,直到输入的值是100为止
"""
请输入数字:10
请输入数字:1
请输入数字;22
请输入数字:100
结束!
"""
result = 0 # 保存输入的结果
while result != 100:
result = int(input('请输入数字'))
print('结束!')
2.补充:随机数
导入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('=================游戏开始===================')
random_sum = random.randint(0,100)
sum = int(input('请输入数字(0-100)'))
while sum != random_sum:
if sum > random_sum:
print('大了,再小点')
else:
print('小了,再大点')
sum = int(input('请输入数字(0-100)'))
print('恭喜你猜对对了',random_sum)
if count > 7:
print('250!')
print('================游戏结束===================')
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,整个循环直接结束
print('=========================')
for x in range(10):
print(x)
break
print('!!!')
# print(x)
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 - n)
3.else
a.语法:
"""
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
"""
b.执行过程:如果循环自然死亡,else对饮的语句块会执行;如果循环因为遇到break而结束
else对应的语句块不会执行
for x in range(5):
print(x)
else:
print('循环结束')
循环你嵌套:在循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完
for x in range(5):
for y in range(4):
print(x)
print(y)
"""
x = (0,1,2,3,4)
x =0 y = (0,1,2,3,)
y = 0 print(0),print(0)
y = 1 print(0),print(1)
y = 2 print(0),print(2)
y = 3 print(0),print(3)
x = 1 y = (0,1,2,3,)
...
输出
0
0
0
1
0
2
0
3
"""