Python基础14

作者: Arabid | 来源:发表于2020-10-24 08:19 被阅读0次

第八章 函数

8.1 函数是什么

这一小节可以不看

从这一篇教程开始,我会让你明白Python没有你想象中的那么简单。
注意:Python的函数不同于数学函数。
数学函数:
定义:函数(function)的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
也即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。
形式:

f(x) = kx
f(x) =  kx + b #直线
f(x) = ax² + bx + c #抛物线
f(x) = ax³ + bx² + cx + d #回归式抛物线
...

计算机函数:
定义:函数是指一段可以直接被另一段程序或代码引用的程序或代码。也叫做子程序、(OOP中)方法。

一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。
形式:

int main(){
#C
}

public static void main(String[] args){
#Java
}

def main():
    #Python

我们可以看出,Python中的函数定义是最简单的。

为什么要使用函数?百度百科中给出了如下结论:
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。

说句人话:函数有利于增强程序可读性,让程序更简洁。

8.2 定义函数的内容

在Python中,我们使用def()语句来定义函数,即:

def 函数名(*参数1,参数2...):
    函数的内容

正常的程序

例41:输出五个hello world:

 #方法1:
 print("hello world")
 print("hello world")
 print("hello world")
 print("hello world")
 print("hello world")
 #方法2:
 for i in range(0,5):
     print("hello world")
#方法3:
def hw(count):
     for i in range(0,count):
        print("hello world")
hw(5)

我觉得第3种方法更可读,你呢?

8.3 global和nonlocal关键字,内联和闭包函数

def f1():
    print("this is f1!")
    def f11():
        print("this is f11!")  

这时我们可以通过f1()调用,显示正常,但是我们调用f11时,却不会成功。因为Python无法在一级函数里找到f11()
这时,我们称f11()f1()的内联函数(Inline function)。
但如果我们的函数内有变量呢?我们可以使用nonlocal和global关键字。
它们的区别在哪里呢?我们来看一张图。


如果二级函数内有一个变量h,那么使用nonlocal h之后,我们可以在一级函数内使用h,使用global h之后,我们可以在主程序内使用h。
接着我们继续使用上面的例子,f1对f11内部作用域函数。使用一个变量赋值调用的方法称为闭包(closure)
不懂也没有关系,我们以后会举例子使你明白。

相关文章

  • Python基础14

    第八章 函数 8.1 函数是什么 这一小节可以不看 从这一篇教程开始,我会让你明白Python没有你想象中的那么简...

  • python资料汇总

    1. python基础及可视化学习 Python 的 14 张思维导图 快速入门MXBoard:MXNet数据可视...

  • 2018-08-02Python(14)

    python基础语法(14) 异常处理 作用 避免不可预知的情况造成的系统崩溃。 基础结构 常见的异常类 IOEr...

  • python基础学习_打卡14天

    记录参与python基础知识14天(08/28-09/10)打卡学习活动,每天更新 python 第一天(08/2...

  • python完全参考教程

    Python基础 Hello World! Python基础 基本数据类型 Python基础 序列 Python基...

  • Python基础(14)——文件

    open打开文件 参数file用来指定文件的相对路径或绝对路径。参数mode用来指定文件的打开模式 with打开文...

  • Python基础学习14

    matplotlib库安装 画图事例 pandas和matplotlib相结合使用 seaborn库安装 seab...

  • 快速学习Python基础知识(4)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • 快速学习Python基础知识(3)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • 读书笔记 | Python学习之旅 Day14

    Python学习之旅 读书笔记系列 Day 14 《Python编程从入门到实践》 复盘:第一部分基础知识(第1章...

网友评论

    本文标题:Python基础14

    本文链接:https://www.haomeiwen.com/subject/sahimktx.html