当前位置: 移动技术网 > IT编程>脚本编程>Python > 循环结构

循环结构

2018年07月31日  | 移动技术网IT编程  | 我要评论

循环结构

循环结构(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())

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网