Python基础讲义(五):循环结构
循环结构
0x01内容导图

0x02while循环的使用
-
循环的组成要素:
- 循环控制:开始、结束、步进(迭代)
- 循环体:重复执行的动作
-
死循环:无限循环,必须避免
-
while循环:更适用于循环次数不确定的场合
- 语句块
- 语法形式
#循环初始条件(开始) #while 循环执行条件(为真执行,为假结束): #循环体,必须缩进 #步进或迭代- 示例:1-100求和
def mysum(): s, i = 0, 1 #循环初始条件 while i <= 100: #循环条件 s += i #循环体,累加 i += 1 #步进 return s def run(): s = mysum() print(s) if __name__ == "__main__": run() -
课堂练习:
- 1-100偶数求和
- 1-100奇数求和
0x03for循环的使用
-
for循环:循环简化形式,更适用于循环次数确定的场合
- 遍历可迭代对象,如列表、字符串
- 语法形式
# for 迭代变量 in 可迭代对象(集合):(迭代变量从头到尾依次代表集合中的元素,一行即表示了循环控制部分) #循环体 -
range(begin, end, step):产生指定范围的整数集合
- 范围:[begin, end),左闭右开
- step:步进(包含方向)
-
示例一:改写1-100求和
def mysum():
s = 0
for i in range(1, 101):
s += i
return s
-
示例二:对整数列表求和
- 列表:相当于其他语言的数组,多个元素的集合,可以象字符串样进行索引访问
- 代码实现:
def mysum(ls): s = 0 for e in ls: #e从头到尾依次代表列表中的整数 s += e return s def run(): ls = [5, 3, 2, 8] s = mysum(ls) print(s) if __name__ == "__main__": run() -
示例三:打印星号三角形
def disp_triangle(n): #打印直角三角型
for i in range(1, n+1):
print("*" * i)
- 课堂练习:打印等腰三角形
0x04跳转语句的使用
-
continue:结束本次循环,继续下一次;如现实生活中的“下一个”
-
break:结束本轮循环,不再继续;如现实生活中的“下班时间到了,明天请早”
-
示例:质数判断
- 算法分析:常规思路,怎么判断质数?
- 绘制流程图

- 测试驱动
- 代码实现
def is_prime(n):
"""
>>> is_prime(2)
True
>>> is_prime(9)
False
>>> is_prime(11)
True
>>> is_prime(1)
False
"""
flag = True
for i in range(2, n):
if n % i == 0:
flag = False
break #结束循环,不再继续
return flag
if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True)
运行上述测试,可以发现第4个测试不能通过,我们的程序将1认为是质数了(由于默认为True,而1无法进入循环,因此出错)。我们只需要在处理前添加参数检查的语句即可修复这个错误:即第12行前,添加if n < 2: return False即可。
- 课堂练习:循环改进(思考循环结束条件),提高效率
0x05小结
- 熟练掌握while、for循环的使用并能灵活应用
- 理解跳转语句的区别,能在合适场合正确使用
- 了解循环改进对效率的影响
浙公网安备 33010602011771号