1.函数介绍:

编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有相应的结果(输出)。编程语言中的函数有输入,不一定会返回结果。

编程语言中的函数其实就是一个用于完成某个特定功能的相关代码的代码段 。

编程语言中的函数的作用就是实现代码的可重用性,提高代码可维护性、扩展性和可读性。

2.Python中定义函数的语法:

def 函数名称( 参数 ):"""函数使用说明、参数介绍等文档信息"""代码块return [表达式]

实例:

def func1():  '''testing'''    print('in the func1'),    return 0

要想获取函数的执行结果,就可以用return语句把结果返回

注意:1.函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束

2.如果未在函数中指定return,那这个函数的返回值为None

3.函数的调用

def func2(x,y,z):print(x)print(y)print(z)
test(1,2,3)  #调用函数

4.函数参数说明

①形参:即形式参数,函数定义时指定的可以接受的参数即为形参,比如上面定义的add(a, b)函数中的a和b就是形参;

②实参:即实际参数,调用函数时传递给函数参数的实际值即为实参,比如上面都用add(1, 9)函数中的1和9就是实参;

③位置参数:顾名思义是和参数的顺序位置和数量有关的。函数调用时,实参的位置和个数要与形参对应,不然会报错。

例:两个位置参数

def func3(name, age):print('NAME: %s' % name)print('AGE: %d' % age)
func3('peng',25)      #正确调用
func3(25,'peng')      #错误调用
func3('peng',26,27)   #参数数量错误

④默认参数

def func4(name, age=20):print('NAME: %s' % name)print('AGE: %d' % age)func4('peng')     #正确调用:有默认参数,调用函数的时候,默认函数非必须传递
func4('peng',25)  #正确调用,age取新值
func4(30)         #注意:此时值传给了name,并非传给age

⑤可变长参数(非固定参数)

可变(长)参数:顾名思义,是指长度可以改变的参数。通俗点来讲就是,可以传任意个参数(包括0个)。

可变(长)参数的应用场景:通常在写一个需要对外提供服务的方法时,为了避免将来添加或减少什么新的参数使得所有调用该方法的代码点都要进行修改的情况发生,此时就可以用一个可变长的形式参数。

#*args:接收n个位置参数,转换成元组方式

def func5(*args):
print(args)
func5(1,2,3,4,5,5)
func5(*[1,2,4,5,6]) #args=tuple([1,2,4,5,6])def func6(x,*args):print(x)print(args)
func6(1,2,3,4,5,6,7,8,9)

⑥关键字参数

顾名思义,是指调用函数时通过关键字来指定是为哪个形参指定的实参,如name="Tom", age=10,x=6等等

def func7(x,y,z):print(x)print(y)print(z)
func7(1,2,3)        #正确调用:与形参一一对应
func7(y=2,x=3,z=5)  #正确调用:与关键字参数顺序无关
func7(1,3,y=3)      #报错:positional argument follows keyword argument
func7(1,y=3,6)      #报错:positional argument follows keyword argument
func7(1,x=3,y=6)    #报错:func7() got multiple values for argument 'x'
func7(1,z=3,y=6)    #正确调用
func7(z=3,y=6,7)    #报错:positional argument follows keyword argument

⑦n个关键字参数(非固定参数)

#**kwargs:把多个关键参数转化为字典的方式
def func8(**kwargs):print(kwargs)          #返回:{'age': 18, 'name': 'peng', 'sex': 'F'}print(kwargs['name'])print(kwargs['age'])print(kwargs['sex'])
func8(name ='peng',age =18,sex ='F')def func9(name,**kwargs):print(name)print(kwargs)         #返回:{'age': 18, 'sex': 'F'}
func9('peng',age=18,sex='F')

5.局部变量和全局变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

Ⅰ.局部变量

def change_name(name):print('before chaange',name)name ='Peng' #局部变量:这个函数就是这个变量的作用域print('after chaange',name)
name='peng'
change_name(name)
print(name)

Ⅱ.全局变量

company ='F' #全局变量:代码顶层位置
def change_name(name):company ='M'print('before chaange',name,company)name ='Peng'print('after chaange',name)
name='peng'
change_name(name)
print(name)
print(company)

Ⅲ.修改全局变量

company ='F'
def change_name(name):global company #声明局部变量修改为全局变量company ='M'print('before chaange',name,company)name ='Peng'print('after chaange',name)
name='peng'
change_name(name)
print(name)
print(company)

另:

def change_name():global namename ='Peng'#没有全局变量而在函数里声明局部变量修改为全局变量不推荐用此种方法
change_name()
print(name)

转载于:https://www.cnblogs.com/pengp/p/6671326.html

(14)python函数与变量相关推荐

  1. python函数对变量的作用_python函数对变量的作用及遵循的原则

    1.全局变量和局部变量 全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效 局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在 例如: 1 n=1 #n是 ...

  2. python函数中变量的作用域_Python中变量的作用域(variable scope)

    此文目的 此文主要讨论和总结一下,Python中的变量的作用域(variable scope). 目的在于,通过代码,图解,文字描述,使得更加透彻的了解,Python中的变量的作用域: 以避免,在写代 ...

  3. python变量后加点和函数_教你玩转Python函数和变量

    什么是函数? 一个程序可以包含多个模块,程序越复杂,包含的模块和功能就越多,模块细分里面包含多个类,类这个概念在任何一门面向对象语言里面都很重要,在类里面最主要的就是包含的函数,函数式实现某一个功能的 ...

  4. python函数对变量的作用_Python 包、模块、函数、变量作用域

    Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量 Python是利用包和模块来组织一个项目的. 包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个 ...

  5. 我的地盘我做主—玩转Python函数和变量

    今天我们来学习一下函数的定义,变量以及全局变量 如何定义函数 关键字 def +方法名 +括号(参数)+冒号: >>> def main(x):print("I am a ...

  6. python 函数、变量中单下划线和双下划线的区别

    一._func 单下划线开头 --口头私有变量 1.1.在模块中使用单下划线开头 在Python中,通过单下划线_来实现模块级别的私有化,变量除外.一般约定以单下划线开头的函数为模块私有的,也就是说f ...

  7. python函数对变量的作用遵守原则有哪四条_创建一个包含四个参数的函数

    是的,所以我在做家庭作业,我被要求做以下工作: 创建一个名为student data的函数,它接受四个参数,一个名称(一个字符串).一个年龄(一个整数).一个学生编号(一个字符串)以及他们是否在CSC ...

  8. python函数内部变量能改变外部吗_python中,如何利用函数修改外部变量,注意我的要求...

    问 题 void swap(int *p1, int *p2){ int temp; //临时变量 temp = *p1; *p1 = *p2; *p2 = temp; } int main(){ i ...

  9. python函数对变量的作用域_python函数变量作用域如何理解使用?

    大家对于这个名词"变量作用域"有了解过吗?如果大家没有听说过,小编可以协助大家理解下,拆分出来变量的定义,比如,函数里面去定义变量的,这种叫做局部变量,反之,不再函数里面的,那肯定 ...

最新文章

  1. ArcGIS_系列中文教程下载
  2. 手写实现Spring(IOC、DI),SpringMVC基础功能
  3. c++调用dll动态链接库历程
  4. 分布式/微服务必配APM系统,SkyWalking让你不迷路
  5. 导入项目jsp文件报错,但打开相应的文件并没有错误解决办法
  6. Spring Cloud 2020 年路线图
  7. 有关BT5破解wifi密码的流程及当中经历问题的总结——从寻找ISO镜像到破解wifi密码
  8. 点云的降采样:八叉树采样(Octree)
  9. pvs安装配置_配置警告下一代插件以与PVS-Studio集成
  10. [电脑驱动向]笔记本键盘失灵,电脑插耳机没反应,不要着急拿去物理维修,可能是bios驱动需要更新
  11. Snipe-IT部署方案
  12. 最新微信公众号文章数据导出软件工具
  13. 机器学习(周志华)学习笔记(一)
  14. Python基础,猜成语小游戏
  15. Proximal Algorithms--Moreau-Yosida regularization
  16. omniplan导出html,OmniPlan Pro 3.10.4 最NB的项目管理流程软件
  17. 1.[C# Winform]BackgroundWorker实现进度条的那点事儿
  18. 【技术美术图形部分】AO理论及优化 AO贴图如何参与渲染
  19. python 列表过滤方法 条件表达式
  20. 2022隐私计算十大观察

热门文章

  1. 初学Python编程,100套代码讲解帮你晋级之21
  2. Postman安装(图文)
  3. 青岛大学计算机专业春考,青岛大学春季高考专业
  4. 快速过一遍计算机基础--操作系统—4.文件管理
  5. 2022年系统集成项目管理工程师考试知识点:项目成本管理
  6. 基础实验——485传感器修改地址
  7. js如何判断保留两位小数
  8. php zip解压,php解压缩zip和rar压缩包文件
  9. 古人诚不欺我-南怀瑾大师
  10. 零基础入门MATLAB(一篇十分钟)