一、Python中最简单的函数介绍

1、定义格式

def 函数名():代码

 关键词:def关键字、冒号、代码缩进行表示属于该函数界内

2、调用方法

函数名()

关键词:不缩进,直接函数名即可调用

3、文档说明

def 函数名():"该区域是对该函数的说明"代码

函数的说明文档调用方式:help(函数名)就会打印出上一段文字来简单介绍该函数。

二、函数的三大要素之函数参数

1、形参逐个列出,实参逐个按序传入实数

函数定义:

def sum(a, b):c = a+bprint c

函数调用:

print(sum(1,2))

2、形参逐个列出,实参用形参名传入实数

#! /usr/bin/python3def sum(a,b):c = a+breturn cprint(sum(a=2,b=3))
print(sum(b=2,a=1))
#print(sum(a=2,3))  #error
#print(sum(b=3,1))  #error

关键词:这种情况下可以乱序,但是即使按顺序时候也要带上全部形参名

3、形参逐个后面含有默认值,实参个数可能少于形参,传入实数

print(sum(1,3))
print(sum(2))
print(sum(a=2))
print(sum(a=2,b=3))
print(sum(b=3,a=1))
#print(sum(3,a=1)) #error

关键词:定义阶段有默认值的参数务必放在后面,调用阶段有默认值的实参可以不传

4、形参不定长,实参个数可以调用时候决定,传入实数

#! /usr/bin/python3def fun(a, b, *args, **kwargs):print(a)print(b)print(args)print("kwargs: ")for key, value in kwargs.items():print(key, value)c=(3,4,5)
d={'m':6,'n':7}
#fun() #error
#fun(1)#error
fun(1,2)
print('============')
fun(1,2,3)
print('============')
fun(1,2,m=3,n=4)
print('============')
fun(1,2,3,m=4,n=5)
print('============')
#fun(1,2,a=3,b=4,m=5,n=6)#error
#fun(a=1,b=2,3,4,m=5,n=6)#error
fun(1,2,*c,**d)
fun(1,1,c,d)

运行结果:

1
2
()
kwargs:
============
1
2
(3,)
kwargs:
============
1
2
()
kwargs:
n 4
m 3
============
1
2
(3,)
kwargs:
n 5
m 4
============
1
2
(3, 4, 5)
kwargs:
n 7
m 6
1
1
((3, 4, 5), {'n': 7, 'm': 6})
kwargs:

关键词:至少要包含普通的实参,而且不可乱序(带形参,带默认值)。可以没有元组或者字典参数。元组和字典有两种形式实参。注意倒数两次调用的区别,实参要使用* 和** 不然出现逻辑错误

5、引用传参,实参为变量(类比C/C++中的地址传递和值传递)

直接上结论:

  • 对于可变类型:使用函数内使用+=的情况下,实参的之会被改变。
  • 对于不可变类型:实参的值无论如何也不会改变。

关键词1:a = a+a与 a+=a的区别,尤其是该语句放在函数内部时候。

关键词2:a = 可变类型b与a=不可变类型b的区别:后期b改变时候a变不变,前者变,后者不变

关键词3:可变类型:列表,字典;

                不可变类型:数值类型,字符串,元组

参考:https://www.cnblogs.com/wxcx/p/12547997.html

三、函数三大要素之返回值

1、返回一个值

def sum(a, b):return a+b

2、可返回多个值

def divid(a, b):shang = a//byushu = a%b return shang, yushush, yu = divid(5, 2)

关键词:本质是用了元组

四、函数三大要素之局部变量及其与全局变量的关系

1、局部变量

  • 局部变量,就是在函数内部定义的变量
  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

2、全局变量与局部变量

变量定义在函数外,既能在一个函数中使用,也能在其他的函数中使用,这样的变量是全局变量

  • 函数内局部变量和全局变量重名,是局部变量起效
  • 想在函数内修改不可变类型的全局变量,使用关键字local,不然函数报错无法将全局变量指向新的数据(可变类型的全局变量在函数内修改不用使用local)
  • 可变类型的局部变量和全局变量同名时候需特别注意!!

可参考:https://blog.csdn.net/bigxuyang/article/details/77877935?utm_source=blogxgwz4,可在它基础上继续实验test2 = [1,2] def F(a): a = a+a print(a) F(test2) print(test2),进一步理解!!

五、特殊类型的函数之递归函数

  • 如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
  • 要防止锁死,无法结束

六、特殊类型的函数之匿名函数

用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

1、匿名函数的定义语法:

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

2.匿名函数的使用场合

  • 作为参数传递
  • 作为简单的计算

参考:https://blog.csdn.net/u012308586/article/details/105063731,一般不建议太多使用匿名函数

七、总结可变类型和不可变类型的区别

  1. 全局与局部变量时候的不同:关键词local需不需要的区别
  2. 平常相互等号赋值之后,其中一个改变,两者行为的区别。
  3. 可变参数 a+=a 与 a = a +a的区别,放在函数内尤其明显。

金丹期前期:1.5、python语言-python中的函数相关推荐

  1. python语言包含的错误,Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种...

    Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种 答:编译错误 人体体温能自动调控在37度,其原因是( ). 答:人体内产生的热能是分批放出的 人体内有完善的 ...

  2. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

  3. Python语言学习:复杂函数(yield/@property)使用方法、案例应用之详细攻略

    Python语言学习:复杂函数(yield/)使用方法.案例应用之详细攻略 目录 yield 1.生成斐波那契數列 @property 其他函数 yield 带有 yield 的函数在 Python ...

  4. Python使用numpy中trim_zeros函数去除首尾0值的语法

    Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros

  5. Python class 类中 __init__ 函数

    什么是类? 类 是通过执行类语句创建的特定对象类型.类对象 被当作模板来创建实例对象,实例对象包含了特定于数据类型的数据(属性)和代码(方法). 类可以基于一个或多个的其他类,称之为基类(ES),它继 ...

  6. [转载] python 列表List中index函数的坑

    参考链接: Python列表list sort() python 列表List中index函数的坑 例如 a = [1, 2, 1] 如果使用 a.index(1), 输出的只是列表中第一个出现的 1 ...

  7. 在c语言程序中main函数的位置,在C语言程序中,main函数的位置_________。

    在C语言程序中,main函数的位置_________. 答:可以放在任意位置 一切邪教组织及其活动都是诡秘的.邪恶的.危害社会的.非法的 答:正确 产品可以根据其耐用性和是否有形而分为( ) 答:非耐 ...

  8. 金丹期前期:1.8、python语言-python程序的模块与包

    一.python中的模块 在C语言中A.c文件如要调用一个B.c文件的全局变量和函数,须用语句#include <A.h>即引入A.h(该文件中有针对A.c中的全局变量和函数的声明),否则 ...

  9. python语言编程中的保留字_Python语言程序设计整理

    第一周:Python基本语法元素 1.3 实例1:温度转换 例:将摄氏度和华氏度互换 利用转换公式如下: C=(F-32)/1.8,F=C*1.8+32 代码: 1.4Python程序语法元素分析 1 ...

  10. python语言func_python中func什么意思

    python中的func表示自定义的函数,func只是一个函数名,它的名字不是固定不变的,自定义的函数的参数包括无参数,也可以根据函数动能传递必备参数.位置参数以及关键字参数等. 小白在学习pytho ...

最新文章

  1. C - 食物链 POJ - 1182
  2. IBM推出AutoAI,让企业人工智能模型开发自动化
  3. 私有镜像仓库的部署与使用方法
  4. linux多线程学习(六)——信号量实现同步
  5. Nginx总复习---1
  6. Oracle 11g vs 12c 内存、优化器等默认参数对比
  7. Mybatis参数Integer类型值为0 源码处理
  8. 实验1-利用Debug查看CPU寄存器和内存+利用机器指令和汇编指令编程
  9. thinkphp下nginx重写index.php
  10. 数据结构之数组和列表
  11. 通过gitbub桌面工具同步
  12. matlab 矩阵平方怎么表示,MATLAB中如何输x的平方
  13. 毕业论文写作中数据获取与查询
  14. 常用温度控制方法原理
  15. 发展零碳的重要支柱——光储直柔
  16. Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
  17. 在Nasa网站下载最新 MODIS 数据的详细步骤 ------十分详细
  18. 2019杭电多校 第七场 Kejin Player 6656(求期望值)
  19. 上海职称不用考计算机和英语翻译,国家翻译专业资格考试将替代职称评定
  20. JavaScript(总结完毕)2021.3.7

热门文章

  1. uni-app 点击切换图标
  2. Android自定义View简单实现手绘折(曲)线滚动图效果
  3. android三星note20.6,三星Galaxy Note20系列:凭实力稳坐安卓5G机皇宝座
  4. 字节跳动中台数据分析师社招面经(已offer)
  5. 华硕rog gx501v笔记本一键u盘装win10详细教程
  6. 航班信息的查询与检索(C语言版)
  7. JUSE-StatWorks是一个统计分析业务包
  8. JavaScript版本变迁历史
  9. Python版在图片上添加图片
  10. 微信小程序原生实现抖音的视频翻页效果