循环控制语句
循环控制语句
for循环语句
语法:
for item in sequence:
statements(s)
item:循环变量
sequence:遍历对象
statements:表示执行语句
作用:循环遍历一序列对象(元组,列表,字典等),结束的标志是遍历完成
代码示例:
for letter in "lifeisshort":
print("当前字母:", letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print("当前水果:"+fruit)
内置函数range()
因为在python的for循环中,对象集合可以是元组,列表,字典等,所以可以通过函数range()产生一个整数列表,这样可以完成计数循环功能。
语法格式:
range([start],stop[,step])
start:可选参数:起始数,默认值为0
stop:终止数,如果range只有一个参数x,那么range产生一个从0至x- 1的整数列表
step:可选参数,表示步长,即每次循环序列增加值
注意:产生整数序列最大值为stop-1
代码:
language = ['C#', 'python', 'Java', "C"]
for index in range(len(language)):
print(language[index])
for-else语句
语法:
for item in sequence:
statement1
else:
statement2
item:循环变量
sequence:遍历对象
statement1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量
statement2:else语句中的执行代码,只有在循环正常退出(遍历完所有遍历对象中的值)后执行,如果有break则不会运行到该语句
代码:
# 执行else中语句
for index in range(10):
print(index)
else:
print("运行完毕!")
# 不会执行else中语句
for index in range(10):
print(index)
if index == 5:
break
else:
print("这里不会被执行到")
嵌套for循环
这里用冒泡排序来演示一下:
numList = [1, 4, 9, 8, 3, 2, 5, 6, 7]
listLen = len(numList)
# 循环次数
for i in range(listLen):
sign = True # 排序标志默认为True
# 内循环判断赋值 比较次数(每次比较后都需要减去前面数的比较)
for j in range(listLen-1-i):
if numList[j] > numList[j+1]:
numList[j], numList[j+1] = numList[j+1], numList[j]
sign = False # 当元素换位后表示存在可排序元素,设置为False阻止循环结束
if sign:
break
print("排序后:")
print(numList)
while循环语句
while和for语句类似,功能都差不多,只不过不如for循环直接明了
for和while的区别:
for循环次数明确,while循环次数不明确,这也决定了他们的使用场合。
语法:
while condition:
执行语句
在上述格式中,当condition为true时会运行下面的执行语句,一直到条件为false时才会退出循环。
如果第一次条件表达式就为false,则会忽略while循环
代码:
# 打印1~10的数字
a = 1
while a < 11:
print(a)
a += 1
while-else 循环语句
语法:
while condition:
执行语句
else:
执行语句
和for-else一样,只能用于循环中无break的情况下。如果有break,则else下的代码不会被执行。
代码:
b = 1
while b < 11:
print(b)
b += 1
else:
print("b大于11")
死循环
关于出现死循环
死循环指的是循环一直执行下去而不会停止,有时也被称为无限循环
在python程序中,while循环语句不像for循环语句那样遍历完某个对象的集合后会停止循环。在使用while语句时,最容易出现的问题是测试条件永远为真,导致死循环发生
解决:
在使用while循环的时候,注意检查while的条件表达式,避免出现死循环
嵌套的while循环(和嵌套for循环类似)
这里也用循环实现冒泡排序
numList = [1, 4, 9, 8, 3, 2, 5, 6, 7]
length = len(numList)
# 创建循环变量
i = 0
# 进行冒泡排序
while i < length:
sign = False # 当元素不可进行排序时为false
j = 0
while j < length-1-i:
if numList[j] > numList[j+1]:
numList[j],numList[j+1] = numList[j+1],numList[j]
sign = True # 元素可排序时修改为True
j += 1
i += 1
# 当排序标志为false说明已排序完毕
if not sign:
break
print(numList)