加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python基础—07-函数使用(01)

发布时间:2020-12-17 00:22:56 所属栏目:Python 来源:网络整理
导读:p data-source-line="1"#函数使用 h3 id="零碎知识" data-source-line="3"零碎知识 ul data-source-line="5" 灵活的if-else a = 3 False 5 = 3 = 5 灵活的and/or b = True 3 span style="color: #008000"# span style="color: #008000" 当前面的值为真,后面

<p data-source-line="1">#函数使用


<h3 id="零碎知识" data-source-line="3">零碎知识
<ul data-source-line="5">

  • 灵活的if-else

    a = 3 False 5 = 3 = 5
  • 灵活的and/or

    b = True 3

    <span style="color: #008000">#<span style="color: #008000"> 当前面的值为真,后面就不需要了<span style="color: #008000">

    <span style="color: #008000"> a = True or 5<span style="color: #008000">

    <span style="color: #008000"> 当前面的值为假,才会进行后面的运算

    a = False <span style="color: #0000ff">or 5

  • 类型的判断

    a = 10 type(a) == type(1(a,<span style="color: #008000">#<span style="color: #008000"> 判断一个对象是否是一个类的实例(对象)<span style="color: #008000">

    <span style="color: #008000"> 是返回True,不是返回False

    <span style="color: #0000ff">print<span style="color: #000000">(isinstance(a,int))
    <span style="color: #0000ff">print<span style="color: #000000">(isinstance(a,float))

    <span style="color: #008000">#<span style="color: #008000"> 判断一个对象能否调用
    <span style="color: #0000ff">print(callable(test))

    • 函数可以像普通变量一样进行赋值

      (<span style="color: #008000">#<span style="color: #008000"> name是函数的名字
      <span style="color: #0000ff">print
      (hello.<span style="color: #800080">name
      <span style="color: #000000">)

      <span style="color: #008000">#<span style="color: #008000"> 可以像普通变量一样进行赋值
      a =<span style="color: #000000"> hello

      <span style="color: #0000ff">print(a.<span style="color: #800080">name<span style="color: #000000">)

      hello()
      a()

    • 函数可以作为另一个函数的参数进行传递

      a +<span style="color: #008000">#<span style="color: #008000"> 将函数作为参数<span style="color: #008000">

      <span style="color: #008000"> 可以使函数的功能更加灵活多变

      <span style="color: #0000ff">def<span style="color: #000000"> calc(a,b,func):
      <span style="color: #0000ff">return<span style="color: #000000"> func(a,b)

      <span style="color: #0000ff">print(calc(3,5,add))

    • 匿名函数的出现

      • 将函数作为参数时,若函数只使用一次,没有必要单独定义,然后再传递
      • 定义匿名函数需要使用关键字
      • 定义格式:
        参数列表:表达式
        • lambda开头
        • 后面跟需要的参数,多个参数使用逗号隔开
        • 最后一个参数后跟上':'
        • 冒号后跟上表达式,这个表达式就是返回值,不需要使用return
      • 示例1:
      (calc(5,2, a,b: a - b))
      • 示例2:
      lt =: ,: 20,: 170: ,: 22,: 167: ,: 18,: 160: ,: 25,: 180<span style="color: #0000ff">def<span style="color: #000000"> key(d):
      <span style="color: #0000ff">return
      d[<span style="color: #800000">'
      <span style="color: #800000">age
      <span style="color: #800000">'
      <span style="color: #000000">]

      <span style="color: #008000">#<span style="color: #008000"> lt.sort(key=key)<span style="color: #008000">

      <span style="color: #008000"> 使用匿名函数

      lt.sort(key=<span style="color: #0000ff">lambda d: d[<span style="color: #800000">'<span style="color: #800000">height<span style="color: #800000">'<span style="color: #000000">])
      <span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> lt:
      <span style="color: #0000ff">print(i)

      • 练习:实现列表的sort方法,要求可以指定key,可以逆序

      定义:

      • 外部函数中定义一个内部函数
      • 内部函数中使用外部函数的局部变量
      • 外部函数将内部函数作为返回值返回
      • 此时的内部函数就叫闭包
    • 示例:

      n *f1 = wai(3<span style="color: #000000">)
      f2
      = wai(2<span style="color: #000000">)

      <span style="color: #0000ff">print<span style="color: #000000">(f1())
      <span style="color: #0000ff">print<span style="color: #000000">(f2())

      <span style="color: #0000ff">def wai(*<span style="color: #000000">args):
      <span style="color: #0000ff">def<span style="color: #000000"> nei():
      ret =<span style="color: #000000"> 0
      <span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> args:
      ret +=<span style="color: #000000"> i
      <span style="color: #0000ff">return<span style="color: #000000"> ret
      <span style="color: #0000ff">return<span style="color: #000000"> nei

      f1 = wai(1,3<span style="color: #000000">)
      <span style="color: #0000ff">print(f1())

      作用:当我们想要增加原有函数的功能,但是不想(或无法)改变原来的函数,可以通过装饰器来实现

    • 使用:

      • 首先定义一个装饰器函数,该函数接受一个函数作为参数,然后返回一个闭包
      • 在闭包中调用传递进来的函数,并且前后可以根据需要进行修饰
    • 示例:

      ((@zhuangshiqi <span style="color: #008000">#<span style="color: #008000"> 等价于test = zhuangshiqi(test)
      <span style="color: #0000ff">def
      <span style="color: #000000"> test():
      <span style="color: #0000ff">print
      (<span style="color: #800000">'
      <span style="color: #800000">hello
      <span style="color: #800000">'
      <span style="color: #000000">)

      test()

      装饰器运用

      • 装饰无参无返回值的函数
      • 装饰带参无返回值的函数
      • 装饰带参有返回值的函数

      实现列表的排序函数,要求支持逆序和指定排序标准(key)

    • 计算一个字符串中所有数字的和

    • 实现一个字符串的逆序函数

    • 返回一个列表中出现次数最多的元素

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读