#函数基本应用,函数可以看做是语句的集合,通过函数调用来执行其包含的语句。函数可以返回一个计算结果,根据每次函数调用的参数
#可以返回不同的计算结果,根据每次调用的参数,可以返回不同的计算结果。
#python利用函数提高代码的重用率,减少了代码冗余。
#定义函数
#python使用def语句定义函数,基本格式如下:
# def 函数名(参数表):
#     函数语句
# return 返回值
#其中,参数和返回值都不是必须有的,python允许函数可以没有参数,也没有返回值。例如:
def hello():print("python 你好")
#调用函数;
hello()#hello()函数没有参数,也没有返回值,通过print()打印一个字符串。下面的例子定义两个参数,并用return语句返回两个参数的和;
#定义函数
def add(a,b):return a+b
#调用函数,并接受返回值;
res=add(2,4)
#打印输出的结果 ;
print(res)#函数调用
#在python中,所有的语句都是实时执行的,不像cc++存在编译过程。def也是一条可执行的语句,定义一个函数。所以函数的调用
#必须在函数定义之后。
#在python中,函数名也是一个变量,它引用return语句返回的值,没有返回值,函数值为None。
#定义函数
def mul(a,b):return a*b
#直接访问函数名,可返回函数名的内存地址
print(add)
#如下是调用函数,并接受返回值,以及将函数名赋值给变量,然后使用变量进行调用。
def div(a,b):return a/b
#调用函数,并返回函数值;
res=div(10,2)
#打印结果;
print("10/2=",res)
#将函数名赋值给变量
x=div
#通过变量名来调用函数
res=x(1,8)
#打印结果;
print(res)
#函数参数,在定义函数的时候,参数中的各个参数成为形式参数,简称形参。调用函数时,参数表中提供的参数称为实际参数。
#在python中,变量保存的是对象的引用,类似C C++中的指针。实际传递给形参的就是将对象的引用赋值给形参。
#多态是,面向对象的一个特点,指同一个行为针对不同对象会得到不同的结果。python中的变量无类型属性,变量可引用各种不同
#类型的对象。同一个函数,传递的实际参数不同时,可获得不同的结果,提现了多态。
#支持“+”运算的对象均可作为参数
def add(a,b):return a+b
res=add(1,2.5)
print("数值相加:",res)res=add("abc","def")
print("字符串相加:",res)res=add((1,2),(3,8))
print("元祖合并,",res)res=add([1,2],[3,4])
print("列表合并:",res)
#这里的+属于直接使用的方式,实现了多态。
#参数赋值传递,通常函数调用时按参数的先后顺序,将实际传递形参传递给形参。例如调用add(1,2.5)时,1传递给a
#2.5传递给b。python允许以形参赋值的方式,指定将实参传递给形参。
#定义函数
def add(a,b):return a+b
#通过赋值来传递参数
res=add(a='ab',b='cd')
print(res)
#通过赋值来传递参数;
res=add(b='ab',a='cd')
print(res)
#可以看出来,在采用参数赋值传递时,因为指明了接受实参的形参名称,所以参数的先后顺序已经无关紧要。参数赋值传递方式
#成了关键字传递。
#3.参数传递与共享引用
#定义函数
def  f(x):x=100
#定义变量,并将变量作为参数传入函数;
a=10
f(a)#执行后显示变量的值;
print(a)
#从结果可以看出,实际参数的值已经覆盖了原来的值100.
#4.小心使用可变参数,当参数是可变参对象时,如列表、字典等,若在函数中修改形参,因为是共享引用
#通过实参也获得修改后的对象。
def  f(a):#修改列表第一个值a[1]='abc'
#定义列表对象;
x=[1,2]
#调用函数,传递列表对象的引用
f(x)
#变量x引用的列表对象在函数中被修改。
print(x)
#可见,可变参数可在函数中被修改,如果不希望在函数中的修改影响函数外的变量,应该注意避免可变参数被修改。
#如果要避免列表在函数中被修改,可使用列表的拷贝作为实参。例如:
def f(a):#修改列表中的第一个值;a[0]='abc'
x=[1,2]
#传递列表的拷贝
# f(x[:])
print(x)
#如果不希望在函数中的修改影响函数外的变量,应避免可变参数被修改。如果要避免列表在函数中被修改,可使用列表的拷贝
#作为实际参数。
def f(a):#拷贝列表;a=a[:]#修改列表的拷贝;a[0]='abc'
x=[15,2]
#调用函数
f(x)
#结果显示原列表不变
print(x)
#5.有默认值的参数;
#在定义函数时,可以为参数设置一个默认值,调用函数时,如果未提供实际参数,则形参取默认值。例如:
#定义函数;
def add(a=9,b=-100):return a+b
#传递指定参数;
res=add(1,2)
print(res)
#形参b取默认值;
res=add(1)
print(res)res=add()
print(res)

python函数(一)相关推荐

  1. Pass算子python 函数

    Pass算子python 函数 函数 • 函数是代码的一种组织形式 • 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数 ...

  2. Python 函数的可变参数(*paramter与**paramter)的使用

    Python 函数的可变参数主要有 *paramter与**paramter 可变参数主要有 *paramter的作用 接受任意多个实际参数并放到一个元组中 def people(*people):f ...

  3. 【python教程入门学习】Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...

  4. python系统提供构造函数传入参数_[ Python入门教程 ] Python函数定义和使用

    函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果.通过使用函数,可以提高代码的重复利用率.本文主要介绍Python函数的定义.调用和函数参数设置方法. 函数的定义 Python函数定 ...

  5. python函数第二次运行报错_Python学习笔记2-函数、高级特性

    函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...

  6. [教程]Python函数的参数

    Python函数的参数 位置参数.默认值参数.可变参数.关键字参数和命名关键字参数 1 函数结构 def 函数名(参数):函数体返回值 2 位置参数 略 3 默认值参数 略 4 可变参数 # 可变长度 ...

  7. python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce、map、filter)

    python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce.map.filter) Python 中函数的应用非常广泛,比如 input() .print().range( ...

  8. python函数参数*arg和**kwargs分别代表什么?

    python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...

  9. python 函数 默认参数

    python 函数 默认参数 def add(a=1, b=2): # a,b设置默认参数c = a + breturn c c = add(a=2) # 如果不填,就是默认参数 print(c) 4

  10. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

最新文章

  1. Redis持久化 - RDB和AOF
  2. ArcGIS API for Silverlight 入门学习笔记(三):基础地图实例
  3. [USACO08JAN]Cell Phone Network G 树形dp
  4. Android 根据从服务器中获取的rgb值实现动态改变圆角加框的Imageview 的背景色
  5. java调用WCF问题
  6. Python模拟决赛现场最终得分计算过程
  7. 软件详细设计说明书_软件测试的基本理论 笔记
  8. CodeForces - 729D
  9. 解决(Missing artifact com.oracle:ojdbc14:jar:11.2.0.4.0)
  10. 《51单片机应用开发从入门到精通》——1.3 Keil uVision2集成开发环境
  11. 《数字图像处理》空间滤波学习感悟1:空间滤波原理
  12. matlab 中gradient()函数的用法
  13. 安卓3dtouch测试软件,不必羡慕iPhone!安卓手机可以这样实现“3D Touch”
  14. openGauss社区理事会正式成立!云和恩墨与3大运营商、7大头部银行等18家理事单位加入,共建、共享、共治优质社区...
  15. python数字2大写汉字转换(金额转换)
  16. NLP-基础任务-中文分词算法(1)-基于词典: 机械分词(词典字符串匹配):前向最大匹配、后向最大匹配、双向最大匹配【OOV:基于现有词典,不能进行新词发现处理】
  17. 【力扣周赛#324】6266. 使用质因数之和替换后可以取到的最小值+6267. 添加边使所有节点度数都为偶数+6268. 查询树中环的长度
  18. 百度网盘安装在c盘显示系统权限限制的解决方法
  19. 4G、5G中的基本时间单位Ts和Tc
  20. 3-7 pandas数据的读取与存储

热门文章

  1. Python解释器和IPython
  2. JDK 14的新特性:文本块Text Blocks
  3. linux 等待信号,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  4. java当前时间转化毫秒_Java中将毫秒转化为日期的方法
  5. Leecode 1218. 最长定差子序列——Leecode每日一题系列
  6. 柔性体没有应变_柔性应变和压力传感器
  7. 项目在云服务器上的绝对路径,服务器上的绝对路径怎么写
  8. linux 性能教程,Linux系统下常见性能分析工具的使用
  9. 传统公司部署OpenStack(t版)简易介绍(七)——cinder模块部署
  10. 冷藏温度范围_冰箱冷藏温度多少合适 冰箱冷藏温度调节范围