python之函数一

python之函数一

内容导读

  • 函数初识
  • 函数的参数

函数初识

  1. 函数的介绍

    我们目前为止,已经可以完成一些方法的基本功能了,现在我们自己来实现一个len(),但是不能使用len()方法。

    a = "alexdsb"
    count = 0
    for i in a:
        count += 1
    print(count)
    

    我们现在实现了一个求长度,我还想让你们求一下列表和元组的长度 是不是就要将我们写的内容再次拿过来。

    我们在求一个字典的长度,也需要将我们写好的内容拿过来使用 好像咱们这个程序中好多都是一样的啊,我们能不能把这些代码封装起来,用的时候拿过来就用啊。

  2. 函数的定义

    def是python中关键字主要用来定义函数的

    len这个是函数的名字

    ()里面放置函数的参数

    :冒号是表示这个语句写完了

    我们来看一下函数的定义在内存中的空间中发生了什么:

    image-20190625111259461

    就是这样,内存开辟了一块空间,但是里面存放的是代码。这样我们就将咱们写的代码封装起来了。

  3. 函数的调用

    def len():
      a = "alexdsb"
      count = 0
      for i in a:
          count += 1
      print(count)
    
    len()  # 函数的调用
    

    我们在函数调用执行的时候,才会执行func这个空间里面的代码,执行的时候开辟空间,这次 是在func里面开辟的空间。image-20190625111755578

    当我们执行完函数后,函数里开辟的空间就销毁了,我们如果想用函数里的值就需要从函数中传递出来。

  4. 函数的返回值

    def yue():
        print("约你")
        print("约我")
        print("约他")
        return   
    yue()
    >>>None
    

    返回的结果是None,我们有实时候操作列表的方法打印的结果就是None,我们所有用字符串,列表的方法都是函数。

    函数中遇到return,此函数就立马结束了,不再继续执行。

    函数的返回值可以是多个结果:

    def yue():   
        print("约你")   
        print("约我")   
        print("约他")   
        return "美女一枚", "萝莉一枚"
    girl = yue()
    print(type(girl))   # tuple
    

    注:当函数返回多个结果的时候,返回的是一个元组。

  5. 总结

    1.遇到return,此函数结束,return下面的代码将不会在执行。

    2.return 返回值

    • 如果return什么都不写或者干脆就没写return,返回的结果就是None。
    • 如果return后面写了一个值,返回给调用者这个值。
    • 如果return后面写了多个结果,返回给调用者一个tuple(元祖),调用者可以直接使用解构获取多个变量。

函数的参数

函数的参数
  1. 简述

    参数,就是函数括号里面的类容,函数在调用的时候指定一具体的变量的值就是参数。

    如果我们在定义函数的时候写了形参,在调用的时候没有传递值,调用的时候右边括号会发黄,所以我们必须要传递参数,参数要一一对应,不能多也不能少。

  2. 参数

    • 形参

      写在函数声明的位置的变量叫做形参,形式上的一个完整,表示这个函数需要形参。

    • 实参

      在函数调用的时候给函数传递的值,叫实参,实际执行的时候传递的信息表示给函数传递实参。

    • 传参

      从调用函数的时候将值传递到定义函数的过程叫做传参。

参数的分类
  1. 位置参数
def yue(app,person,music):    #形参
    print("拿出手机")
    print("打开"+app)
    print("搜索" + person +"的"+music)


yue("网易云音乐","春花","我从涯边跌落")    # 实参
结果:
拿出手机
打开网易云音的乐
搜索春花的我从涯边跌落

形参就是一个变量名,实参就是值 传参就是在赋值

def func(addr,age):
    addr = "北京"
  age = 18      # 从实参到形参的过程中,函数体内部帮我做了变量的赋值
  print(addr)
  print(age)

func("北京",18)

练习

编写函数,给函数传递两个参数a,b a,b相加 返回a参数和b参数相加的和

def f(a,b):
    c = a+b
    return c

num_sum = f(5,8)
print(num_sum)
结果: 13

编写函数,给函数传递两个参数a,b 比较a,b的大小 返回a,b中最大的那个数

def f(a,b):
    if a>b:
        return a
    else:
        return b
num_sum = f(5,8)
print(num_sum)
结果:8

比较大小的这个写法有点麻烦,我们在这里学一个三元运算符

def f(a,b):
    c = a if a > b else b  #当a>b就把a赋值给c,否则就把b赋值给c
    return c
msg = f(5,7)
print(msg)
结果:
7

2.关键字参数

位置参数好不好呢? 如果是少量的参数还算OK, 没有问题. 但是如果函数在定义的时候参数非常多怎么办? 程序员必须记住, 我有哪些参数, 而且还有记住每个参数的位置, 否则函数就不能正常调用了. 那则么办呢? python提出了一种叫做关键字参数. 我们不需要记住每个参数的位置. 只要记住每个参数的名字就可以了

def yue(app,person,music):    
    print("拿出手机")
    print("打开"+app)
    print("搜索" + person +"的"+music)


yue(app="网易云音乐",person="春花",music="我从涯边跌落")    # 实参
结果:
拿出手机
打开网易云音的乐
搜索春花的我从涯边跌落

搞定, 这样就不需要记住繁琐的参数位置了.

3.混合参数

可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.

# 混合参数 
yue("微信", age=18, address="上海")    # 正确.第一个位置赋值给chat, 后面的参数开始指定关键字.

yue(age="18", "微信", address="广州")  # 错误, 最开始使用了关键字参数, 那么后面的 微信的位置就串了, 容易出现混乱

注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面

4.总结

综上: 在实参的⾓角度来看. 分为三种:

  1. 位置参数
  2. 关键字参数
  3. 混合参数, 位置参数必须在关键字参数前面

位置参数:

位置参数,按照位置来赋值,到目前为止,我们编写的函数都是这种

def yue(chat, address, age):   

    print("拿出手机")   
    print("打开"+chat)   
    print("找个"+address+"附近漂亮的"+str(age)+"岁妹子")   
    print("约不约")

默认值参数:

在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以 给出具体的值, 也可以不给值, 使⽤用默认值. 比如, 我们录入咱们班学生的基本信息. 通过调查发现. 我们班大部分学生都是男生. 这个时 候就可以给出⼀一个sex='男’的默认值.

def stu_info(name, age, sex='男'):   
    print("录入学生信息")
    print(name, age, sex)   
    print("录入完毕")

stu_info("张强", 18)

注意:必须先声明在位置参数,才能声明关键字参数

综上:在形参的角度来看

  1. 位置参数
  2. 默认值参数(大多数传进来的参数都是一样的, 一般用默认参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值