Python基础-DAY09

函数 function

什么是函数:

  函数是可以重复执行的语句块,可以重复使用,可以提高代码的重用性

 

作用:

  定义用户级别的函数

 

内建函数

  max, len, complex .......

 

函数定义 def 语句 语法

  def 函数名(参数列表):

      语句块

 

def 语法说明:

  1. 函数名就是语句块的名称

  2. 函数的命名规则与变量名相同(函数名必须为标识符)

  3. 函数名是一个变量(不要轻易对其赋值)

  4.函数有自己的名字空间,要让函数处理外部数据需要用参数给此函数传入一些数据

  5.函数不需要传入参数,则参数列表可以为空

  6. 语句部分不能为空,如果为空需要填充pass语句

 

函数调用:

  函数名(实际调用传递参数)

  # 实际调用传递参数 也叫 实参

 

函数的调用说明:

  函数调用是一个表达式

  如果没有return 语句,函数执行完毕后返回None 值对象

  如果函数需要返回其它值对象需要用到 return 语句

 

 

return 语句

语法:

   return [表达式]

   注:[] 代表内容可以省略

 

作用:

  只能用在函数内部,用于结束当前函数的执行,返回到调用此函数的地方,同时返回一个值对象的引用关系

 

说明:

  1. return 语句后跟的表达式可以省略,省略后等同于 return None

  2. 如果函数内没有return 语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return None)

  3. 函数调用只能返回一个对象的引用

函数的参数传递:

位置传参

  实际参数(实参) 的对应关系形式参数对应关系以位置来依次对应的。

 

示意:

  def mymin(a, b, c):

      pass

  #        ^  ^  ^

  mymin(   1, 2, 3)  #

 

说明:

  实际参数的个数必须与形式参数的个数完全相同

 

序列传参:

  序列的元素个数必须与形式参数个数相同

 

示例:

defmyfun1(a, b, c):

    "这是一个函数参数的示例:"

    print("a 的值是:",a)

    print("b 的值是:",b)

    print("c 的值是:",c)

s1= [11, 22, 33]

s2= (44, 55, 66)

s3= "ABC"

 

myfun1(s1[0],s1[1], s1[2])

myfun1(*s1)

myfun1(*s2)

myfun1(*s3)

myfun1(*"XYZ")

 

序列传参说明:

  序列的位置信息对应相应的参数位置

 

关键字传参:

  是指传参时,按着形参的名称给形参赋值

  实参和形参按名称进行匹配

说明:

  实参可以不按照位置给定

示例:

  myfun1(b=22, c=33, a=11)  # a->11, b->22, c->33

 

 

字典关键字传参:

  通过字典进行匹配,字典的值传递给键对应的形式参数

例:

  d1={"c": 33, "b": 22,"a": 11}

  myfun1(**d1) 11->a 22->b  33->c

说明:

  字典的键名和形参名必须一致

  字典的键名必须为字符串

  字典的键名要在形参中存在

 

总结:

  传参方式有如下几种 :

    1.  位置传参

    2.  序列传参  *序列

    3.  关键字传参

    4.  字典关键字传参  **字典

 

可变/不可变类型的实参的参数传递的区别

可变的类型有:

   list, dict, set, bytearray(后面要学)

 

传参说明:

  1. 不可变类型的数据作为函数参数传入时,函数内部不会改变变量的原数据的值,是安全的

  2. 可变类型的数据作为函数参数传入时,函数内部可以改变原数据,多用于返回更多函数执行的结果

 

示例:

  # 写一个函数,在函数内部读取输入,把所有的奇数放在列表odd中,把所有的偶数放入列表even中

 

  def read_number(o, e):

      while True:

          x = int(input("请输入一个数:"))

          if x < 0:

              break

          if x % 2 == 1:

              o.append(x)

          else:

              e.append(x)

  odd = [] # 奇数列表:

  even = [] # 偶数列表

  read_number(odd, even)

  print(odd)

  print(even)

 

 

函数的综合传参:

  函数的传参方式,在能确定形参能唯一匹配到相应实参的情况下可以任意组合

 

示例:

  def myfun1(a, b, c):

      print("a =", a)

      print("b =", b)

      print("c =", c)

 

  myfun1(1, 2, 3)

  myfun1(1, c=3,b=2)

  myfun1(*[100, 200], 300)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值