for 循环
语法:
for 变量 in 序列:
循环体
说明:
for、in
关键字;固定
变量
变量名(可以是已经定义过的变量的变量名,也可以是没有定义)
:
固定写法
序列
序列就是Python中容器型数据类型对应的数据;例如:字符串,列表、字典、元组、集合、迭代器、生成器、range等
循环体
和for保持一个缩进的一条或者多条语句(至少1条条件);循环体就是会被重复执行的代码
执行过程:
- 让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体
- for循环循环次数和序列中元素的个数有关
range函数 – 产生一个等差数列
语法:
for 变量 in range():
循环体
- range(N) – 产生[0,N),差是1的等差数列(N必须是正整数)
例: range(4) —> 0,1,2,3 - range(M, N) – 产生[M, N),差是1的等差数列(M<N)
例: range(-2,4) —> -2,-1,0,1,2,3 - range(M, N, step) – 产生[M, N),差是step的等差数列
例: range(10, 4, -1) —> 10,9,8,7,6,5
例: range(2, 10, 2) —> 2,4,6,8
while循环
语法:
whlie 条件语句:
循环体
说明:
while
关键字;固定写法
条件语句
任何有结果的表达式,比如:具体的数据、已经赋值过的变量、运算表达式(赋值运算符除外)
:
固定写法
循环体
和while保持一个缩进的一条或多条语句(至少一条);循环体就是需要重复执行的代码
执行过程:
- 先判断条件语句是否为True,如果为True就执行循环体,执行完再判断条件语句是否为True,为True又执行循环体
以此类推,如果判断条件语句的结果是False循环就结束
for和while的选择
如果循环次数确定时就使用for循环;如果循环次数不确定时就使用while循环。
continue和break - 循环体中的关键字
-
continue 结束一次循环(结束当前循环)
当执行循环体的时候遇到了continue。这一次循环结束,马上进入下次循环。 -
break 结束整个循环
当执行循环体的时候遇到了break,整个循环直接结束。(这次循环循环体后面的代码不执行,也不进入下一次循环)
else
语法:
# for循环
for 变量 in 序列:
循环体
else:
代码段
# while循环
while 条件语句:
循环体
else:
代码段
-
else的存在不影响原来循环的执行
-
如果循环自然死亡(for取不到下一个数据;while条件是False),结束后会执行else中代码;如果循环是因为遇到break而结束的,else中的代码不执行
for循环练习
- 求1+2+3+…+100的和。
# 1)定义一个变量保存最后的和,变量默认值是0
sum = 0
# 2)通过循环获取到要求和数据
for i in range(1, 101):
# 3)取到一个数据就往保存和的变量中加一个数据
sum += i # sum = sum + i
print('1+2+3+...+100的和为:', sum)
思路解析:
sum = 0
i = [1,101)
i=1: sum += i --> sum = 0 + 1 = 1
i=2: sum += i --> sum = 1 + 2 = 3
i=3: sum += i --> sum = 1 + 2 + 3 = 6
…
i=100: sum += i --> sum = 1 + 2 + 3 +…+ 100 = 5050
- 算出分数列表[45, 78, 90, 45, 67, 100, 90, 98, 76]的总分。
scores = [45, 78, 90, 45, 67, 100, 90, 98, 76]
total = 0
for i in scores:
total += i
print("总分:", total)
思路解析:
scores = [45, 78, 90, 45, 67, 100, 90, 98, 76]
total = 0
i = 45: total += i --> total = 0 + 45 = 45
i = 78: total += i --> total = 45 + 78 = 123
i = 90: total += i --> total = 123 + 90 = 213
…
- 统计45, 78, 90, 45, 67, 100, 90, 98, 76中小于60的数的个数。
nums = [45, 78, 90, 45, 67, 100, 90, 98, 76]
# 1)定义一个变量保存最后的个数,默认值是0
count = 0
# 2)通过循环获取统计对象
for i in nums:
# 3)判断获取到的对象是否符合个数加1的条件
if i < 60:
count += 1
print("小于60的个数:", count)
- 统计1000以内(1-99)能被3整除的数的个数。
# 方法一
count = 0
for