一、循环概述
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。
一组被重复执行的语句称之为循环体,能否继续重复,却决于循环的终止条件。
循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。
如果你之前有过其它语言的编程基础,比方说C、C++、Java、JS等,那么你对循环的逻辑肯定已经很熟了。无论是什么语言,循环的逻辑都是一样的,只不过是具体语法有些小的差别。
二、while循环
首先,我们看一下Python 中 while 语句的语法结构:
while 判断条件(condition):
执行语句(statements)……
然后,图示执行逻辑,如下:首先判断条件condition是否为真,如果为真,就执行代码块statements,执行完代码块之后,再重新判断条件condition是否为真,如果为真,再执行代码块statements,执行完代码块之后,再重新判断条件condition是否为真......如此循环往复,直到判断条件condition为假,则循环结束。
下面,我们通过一个实例来说明:
# 计算从1到100的总和
i = 1
sum = 0
while i <= 100:
sum = sum + i
i = i + 1
print(sum)
分析:首先定义两个变量,i定义循环次数,sum记录总和。
第一次循环,i初始的值是1,本次循环结束之后为2
while 1 <= 100:
sum = 0 + 1
i = 1+ 1
第二循环,i初始的值是2,本次循环结束之后为3
while 2 <= 100:
sum = 1 + 2
i = 2 + 1
...
第100次循环,
while 100 <= 100:
sum = 4950 + 100
i = 100 + 1
第101次循环,
while 101 <= 100:
条件为假,循环结束。
需要注意的是,在 Python 中没有 do..while 循环,这和Java等语言是不一样的。
三、for循环
for循环使用场景很多。
语法如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
案例1:遍历字符串
# 遍历 字符串
str = "Hello,World"
for value in str:
print(value)
打印结果:
案例2:遍历列表
fruitList = ["苹果", "梨", "香蕉"]
for value in fruitList:
print(value)
打印结果:
案例3:遍历元组
tuple = ('苹果', 786, 2.23, 'hello', 70.2)
for x in tuple:
print(x)
打印结果:
四、continue和break
break和continue是用来结束循环的,区别在于:continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。break结束当前整个循环,执行当前循环下边的语句,需要注意的是在嵌套循环中,break只能结束当前所在层级的循环。
break案例:找到小明
studentList = ["小红", "小兰", "小明", "小李"]
for student in studentList:
if student == "小明":
print("找到小明了,循环结束")
break
else:
print("不是小明,继续循环")
打印结果:
continue案例:
studentList = ["小红", "小兰", "小明", "小李"]
for student in studentList:
if student == "小明":
print("找到小明了,循环结束")
continue
print("continue后,不会执行到")
else:
# continue不会结束整个循环,找到小明后,会继续执行
print("不是小明,继续循环")
五、range函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成一个数列。
也可以用range()生成的数字序列,指定循环次数。
案例1:输出数字0到9
for i in range(10):
# 注意,生成的数是从0开始
print(i)
打印结果:
案例2:输出指定区间的数字6到12
for i in range(6, 13):
print(i)
打印结果:
案例3:输出指定区间的数字1到10,指定步长为2
for i in range(1, 10, 2):
print(i)
打印结果为:
案例4:通过range函数,指定循环次数,输出列表中前三个同学的名字
studentList = ["小红", "小兰", "小明", "小李"]
for i in range(0,3):
name = studentList[i]
print(name)
打印结果: