欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

循环结构

程序员文章站 2022-04-16 21:37:29
循环结构 循环结构(while) 格式 while 表达式: 语句块 执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块,然后返回while,继续判断表达式的真假,直到表达式的值为假;若表达式的值为假,则直接跳过语句块,之后后面的代码。 说明: 表达式 ......

循环结构

循环结构(while)

  • 格式

    while 表达式:
    语句块

    执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块,然后返回while,继续判断表达式的真假,直到表达式的值为假;若表达式的值为假,则直接跳过语句块,之后后面的代码。

  • 说明:

    • 表达式:也叫循环条件

    • 语句块:也叫循环体

    • 死循环:循环条件一直成立

    • break:跳出循环

    • continue:结束本次循环,进入下次循环

    • else:缩进的语句块,在循环正常退出时执行,break退出时不执行

循环结构(for-in)

  • 说明:for-in也是一种循环,经常用于遍历可迭代的对象,如:字符串、列表、元组、字典等

  • 格式


    for x in y:
    语句块

    执行流程:x依次表示y中的一个元素,遍历结束循环就结束了。

列表生成式

  • 可迭代对象:可以迭代遍历的对象,如:列表、元组、字典

  • range函数

    # 一个对象,保存了产生连续整数的算法
    # 可以节约空间
    # print(range(10))
    # 指定区间,默认其实值为0
    print(range(2, 10))

    # 可以遍历
    for i in range(10):
       print(i)

    # 可以转换成列表
    print(list(range(10)))
  • 列表生成式


    # 列表生成式:快速生成列表
    # print([i for i in range(1, 11)])
    # print([i*2 for i in range(1, 11)])
    # print([i*i for i in range(1, 11)])
    # print([str(i) for i in range(1, 11)])
    print([i for i in range(1, 11) if i % 2 == 0])

循环嵌套

  • 循环能否嵌套?

    • 答:能

  • 循环嵌套示例


    n = int(input('请输入一个整数:'))

    for i in range(n):
       for j in range(i+1):
           print(j+1, end=' ')
       print()
  • 列表元素排序

    • 冒泡排序


    lt = [1, 5, 7, 3, 2]
    # 冒泡排序:从小到大
    # 第一轮:1 5 3 2 7
    # 第二轮:1 3 2 5 7

    n = len(lt)

    # 外层循环控制比较多少轮
    for i in range(n-1):
       # 内层循环控制元素的比较
       for j in range(n-i-1):
           if lt[j] > lt[j+1]:
               # 通用交换元素
               # temp = lt[j]
               # lt[j] = lt[j+1]
               # lt[j+1] = temp
               # python特有的
               lt[j], lt[j+1] = lt[j+1], lt[j]
    print(lt)
    • 选择排序


    思想:先取出第一个元素,然后依次与后面所有的元素比较,不合适,发生交换。
    示例:lt = [3, 5, 2, 8, 6, 4]
    第一轮:2, 5, 3, 8, 6, 4
    第二轮:2,3,5, 8, 6, 4
    第三轮:2,3, 4, 8, 6, 5

字符串操作

  • 拼接与切割


    s = 'I love you more than I can say'
    # 按照指定的内容进行切割, 返回一个列表
    # sep:指定按照什么内容进行切割
    # maxsplit:指定切割次数
    # ret = s.split(' ', maxsplit=1)
    # ret = s.split()
    # 从右边开始切割
    ret = s.rsplit(' ', maxsplit=1)
    print(ret)

    s = 'Hello\nworld'
    # 安照换行进行切割
    print(s.splitlines())

    s = 'I love you more than I can say'
    ret = s.split()
    # 字符串的拼接
    s2 = '*'.join(ret)
    print(s2)
  • 查找统计判断


    s = 'Hi buddy, if you have something to say, than say; if you have nothing to say, than go!'

    # 子串查找,找到返回首次出现的位置(下标),找不到返回-1
    # ret = s.find('good')
    # 从后面开始查找
    # ret = s.rfind('if')
    # 统计次数
    # ret = s.count('if')

    # 判断是否以指定内容开头
    # ret = s.startswith('Hi')

    # 判断是否以指定内容结束
    ret = s.endswith('go')

    print(ret)
  • 转换及替换


    s = 'hello world!'

    # 转换为大写
    print(s.upper())

    # 转换为小写
    print(s.lower())

    # 大小写转换
    print(s.swapcase())

    # 首字母大写
    print(s.capitalize())

    # 每个单词首字母大写
    print(s.title())

    # 用指定的新内容替换就内容,count待定
    print(s.replace('l', 'L'))
  • 类型判断


    s = 'Hello'

    # 是否是全大写
    print(s.isupper())

    # 是否是全小写
    print(s.islower())

    # 是否每个单词只有首字母大写
    print(s.istitle())

    # s = '123'
    # 是否是全数字
    print(s.isdecimal())

    # 是否全是字母
    print(s.isalpha())

    s = '123'
    # 是否全是数字或字母
    print(s.isalnum())