1.函数的定义

  • 函数是一段具有特定功能的、可重用的语句组
  • 函数是一种功能的抽象,一般表达特定的功能
  • 用于降低编程难度和代码复用
    def <函数名>(<参数>):
    <函数体>
    return <返回值>
#计算n!
def fact(n):s=1for i in range (1,n+1)s*=ireturn s
  • 函数定义时,所指定的参数是一种占位符
  • 函数定义后,如不被调用,就不会被执行

2.函数的调用

  • 调用时要给出实际的参数
  • 实际参数替换定义中的参数
  • 函数调用后得到返回值(也可以没有返回值)
#与上一段代码接应
a=fact(10)
print(a)

3.函数的参数

a.参数定义

  • 函数可以没有参数,但结构必须保留
    def <函数名>():
    <函数体>
    rerurn <返回值>
  • 可选参数
    def <函数名>(<非可选参数>,<可选参数>):
    <函数体>
    return <返回值>
#如果不给第二个参数m,则m作为1参与计算
def fact(n,m=1):s=1for i in range (1,n+1)s*=ireturn s//m
  • 可变参数,不确定参数数量
    def <函数名>(<参数>,*b):
    <函数体>
    return <返回值>
def fact(n,*b):s=1for i in range (1,n+1):s*=ifor item in b:s*=itemreturn s

b.参数传递

  • 函数调用时,参数可以按照位置或名称方式传递

c.关于*符号在参数位置

*

  • 当*出现在函数定义的参数中时,表示任意数目参数收集
  • *是用元组的形式收集不匹配的位置参数。当这个函数调用时,Python将所有位置相关的参数收集到一个新的元组中,并将这个元组赋值给变量args
def f(*args):print(args)
f(1,2,3,4)
------>(1,2,3,4)
def f(a,*args):print(args)
f(1,2,3,4)
------>(2,3,4)

**

  • **只对关键字参数有效
  • **允许将关键字参数转化为字典,可以使用键调用来进行步进或字典迭代
def f(**args):print(args)
f(a=1,b=2)
------>{'a':1,'b':2}

参数混合

def f(a,*pargs,**kargs):print(a,pargs,kargs)
f(1,2,3,x=4,y=5)
------>1 (2,3) {'x':4,'y':5}

函数调用时出现*

def func(a,b,c,d):print(a,b,c,d)
args=(1,2,3,4)
func(*args)
------>1 2 3 4
def func(a,b,c,d):print(a,b,c,d)
kargs={'a':1,'b':2,'c':3,'d':4}
func(**kargs)
------>1 2 3 4

4.函数的返回值

  • 函数可以有返回值,也可以没有,可以有return,也可以没有
  • 函数可以返回0个或多个结果
def fact(n,m=1):s=1for i in range(1,n+1):s*=ireturn s//m,n,m

5.局部变量和全局变量

  • 局部变量是程序内部使用的变量
  • 整个程序使用的变量叫全局变量

a.使用规则

(1)局部变量是函数内部的占位符,与全局变量可能重名但是不同
(2)函数运算结束后,局部变量被释放
(3)global可以用于在函数内部使用全局变量


(4)局部变量为组合数据类型且未创建,等同于全局变量

  • 基本数据类型,无论是否重名,局部变量和全局变量都不同
  • 组合数据类型,如果局部变量未真实创建,则是全局变量
  • 可以通过global保留字在函数内部声明全局变量

6.lambda函数

  • 该函数将函数名作为函数结果返回
  • 该函数是一种匿名函数,即没有名字的函数
  • 使用lambda保留字定义,函数名是返回结果
  • lambda函数用于定义简单的、能够在一行内表示的函数
    <函数名>=lambda <参数>:<表达式>
f=lambda x,y:x+y
f(10,15)
#输出25
f=lambda:"lambda函数"
print(f())
#输出:lambda函数

7.补充:函数分类

  • 内置函数:系统提供
  • 非内置函数:import导入使用
    导入方法:
    import 模块名称
    from 模块名称 import*
import math
math.sin(30)
from math import *
sin(30)

导入模块指定的函数或属性
from 模块名 import 函数名

from math import sin
sin(30)
  • 自定义函数
  • 库函数:内置库函数/非内置库函数
    内置库函数:import导入使用
    非内置库函数:也叫做第三方库,需要安装使用

Lawliet|Python学习笔记3——函数相关推荐

  1. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  2. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  3. Python学习笔记——一些函数

    本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...

  4. 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数

    >>> # 函数 >>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!" ...

  5. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  6. Python学习笔记:匿名函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. python学习笔记三一 函数学习

    函数学习 range函数 •生成有序的序列 •生成数字队列可以定制 # range函数案例1 # 生成一个从1到10的数字序列 # range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1 ...

  9. Python学习笔记之函数(四)

    1.传递任意数量的实参,可以在形参的参数底下加个 * 符号,在我们预先不知道要函数要接受多少实参的时候,就可以使用这种方式,函数就可以从调用语句中收集任意数量的实参. 示例代码如下: #传递任意数量的 ...

最新文章

  1. 蜘蛛搜索引擎_各大搜索引擎的蜘蛛特点
  2. AI式剥削:数据标注人员日薪低至51块钱
  3. vi/vim多行注释和取消注释
  4. oracle如何写循环日期自增_Oracle动态创建时间分区,以及Oracle12c中快速创建自增列...
  5. 关于Linux网卡调优之:RPS (Receive Packet Steering)
  6. java自动封箱_java自动封箱是什么意思
  7. day20T3改错记
  8. 获取桌面DC: GetDC(GetDesktopWindow())与GetDC(NULL)
  9. integnps 数控智能编程v19.3 数控切割机编程 切割机套料编程
  10. godot正确设置2d像素游戏
  11. 软考高项之项目变更管理
  12. dell主板恢复出厂设置_如何清除DELL电脑主板CMOS信息并恢复默认设置
  13. R语言怎么写积分_2. 角速度的积分
  14. 分布式定时任务框架---Uncode Schedule
  15. 抽象代数之S3的自同构群和S3的内自同构群
  16. Liunx学习笔记--基本网络设定(测试内容)
  17. Android 辅助服务实战-游戏点击器
  18. 四次方程根式解+四次以上方程近似解的js实现代码(上)——复数类+复数常量+三角函数简表
  19. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
  20. 现在有很多第三方的SDK来做直播,那么我们改选择哪一种?

热门文章

  1. 在 44186 款开源软件中搜索 前端开发者不得不知的 ECMAScript 6 十大特性 oschina 2016年03月16日 前端开发者不得不知的 ECMAScript 6 十大特性
  2. java获取和风天气_SpringMVC结合天气api实现天气查询
  3. Photoshop把漂亮湖景照片调成唯美雪景效果
  4. python 波动率锥_50ETF波动率的统计属性及其对波动率交易策略的启示
  5. Java 指令与字节码
  6. 超宽带室内信道模型研究与matlab仿真,复杂室内环境超宽带信号信道模型及仿真结果分析.pdf...
  7. 幻读和不可重复读的区别
  8. 赛博朋克版特效shader
  9. 在矛盾中不断走向灭亡的北宋社会
  10. 未明学院:双非学生风雨求职路 | 海投过上百封简历,面过券商、咨询、私募等6个方向后我得出的经验与教训