zoukankan      html  css  js  c++  java
  • Python基础学习笔记(09)函数、参数

    Python基础学习(09)函数与参数

    一、今日内容大纲

    • 初识函数
    • 函数的结构与调用
    • 函数的返回值
    • 函数的参数

    二、初识函数

    1. 函数的概念

      假如 Python 没有 len() 的功能,如何获取 string、list、tuple 等数据类型的长度?

      # 获取 string 的长度
      s = 'dasdasdasdsa'
      len = 0
      for char in s:
          len += 1
      print(len)
      
      # 获取 list 的长度
      l1 = [32, 423, 34, 3, 423, 4, 324, 23]
      len = 0
      for item in l1:
          len += 1
      print(len)
      
      # tuple 同理
      

      这样写代码具有重复代码太多、代码可读性差等缺点,于是我们可以选择封装一个函数 来放置这些多次重复的代码:

      # 这样我们可以封装一个函数来放置多次重复的代码
      def my_len(s):
          len = 0
          for i in s:
              len += 1
          print(len)
      s = 'dasdasdasdsa'
      l1 = [32, 423, 34, 3, 423, 4, 324, 23]
      my_len(s)
      my_len(l1)
      

      这样我们就利用更简洁、可读性更强的方式实现了同样的功能,而这种封装而成的代码就称为函数。它以功能为导向,一个函数封装一个功能,随调随用。

    2. 函数的基本结构

      # 函数的基本结构
      def meet():
          print('打开探探')
          print('左滑一下')
          print('右划一下')
          print('找美女')
          print('悄悄话。。。')
          print('约。。。走起。。。')
      '''
      结构:
      def:关键字:定义函数
      meet:函数名:与变量设置相同,具有可描述性
      函数体:需要缩进,函数中尽量不要出现print
      括号:完成参数的传递
      '''
      # 函数无法直接执行,需要'function()'才会执行
      meet()
      
    3. 函数的返回

      可能有返回单个值、多个值(会以元组形式返回),也可能返回None。如 len() 的描述: Return the number of items in a container.

      • 无返回值:return(python 中可以省略)
      • 单个返回值:return element
      • 多个返回值:return element_1, element_2....

    三、函数的参数

    1. 函数的参数类型

      • 实际参数:在函数调用的时候给函数传递的值

      • 形式参数:函数接受的参数,写在函数声明的位置的变量

      # 实际参数(实参):在函数调用的时候给函数传递的值
      # 形式参数(形参):函数接受的参数,写在函数声明的位置的变量
      def meet(gender):
          print('进行筛选性别:{}'.format(gender))
      meet('女')
      # 此时的形参为sex,实参为'女'
      
    2. 实参角度的传参

      • 位置参数:实参与形参需要一一对应,不能缺少或更换位置

        def meet(gender, age, hobby):
            print('进行筛选
        性别:{}
        年龄:{}
        爱好:{}
        '.format(gender, age , hobby))
        meet('女', 18, '男')
        
      • 关键参数:让关键字一一对应即可,不需要完全按照顺序

        meet(age=18, hobby='男', gender='女')                  # 也可以手动设置形参与实参的对应关系,这时顺序可以打乱
        
      • 混合参数:可以前面用位置参数,后面用关键字参数

        meet('女', hobby='男', age=18)
        
    3. 形参角度的传参

      • 位置参数:与实参角度的位置参数相对应

      • 默认值参数:调用函数可以默认不输入,默认项须在后面

        def meet(age, hobby, gender='女'):                       # 调用函数可以不输入gender项,不设置会默认gender为女
            print('进行筛选
        性别:{}
        年龄:{}
        爱好:{}
        '.format(gender, age , hobby))
        meet(18, '男')
        
    4. 练习题

      # 练习1:传入两个字符串参数,将两个参数拼接完成后形成的结果返回
      def joint(str1, str2):
          return str1 + str2
      print(joint('123','123'))
      
      # 练习2:写一个函数,只接受两个int的参数,函数的功能是将较大的数返回
      def cmp(a, b):
          return a if a > b else b    # 三元运算符:简单的if else(如果a大于b返回a,如果不满足返回b)
      print(cmp(1,2))
      
      # 练习3:写一个函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
      def check_list_len(list):
          if len(list) > 2:
              return  list[:2]
          else:
              return list
      print(check_list_len([1,555,444,4]))
      
  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1160 FatMouse's Speed
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1003 Max Sum
    HDU 1297 Children’s Queue
    UVA1584环状序列 Circular Sequence
    UVA442 矩阵链乘 Matrix Chain Multiplication
    DjangoModels修改后出现You are trying to add a non-nullable field 'download' to book without a default; we can't do that (the database needs something to populate existing rows). Please select a fix:
    opencv做的简单播放器
    c++文件流输入输出
  • 原文地址:https://www.cnblogs.com/raygor/p/13257979.html
Copyright © 2011-2022 走看看