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

Python基础—06-函数基础

发布时间:2020-12-17 00:22:57 所属栏目:Python 来源:网络整理
导读:h1 id="函数基础" data-source-line="1"函数基础 h3 id="函数简介" data-source-line="3"函数简介 ul data-source-line="5" 定义:就是具有特定功能的一段代码 优点: 解决代码的重复书写 可以将功能的实现着和使用者分开,提高开发效率 分类: 库函数:prin

<h1 id="函数基础" data-source-line="1">函数基础
<h3 id="函数简介" data-source-line="3">函数简介
<ul data-source-line="5">

  • 定义:就是具有特定功能的一段代码
  • 优点:
    • 解决代码的重复书写
    • 可以将功能的实现着和使用者分开,提高开发效率
  • 分类:
    • 库函数:print、input、abs等
    • 自定义:用户自己封装的函数
    • 定义函数格式

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

    • 函数名:

      • 与变量一样,只要遵循标识符的命名规范即可。
    • 函数调用:

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

      i range(10(<span style="color: #008000">#<span style="color: #008000"> print_hello()<span style="color: #008000">

      <span style="color: #008000"> 带参数无返回值

      <span style="color: #0000ff">def<span style="color: #000000"> print_n_hello(n):
      <span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> range(n):
      <span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">Hello world!<span style="color: #800000">'<span style="color: #000000">)

      <span style="color: #008000">#<span style="color: #008000"> print_n_hello(5)

      <span style="color: #008000">#<span style="color: #008000"> 带参有返回值
      <span style="color: #0000ff">def<span style="color: #000000"> add(m,n):
      c = m +<span style="color: #000000"> n
      <span style="color: #008000">#<span style="color: #008000"> 使用return返回需要返回的值,不返回默认为None
      <span style="color: #0000ff">return<span style="color: #000000"> c

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

    分类的标准是按照有无参数,以及有无返回值。

      形参:形式参数,就是写在函数定义出的参数

    • 实参:实际参数,就是在函数调用时传递的参数

    • 位置参数:也叫必传参数,没有默认值的参数

    • 默认参数:定义时有默认值,调用时可以不传,必须写在最后

    • 关键字参数:在函数调用时指定参数名字,参数的位置就无所谓。

    • 可变长度参数:函数调用时可以传递比定义处更多的参数,多出来的参数会保存在args和kwargs中

      var_len_args(a,b,name=,*args,** var_len_args(1,2,3,4,age=10)

      *的使用:

      lt = [1,2<span style="color: #000000">]
      <span style="color: #008000">#
      <span style="color: #008000"> 需要从列表根据下表获取元素,然后作为参数传递
      <span style="color: #008000">

      <span style="color: #008000"> show(lt[0],lt[1])

      show(*<span style="color: #000000">lt)

      <span style="color: #0000ff">def show2(aa=11,bb=22<span style="color: #000000">):
      <span style="color: #0000ff">print<span style="color: #000000">(aa,bb)

      d = {<span style="color: #800000">'<span style="color: #800000">aa<span style="color: #800000">': 123,<span style="color: #800000">'<span style="color: #800000">bb<span style="color: #800000">': 456<span style="color: #000000">}
      <span style="color: #008000">#<span style="color: #008000"> show2(aa=d['aa'],bb=d['bb'])<span style="color: #008000">

      <span style="color: #008000"> 上下等价

      show2(**d)

      函数的定义位置是随意的?
      • 不是,一定是先定义后调用,函数的调用一定要放在定义之后。
    • 函数的名字可以相同吗?
      • 不可以,若出现同名函数,后者会覆盖前者。
    • 函数内容能否再定义函数?
      • 可以,定义在函数内部的函数叫内部函数,它是很多高级功能实现的基础。

      块级作用域

      =

      <span style="color: #008000">#<span style="color: #008000"> 能够在块的外部使用,说明没有块级作用域
      <span style="color: #0000ff">print(name)

    • 局部作用域

      • 局部变量:定义在函数内部的变量叫局部变量,只能在函数内部使用。
      = 10

      <span style="color: #008000">#<span style="color: #008000"> 不能再函数外部使用,此处会报错
      <span style="color: #0000ff">print(a)

    • 全局作用域

      • 全局变量:定义在函数外部的变量叫全局变量,哪里都可以使用
      num = 10

      <span style="color: #0000ff">def<span style="color: #000000"> show():
      <span style="color: #008000">#<span style="color: #008000"> 声明使用的时外部的同名变量
      <span style="color: #0000ff">global<span style="color: #000000"> num
      <span style="color: #008000">#<span style="color: #008000"> 只能使用,不能修改,若想修改协议进行全局声明
      num = 20
      <span style="color: #0000ff">print<span style="color: #000000">(num)

      show()
      <span style="color: #0000ff">print(num)

      1. 函数内部可以使用外部变量,但是不能修改
      2. 若修改需要使用global进行全局声明
      3. 当函数内部与外部出现同名变量,默认使用的时内部变量
    • nonlocal使用

      • 说明:内部函数使用外部函数的局部变量,需要使用nonlocal进行声明
      = 10 = 20 wai()

      定义:函数内部调用函数本身的函数叫递归函数。
    • 组成:
      • 函数内部调用自己
      • 终止条件(停止调用自己的条件)
      • 核心算法(具体功能)
    • 特点:
      • 代码简洁
      • 可读性差(不易理解)
      • 瞬间占用内存较大,没有终止条件立即崩溃
      • 有些领域是禁止使用的(安全领域:汽车电子)
      • 只有在不得不使用的时候才使用(遍历目录)
    • 练习:(可以做个小练习来巩固)
      • 求n的阶乘
      • 斐波那契数列的第n项
        • 前两项都为1,从第三项开始,每一项都等于前两项的和
        • 如:
          1,1,5,8,13,21,...

      内置函数(无需导入)

      强制类型转换:
      int
      float
      str
      list
      tuple
      set
      dict

      max:求多个参数的最大值,或可迭代对象中的最大元素
      min:最小值
      sum:求和,可迭代对象元素求和
      pow:求幂,pow(2,3)等价于2 ** 3<span style="color: #000000">
      round:四舍五入,可以指定保留位数

      hex:16进制
      oct:8进制
      bin:2进制

    • 模块函数(需要导入)

      <pre data-source-line="239"><code class="hljs"><span class="hljs-built_in">?

    (编辑:李大同)

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

      推荐文章
        热点阅读