金丹期前期:1.5、python语言-python中的函数
一、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,一般不建议太多使用匿名函数
七、总结可变类型和不可变类型的区别
- 全局与局部变量时候的不同:关键词local需不需要的区别
- 平常相互等号赋值之后,其中一个改变,两者行为的区别。
- 可变参数 a+=a 与 a = a +a的区别,放在函数内尤其明显。
金丹期前期:1.5、python语言-python中的函数相关推荐
- python语言包含的错误,Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种...
Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种 答:编译错误 人体体温能自动调控在37度,其原因是( ). 答:人体内产生的热能是分批放出的 人体内有完善的 ...
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...
- Python语言学习:复杂函数(yield/@property)使用方法、案例应用之详细攻略
Python语言学习:复杂函数(yield/)使用方法.案例应用之详细攻略 目录 yield 1.生成斐波那契數列 @property 其他函数 yield 带有 yield 的函数在 Python ...
- Python使用numpy中trim_zeros函数去除首尾0值的语法
Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros
- Python class 类中 __init__ 函数
什么是类? 类 是通过执行类语句创建的特定对象类型.类对象 被当作模板来创建实例对象,实例对象包含了特定于数据类型的数据(属性)和代码(方法). 类可以基于一个或多个的其他类,称之为基类(ES),它继 ...
- [转载] python 列表List中index函数的坑
参考链接: Python列表list sort() python 列表List中index函数的坑 例如 a = [1, 2, 1] 如果使用 a.index(1), 输出的只是列表中第一个出现的 1 ...
- 在c语言程序中main函数的位置,在C语言程序中,main函数的位置_________。
在C语言程序中,main函数的位置_________. 答:可以放在任意位置 一切邪教组织及其活动都是诡秘的.邪恶的.危害社会的.非法的 答:正确 产品可以根据其耐用性和是否有形而分为( ) 答:非耐 ...
- 金丹期前期:1.8、python语言-python程序的模块与包
一.python中的模块 在C语言中A.c文件如要调用一个B.c文件的全局变量和函数,须用语句#include <A.h>即引入A.h(该文件中有针对A.c中的全局变量和函数的声明),否则 ...
- python语言编程中的保留字_Python语言程序设计整理
第一周:Python基本语法元素 1.3 实例1:温度转换 例:将摄氏度和华氏度互换 利用转换公式如下: C=(F-32)/1.8,F=C*1.8+32 代码: 1.4Python程序语法元素分析 1 ...
- python语言func_python中func什么意思
python中的func表示自定义的函数,func只是一个函数名,它的名字不是固定不变的,自定义的函数的参数包括无参数,也可以根据函数动能传递必备参数.位置参数以及关键字参数等. 小白在学习pytho ...
最新文章
- C - 食物链 POJ - 1182
- IBM推出AutoAI,让企业人工智能模型开发自动化
- 私有镜像仓库的部署与使用方法
- linux多线程学习(六)——信号量实现同步
- Nginx总复习---1
- Oracle 11g vs 12c 内存、优化器等默认参数对比
- Mybatis参数Integer类型值为0 源码处理
- 实验1-利用Debug查看CPU寄存器和内存+利用机器指令和汇编指令编程
- thinkphp下nginx重写index.php
- 数据结构之数组和列表
- 通过gitbub桌面工具同步
- matlab 矩阵平方怎么表示,MATLAB中如何输x的平方
- 毕业论文写作中数据获取与查询
- 常用温度控制方法原理
- 发展零碳的重要支柱——光储直柔
- Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
- 在Nasa网站下载最新 MODIS 数据的详细步骤 ------十分详细
- 2019杭电多校 第七场 Kejin Player 6656(求期望值)
- 上海职称不用考计算机和英语翻译,国家翻译专业资格考试将替代职称评定
- JavaScript(总结完毕)2021.3.7