学习目标
循环结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
while循环 - 基本结构 / break语句 / continue语句
for循环 - 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序
应用案例 - 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡
感谢骆老师的第四天(循环结构)
1.关于使用for-in循环
明确的知道循环的次数,或者要对一个容器进行迭代
- 计算从0加到一百
sum = 0
for x in range(101)
sum += x
print(sum)
需要注意的是上面函数中range类型,它是一个用来产生不变的整数值序列的函数,且多于循环中来枚举
- range(101),生成0-100整数序列
- range(1,101),产生1-100整数序列
- range(1,100,2),可以产生1到99的奇数序列,2为每一步的增量
2.关于使用while和do-while循环
在不知道具体的循环次数的情况下,使用while循环(当表达式的值为false时结束),而在至少循环一次的情况下使用do-while循环
- while循环例子(猜数游戏)
from random import randint # 从包中导入我们需要的函数
x = randint(1,100)
a = int(input('输入你猜测的值 x = '))
while(x != a):
if x > a:
print('比%d要大喔' % a)
else:
print('比%d要小喔' % a)
a = int(input('再试一次!加油!x = '))
print('恭喜你成功猜出来啦!正确答案是%d' % x)
在循环中break将会提前结束整个当前的循环体,而continue则只会结束当前轮的循环,进入下一轮循环,适当的使用break和continue语句对于程序的时间复杂度降低是很有帮助的
练习
- for-in循环打印乘法口诀:
for i in range(1,10):
for j in range(1,i+1):
print('%d * %d = %d' % (j,i,i*j),end ='\t') # end = '\t',表示在循环打印结束末尾加上‘\t'
print() # line breaks
- 判断素数(采用sqrt函数和break,降低复杂度)
from math import sqrt
number = int(input('输入一个数 = '))
end = int(sqrt(number))
i = 0
flag = True
print(end)
for i in range(2,end + 1):
if number % i == 0:
flag = False
break;
if flag and number != 1:
print('是素数')
else:
print('不是素数')