python--循环结构

Posted 大聪明胖胖龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,则整个嵌套循环才算执行完毕。

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

例子:打印九九乘法表:

##  九九乘法表
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开发第4节Python分支结构与循环结构

1、流程控制

  流程: 计算机执行代码的顺序就是流程

  流程控制: 对计算机代码执行顺序的管理就是流程控制

  流程分类: 流程控制共分为3类:

    • 顺序结构
    • 分支结构/选择结构
    • 循环结构

2、分支结构(if...else)

多项分支结构:

#!/usr/bin/python3

age = int(input("请输入你家狗狗的年龄: "))
print("")
if age < 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相当于 14 岁的人。")
elif age == 2:
    print("相当于 22 岁的人。")
elif age > 2:
    human = 22 + (age -2)*5
    print("对应人类年龄: ", human)

### 退出提示
input("点击 enter 键退出")

嵌套分支结构:

# !/usr/bin/python3

num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

3、循环结构

3.1、while循环

格式1:
    while 条件表达式:
        循环的内容
        [变量的变化]

格式2:

    while 条件表达式:
        循环的内容
        [变量的变化]
    else:
        python语句..

3.2、for...in循环

  for...in 循环用于遍历容器类的数据(字符串,列表,元组,字典,集合)

格式1:

    for  变量  in  容器:
        python代码,可以在此使用变量

格式2:

    for 变量1,变量2 in 容器:
        python代码,可以在此使用变量1和变量2

3.3、else子句

格式:
    for  变量  in  容器:
        python代码,可以在此使用变量
    else:
        循环结束是执行的代码!

3.4、break语句

  break作用:终止当前循环结构的后续操作

#!/usr/bin/python3

for letter in ‘Runoob‘:     # 第一个实例
   if letter == ‘b‘:
      break
   print (‘当前字母为 :‘, letter)

var = 10                    # 第二个实例
while var > 0:              
   print (‘当期变量值为 :‘, var)
   var = var -1
   if var == 5:
      break

print ("Good bye!")

3.5、continue语句

  continue作用:跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

#!/usr/bin/python3

for letter in ‘Runoob‘:     # 第一个实例
   if letter == ‘o‘:        # 字母为 o 时跳过输出
      continue
   print (‘当前字母 :‘, letter)

var = 10                    # 第二个实例
while var > 0:              
   var = var -1
   if var == 5:             # 变量为 5 时跳过输出
      continue
   print (‘当前变量值 :‘, var)
print ("Good bye!")

3.6、pass语句

  pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句

def spide():
    pass

if __name__ == "__main__":
    spider()

 

以上是关于python--循环结构的主要内容,如果未能解决你的问题,请参考以下文章

「Python」语言元素分支结构和循环结构

「Python」语言元素分支结构和循环结构

python的程序结构有哪几种

0.python class

Python学习笔记之循环结构

Python控制流:顺序结构分支结构循环结构+forif ... elsewhileif... elif...elif..elseif