• python基础03-循环结构及函数基础


    循环结构及函数基础

    循环结构(for-in)

    • 说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等

    • 格式:

      for x in y:
        循环体
      

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

    • 示例1:遍历字符串

      s = 'I love you more than i can say'
      for i in s:
          print(i)
      
    • 示例2:遍历列表

      l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟']
      
      for i in l:
          print(i)
      
      # 可以获取下表,enumerate每次循环可以得到下表及元素
      for i, v in enumerate(l):
          print(i, v)
      
    • 示例3:遍历字典

      d = {'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'}
      
      for key in d:
          # 遍历字典时遍历的是键
          print(key, d.get(key))
      
      # for key, value in d.items():
      # 上下两种方式等价 d.items() <=> dict.items(d)
      for key, value in dict.items(d):
          print(key, value)
      
    • 列表生成式

      • 可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象
      • range,用法如下:
      print(range(10))
      # 可以生成从0开始到10的连续整数的迭代对象
      print(range(0, 10))
      
      # 可以遍历
      for i in range(10):
          print(i)
      
      # 强制转换为列表
      print(list(range(1, 11)))
      
      • 列表生成式:快速生成具有特定规律的列表
      # 列表生成式
      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])
      
    • 多重循环:就是循环中嵌套循环

      • 示例1:从终端输入一个整数,打印如下图形:
      n = int(input('请输入一个整数:'))
      
      '''
      1
      1 2
      1 2 3
      1 2 3 4
      ...
      1 2 3 4 ... n
      '''
      
      '''
      j = 1
      while j <= n:
          i = 1
          while i <= j:
              print(i, end=' ')
              i += 1
          print()
          j += 1
      '''
      
      for i in range(1, n+1):
          for j in range(1, i+1):
              print(j, end=' ')
          print()
      
      • 示例2:打印九九乘法表
      for i in range(1, 10):
          for j in range(1, i+1):
              print('{}x{}={}'.format(j, i, j*i), end=' ')
          print()
      
      • 示例3:列表排序(选择法)
      l = [1, 9, 4, 2, 0, 8, 3, 7]
      
      # 获取长度
      n = len(l)
      
      # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置
      # 确定n个元素起始只需要n-1圈即可
      for i in range(n-1):
          # 内层循环用来比较大小交换元素,一圈确定一个元素
          for j in range(i+1, n):
              # 如果不合适
              if l[i] > l[j]:
                  # 交换两个变量
                  l[i], l[j] = l[j], l[i]
      
      print(l)
      

    函数

    • 定义:具有特定功能的一段代码

    • 优点:

      • 解决代码的重复书写问题
      • 可以将功能的实现者和使用者分开,提高开发效率
      • 增加的代码的可移植性
    • 分类:

      • 库函数:print、input、abs等
      • 自定义:用户自己封装的函数
    • 格式:

      def 函数名([参数列表]):
        函数体
      

      []表示可选,参数可以没有,也可以有多个。

    • 函数名:

      • 遵循标识符的命名规范(与变量命名相同)
    • 函数调用:

      • 函数定以后不会执行,需要调用才执行
      • 调用:函数名([参数])
    • 示例:

      # 无参无返回值
      def print_hello():
          print('Hello')
      
      # print_hello()
      
      # 带参无返回值
      def print_n_hello(n):
        for i in range(n):
                print('Hello')   
      
      # print_n_hello(5)
      
      # 带参有返回值
      def add(a, b):
        c = a + b
            # 返回结果
            return c 
      print(add(3, 5))
      
    • 函数参数

      • 形参:形式参数,函数定义处的参数
      • 实参:实际参数,函数调用处的参数
      • 必传参数:也叫位置参数,前面定义的函数中使用的都是必传参数,调用时的形式必须要与定义的一致。
      • 默认参数:就是有默认值的参数,必须放在最后
      • 可变长度参数:函数调用时传递必定义时的参数要多,多出来的参数会保存在args和kwargs中
      def show(a, b='默认值'):
          # a就是必传参数
          print(a)
          # b就是默认参数,就是有默认值的参数,必须放在最后
          print(b)
      
      # show(1, 2)
      # 关键字参数,传递参数的时候指定了名字,顺序就无所谓了
      # show(b=456, a=123)
      
      def var_len_args(a, b, name='默认名称', *args, **kwargs):
          print(a)
          print(b)
          print(name)
          # args是一个元组,用来存放所有的多出来的位置参数
          print(args)
          # kwargs是一个字典,用来存放所有的多出来的默认参数
          print(kwargs)
      
      var_len_args(1, 2, 3, 4, age=18)  
      
    • *的特殊用法
    def show(a, b):
        print(a, b)
    
    l = [1, 2]
    # 略显啰嗦
    # show(l[0], l[1])
    # 精简方法
    show(*l)
    
    
    def show2(a='aa', b='bb'):
        print(a, b)
    
    d = {'a':'apple', 'b':'banana'}
    
    # show2(a=d['a'], b=d['b'])
    # 上面方式的简单书写方法
    show2(**d)
    
  • 相关阅读:
    自己动手用Javascript写一个无刷新分页控件
    自己动手写一个通用的分页存储过程(适用于多表查询)
    Towards Accurate Multiperson Pose Estimation in the Wild 论文阅读
    统计学习方法c++实现之一 感知机
    2018百度之星开发者大赛-paddlepaddle学习(二)将数据保存为recordio文件并读取
    2018百度之星开发者大赛-paddlepaddle学习
    [转载]C#_Path类常用操作
    安装SQL2K是的文件挂起错误
    相见恨晚MySQL 多表查询
    php截取字符串,出现乱码
  • 原文地址:https://www.cnblogs.com/wzbk/p/10307629.html
Copyright © 2020-2023  润新知