首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python函数基本使用原理详解

1.什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义 后调用 2.为何要用函数 1、组织结构不清晰,可读性差 2、代码冗余 3、可维护性、扩展性差 3、如何用函数...1.函数的定义 定义的语法 ”’ def 函数名(参数1,参数2,…): “””文档描述””” 函数体 return 值 1. def: 定义函数的关键字; 2....函数名:函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能; 3. 括号:括号内定义参数,参数是可有可无的,且无需指定参数的类型; 4....定义函数发生的事情 1、申请内存空间保存函数体代码 2、将上述内存地址绑定函数名 3、定义函数不会执行函数体代码,但是会检测函数体语法 2.函数调用 函数的使用分为定义阶段与调用阶段,定义函数时只检测语法...,不执行函数体代码,函数名加括号即函数调用,只有调用函数时才 会执行函数体代码 调用函数发生的事情 1、通过函数名找到函数的内存地址 2、然后加口号就是在触发函数体代码的执行 3.函数返回值 return

38231

Softmax函数原理Python实现

Softmax原理 ---- Softmax函数用于将分类结果归一化,形成一个概率分布。作用类似于二分类中的Sigmoid函数。...softmax可以用于实现上述结果,具体计算公式为: 1.png 对于k维向量z来说,其中\(z_i \in R\),我们使用指数函数变换可以将元素的取值范围变换到\((0, +\infin)\),...Softmax性质 ---- 输入向量x加上一个常数c后求softmax结算结果不变,即: 2.png 我们使用softmax(x)的第i个元素的计算来进行证明: 3.png 函数实现 ----...由于指数函数的放大作用过于明显,如果直接使用softmax计算公式 4.png 进行函数实现,容易导致数据溢出(上溢)。...所以我们在函数实现时利用其性质:先对输入数据进行处理,之后再利用计算公式计算。

6.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python函数参数分类原理详解

    一、参数的定义 1、函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号,隔开 案列: # 利用函数的参数,定义一个可以完成任意两个数相加的函数...def add_num(a,b): c = a + b print(c) 2、带参数的函数调用: 函数定义了参数,那么调用函数的时候就需要传入参数 add_num(11,22) #运行结果...33 上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参, 而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的。...def add(a,b): c=a+b print(c) add(11,22) 上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错 2.2、默认参数(缺省参数): 调用函数的时候可以传可以不传...注意点:使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。 以上就是本文的全部内容,希望对大家的学习有所帮助。

    53210

    Python递归函数特点及原理解析

    1 递归函数的特点 特点 一个函数 内部 调用自己 函数内部可以调用其他函数,当然在函数内部也可以调用自己 代码特点 函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同 当 参数满足一个条件...时,函数不再执行 这个非常重要,通常被称为递归的出口,否则 会出现死循环!...2 递归案例 —— 计算数字累加 需求 定义一个函数 sum_numbers 能够接收一个 num 的整数参数 计算 1 + 2 + … num 的结果 def sum_numbers(num): ​...if num == 1: return 1 # 假设 sum_numbers 能够完成 num - 1 的累加 temp = sum_numbers(num - 1) ​ # 函数内部的核心算法就是...# # 练习 # 创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回True,否则返回False # 回文字符串,字符串从前往后念和从后往前念是一样的 # abcba #

    80130

    Python闭包函数的使用和原理

    嵌套函数中,内部函数引用外部函数的参数和变量所获得的结果,被外层函数当做返回值给返回的情况称为闭包函数。 下面先来看看一段代码,然后再详细解释闭包函数原理。...当我们执行func(3)的时候返回一个func1函数,当我们再调用test这个变量的时候,其实就是调用外层函数返回的内部函数func1,所以也能传参,这时候就有了结果。...下面我们把之前的学生上网案例拿出来,使用闭包函数来选择内部函数返回不同功能作用的结果,类似于返回函数,但是本质有区别,返回函数是对返回的函数种类进行筛选,闭包函数是对内部函数处理的不同结果进行返回。...test(int(age)) # 对内部函数返回的结果进行筛选 这里要注意闭包函数内部函数如果定义和外部函数同名变量时的作用域问题。...,也就是m被重新赋值后,调用函数以后

    74320

    python函数嵌套、函数作为变量以及闭包的原理

    嵌套函数python允许创建嵌套函数。也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变。...理解:在inner函数中,python解析器需要找一个叫name的本地变量,查找失败后会继续在上层的作用域里面寻找,这个上层作用域定义在outer函数里,python函数可以访问封闭作用域。...对于outer函数中最后一句,返回inner函数调用的结果,需要知道非常重要一点就是,inner也仅仅是一个遵循python变量解析规则的变量名,python解释器会优先在outer的作用域里面对变量名...在python里,函数就是对象,它也只是一些普通的值而已。...这就回到了我们的闭包这个问题上了,python支持一个叫函数闭包的特性。啥是闭包?如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包。

    5.1K11

    Python函数生成器原理及使用详解

    1.python函数运行原理 import inspect frame = None def foo(): bar() def bar(): global frame frame = inspect.currentframe...() pass # python解释器 python.exe 会用一个叫做PyEval_EvalFrameEx(c语言函数)去执行foo函数,首先会创建一个栈帧(stack frame), """...python在运行前会编译成字节码对象 当foo调用bar函数进,又会创建一个栈帧, 关键是所有的栈帧都是分配在堆内存, 堆内存有个特点,不手动释放,就会一直存在 这就决定了栈帧可以独立于调用者存在....# 当前frame栈帧的调用者的栈帧 print(caller_frame.f_code.co_name) # foo , 也可以拿到bar函数的栈帧 python函数的调用就是创建栈帧的过程,而这些创建的栈帧都是存放在堆上面...2.生成器执行原理 测试代码 def gen_fun(): yield 1 name = 'admin' yield 2 gender = 'male' return 3 看看测试代码对应的字节码文件

    77810

    C函数原理

    C语言作为面向过程的语言,函数是其中最重要的部分,同时函数也是C种的一个难点,这篇文章希望通过汇编的方式说明函数的实现原理。...只要能够保存函数调用前,下一句代码的地址,这样在函数执行完成后将这个地址赋值给eip寄存器,就能够回到调用者的位置,这是函数实现的基本依据。...然后将ESP赋值给ebp, 此时ebp与ESP相等,ebp上面的部分都是该函数函数栈帧,用于保存该函数的局部变量。...从上面所说的函数原理来看,参数是从右至左压栈,这样只需要知道第一个参数的地址,就可以依次向下寻找到各个参数的地址,通过各个参数的类型向下寻址,比如当前参数类型是int型,那么它的下一个参数的地址就是这个地址加...这组宏的实现原理其实与上面我们写的代码差不多。

    60630

    函数实现原理

    言归正传,让我们一起进入虚函数的世界。 虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。...那么,在派生类的实例中,其虚函数表如下所示: 对于实例:Derive d; 的虚函数表如下: 我们可以看到下面几点: 1)虚函数按照其声明顺序放于表中。 2)父类的虚函数在子类的虚函数前面。...一般继承(有虚函数覆盖) 覆盖父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。下面,我们来看一下,如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?...那么,对于派生类的实例,其虚函数表会是下面的一个样子: 我们从表中可以看到下面几点, 1)覆盖的f()函数被放到了虚表中原来父类虚函数的位置。 2)没有被覆盖的函数依旧。...下图中,我们在子类中覆盖了父类的f()函数。 下面是对于子类实例中的虚函数表的图: 我们可以看见,三个父类虚函数表中的f()的位置被替换成了子类的函数指针。

    38420

    malloc函数实现原理

    实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很容易理解。...重要的是,这个实现和真实实现在基本原理上是一致的。 这篇文章将首先介绍一些所需的基本知识,如操作系统对进程的内存管理以及相关的系统调用,然后逐步实现一个简单的malloc。...( size_t size ) ; 这个函数要实现的功能是在系统中分配一段连续的可用的内存,具体有如下要求: malloc分配的内存大小至少为...所分配的地址不能有重叠部分,除非某次malloc所分配的地址被释放掉 malloc应该尽快完成内存分配并返回(不能使用NP-hard的内存分配算法) 实现malloc时应同时实现内存大小调整和内存释放函数...下面给出一个经过简化的内存地址翻译示意图,虽然经过了简化,但是基本原理与现代计算机真实的情况的一致的。

    1.2K20

    对比Excel、MySQL、Python,分别讲述 “if函数” 的使用原理

    作者:黄伟呢 本文转自:数据分析与统计学之美 其实,不管是Excel、MySQL,还是Python,“if”条件判断都起着很重要的作用。...今天这篇文章,就带着大家盘点一下,这三种语言如何分别使用 “if函数” 。 ? if函数原理图如下: ? 1....当然,if函数也是极其重要的一个MySQL函数 。 有了Excel上面的讲解基础后,我们在MySQL中使用if函数,就显得很简单了。...Python 任何一门编程语言,其最大的优势:能够随意编写满足我们需求的代码。在这个过程中,if函数起着极其重要的作用。...单条件语法逻辑如下: if 判断条件: 执行语句…… else: 执行语句…… 案例如下: flag = False name = 'luren' if name == 'python

    1.2K20
    领券