python--循环结构

Python–循环结构

1、while 循环

while 条件表达式:
    代码块

首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块…如此循环,直到条件表达式的值为假(False),才终止循环。

# 打印 1~100 的所有数字,就可以使用 while 循环
i = 0
while i < 100:
    i += 1
    print(i)

while 循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。

2、for循环

常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。

for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块
for i in range(10):
    print(i)

range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。从0开始。

# 遍历range()
for i in range(10):
    print(i, end=" ")  # 0 1 2 3 4 5 6 7 8 9

# 遍历字符串
str01 = 'hello,world.'
for i in str01:
    print(i, end=' ')  # h e l l o , w o r l d .

# 遍历列表:
lst = [1,2,3,4,5]
for i in lst:
    print(i, end=' ')  # 1 2 3 4 5

# 遍历元组:
t = ('java','python','linux')
for i in t:
    print(i, end=' ')  # java python linux

print()

# 遍历字典:
d = {
    'id': 1,
    'name': '中国',
    'title': '中国最牛,666',
}
for i in d:
    print(i, end=' ')  # id name title  # 直接遍历字典,和遍历字典 keys() 方法的返回值是相同的。
for i in d.values():
    print(i, end=' ')  # 1 中国 中国最牛,666    # 遍历字典的值
for i in d.items():
    print(i, end=' ')  # ('id', 1) ('name', '中国') ('title', '中国最牛,666')  # 遍历字典的键值对

# 遍历集合
s = {'语文', '数学', '英语'}
for i in s:
    print(i, end=' ')  # 数学 英语 语文 
  • 无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

  • 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者 for 中有 while 也都是允许的。

3、循环嵌套

循环嵌套结构的代码,Python 解释器执行的流程为:

  1. 当外层循环条件为 True 时,则执行外层循环结构中的循环体;
  2. 外层循环体中包含了普通程序和内循环,当内层循环的循环条件为 True 时会执行此循环中的循环体,直到内层循环条件为 False,跳出内循环;
  3. 如果此时外层循环的条件仍为 True,则返回第 2 步,继续执行外层循环体,直到外层循环的循环条件为 False;
  4. 当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则整个嵌套循环才算执行完毕。

python--循环结构_第1张图片

嵌套循环执行的总次数 = 外循环执行次数 * 内循环执行次数

例子:打印九九乘法表:

##  九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%d' %(j, i, i*j), end=' ')
    print()

冒泡排序:

# 冒泡排序
lst = [32,21,67,90,43,6,12]
for i in range(len(lst)):
    for j in range(0,len(lst)-i-1):
        if lst[j] > lst[j + 1]:
            lst[j], lst[j+1] = lst[j+1], lst[j]
print('排序后的数组:')
for i in lst:
    print(i, end=' ')

4、break 和 continue

1)使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。

continue 只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。

lst = ['java', 'linux', 'python', 'docker', 'Vue']
for i in lst:
    if i == 'docker':
        continue
    print(i, end=' ')  # java linux python Vue 

2)只用 break 语句,可以完全终止当前循环。

break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。

  • break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下跳出循环体。
# break 退出循环
str = 'hello,world.'
for i in str:
    if i == ',':
        break
    print(i, end=' ')
else:
    print('你好,中国。')
print('这是循环结构外部的代码。')

注意:当有break 存在时,就不会执行else 里的代码。

对于循环嵌套结构来说,break 只作用于内部循环,不会退出外部循环。

  • 这里我们可以借助一个bool变量来退出外部循环。
lst = [1,2,3,4,5,6]
flag = False
for i in range(3):
    for j in lst:
        if j == 4:
            flag = True
            break
        print(j, end=' ')
    print('跳出内部循环。')
    if flag == True:
        print('跳出外部循环。')
        break

你可能感兴趣的:(Python,python,开发语言)