循环控制语句

循环控制语句

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)
posted @ 2023-02-02 11:52  travellerα  阅读(29)  评论(0)    收藏  举报