【04】循环语句
2019-03-14 本文已影响0人
Z_JoonGi
python中的循环结构有两种: for循环、while循环。
1.1.for循环
a.语法
"""
for 变量名 in 序列:
循环体
"""
b.说明
"""
for - 关键字,固定写法
变量名 - 和声明变量的时候的变量名要求一样
in - 关键字,固定写法
序列 - python中序列有: 字符串、列表、元祖、字典、集 合、range、生成器和迭代器等
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句
"""
c.执行过程
当程序执行到for循环的时候:让变量去序列中取值,一个一个的取,取完为止。每取一个值,执行一次循环体。
for a in 'abcdefa':
print(a,id(a))
print('=====')
"""
a = 'a' print(a), print('======')
a = 'b' print(a), print('======')
a = 'c' print(a), print('======')
a
=======
b
=======
c
=======
...
"""
1.2range函数
# 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,3):
print('===:',num)
# 注意:xrange是python2.x的语法,python3.x无效
2.1while循环
a.语法
"""
while 条件语句:
循环体
"""
b.说明:
"""
while - 关键字,固定写法
条件语句 - 可以是数据、变量、运算表达式等。不能是赋值运算
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句(会被重复执行)
"""
c.执行过程:
"""
先判断条件语句是否为True,为True就执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
以此类推, 直到判断条件语句的结果为False,整个循环直接结束。
两个极端: 1.当条件语句永远为True,会造成死循环的现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行
"""
2.2 (补充)随机数
导入random模块,random是python内置的一个专门用来产生和处理随机数的模块
# randint(M,N) - 产生M~N的随机数,要求M,N都是整数,并且N>M
import random
random_num = random.randint(0,10)
print('随机数:',random_num)
3.for循环和while循环的选择
- a.遍历(一个一个的取)序列元素用for
- b循环次数确定的时候用for循环
- c死循环和循环次数不确定的时候用while
4.1.continue
- 用法:continue是关键字,只能出现在循环体中。
- 功能: 执行循环体的时候,如果遇到continue,就直接结束当次循环,直接进入下次循环的判断
for x in range(10):
if x % 3 ==0:
continue
print(x)
print('===========')
'''
1
=====
2
=====
4
=====
5
=====
7
=====
8
=====
'''
4.2 break
- 用法:break是关键字,只能出现在循环体 。
- 功能: 执行循环体的时候,如果遇到break,整个循环直接结束。
# 练习: 从0+1+2+......+n,求和超过1000000的第一个数
sum1 = 0
n = 1
while True:
sum1 += n
if sum1 > 1000000:
break
n += 1
print(n, sum1, sum1-n)
# 1414 1000405 998991
4.3 else
a.语法:
"""
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
"""
b.执行过程:
- 如果循环自然死亡,else对应的语句块会执行;
- 如果循环因为遇到break而结束,else对应的语句块不执行.
for x in range(5):
print(x)
break
else:
print('循环结束,没有遇到break')
# 0
5.doubleLoop
- 循环嵌套:在循环体中又有循环结构
- 执行过程:外循环执行一次,内循环执行完
for x in range(5):
for y in range(4):
print(x)
print(y)
if (x == 1):
break
"""
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
"""