函数的定义

python定义函数使用def关键字

return[表达式]语句用于退出函数,选择性的向调用方返回一个表达式,不带参数值的return语句返回none

def 函数名(参数列表):
函数体
def get_money_fromATM(cardno,password,money):
#密码要求是6位字符串类型
if type(password) is str and len(password)==6:
print('密码正确')
else:
print('密码格式错误')
#金额小于3000元的能被100整除的整数
if type(money) is int :
if money%100==0 and money<=3000:
print('金额正确')
else:
print('金额格式错误,请重新输入') get_money_fromATM(12412412412,'',2300) #运行结果
密码正确
金额正确
#计算面积的函数
def z(x,y):
i=x*y
print(i) z(2,7) #运行结果:
14

def sum(x,y):
z=x+y
print('函数内',z) #调用的函数中没有return表达式
z=sum(5,9)
print('函数外',z) #运行结果
函数内 14
函数外 None
def sum(x,y):
z=x+y
print('函数内',z)
return z #调用的函数中没有return表达式
z=sum(5,9)
print('函数外',z) #运行结果
函数内 14
函数外 14

可变参数

def sum(*lst): 参数前面加一个星号,表示这个参数是可变的,也就是说可以接受多个参数,将这些参数构成一个元组,只能通过为止参数传参

可变参数有两种形式:

  • 位置可变参数 : 参数前加一个星号,参数构成一个元组,参数只能以 位置参数 的形式传参
  • 关键字可变参数 : 参数前加两个星号,参数构成一个字典,参数只能以 关键字参数 的形式传参

当默认参数和可变参数一起出现的时候,默认参数相当于普通参数

通常来说:

  • 默认参数靠后
  • 可变参数靠后
  • 默认参数和可变参数不同时出现

keyword-only: 必须以Key->Value对的形式出现的,叫做keyword-only

参数的传递

 传递不可变对象实例

def jiaohuan(m,n):
temp=m
m=n
n=temp
return a=2
b=3
print(a,b)
jiaohuan(a,b)
print(a,b) #运行结果
2 3
2 3

调用函数时可使用的正式参数类型:必需参数、关键字参数、默认参数、不定长参数

必需参数

  必需参数须以正确的顺序传入函数。调用时的数量不须和声明时的一样

  调用printme函数,必须传入一个参数,不然会出现语法错误

def printme(str):
"打印任何传入的字符串"
print(str) printme("调用printme函数") #运行结果
调用printme函数

关键字参数

  关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值

  使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为python解释器能够用参数名匹配参数值

def printme(str):
"打印任何传入的字符串"
print(str) printme(str="调用printme函数") #运行结果
调用printme函数

参数的默认值

def inc(base,x=1): 给第二个参数设置一个默认值,若是不传递参数,则使用默认的参数值,若是传递参数,则使用传递的参数值

默认参数

  调用函数时,如果没有传递参数,则会使用默认参数,默认参数只能放在参数列表的最后一个,但可以有多个默认参数

def sum(name,age=50):
print(name,age) name='白云'
age=45
sum(name,age) #运行结果
白云 45

不定长参数

  你可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命名

  加了星号的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组,我们也可以不向函数传递未命名的变量

def printinfo(str,*varchar):
'打印任何输入的字符串'
print('输出:')
print(str)
for var in varchar:
print(var) #调用函数printinfo
printinfo(10)
printinfo(70,60,50,40,30) #运行结果
输出:
10
输出:
70
60
50
40
30

匿名函数

python使用laabda来创建匿名函数

所谓匿名,即不再使用def语句这样标准的形式定义一个函数

sum=lambda x,y:x+y

print(sum(1,2))

#运行结果
3
 

python函数基础(函数的定义和调用)的更多相关文章

  1. python函数:函数使用原则、定义与调用形式

    一.函数初始 二.函数的使用原则 三.函数的定义与调用形式 四.函数的返回值 五.函数参数的使用 一.函数初始 # 须知一: # 硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容 # 内存 ...

  2. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  3. Python函数基础-函数调用,定义,参数,递归

    Python内置了很多函数供调用,eg 求绝对值函数abs() >>>abs(-1) 1 >>>abs(1) 求和函数sum(),sum(iterable,star ...

  4. Python学习---基础函数的学习

    1.1. 基础函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 灌输一个概念:Python中函数就是对象,函数和我们之前的[1,2,3],'abc ...

  5. Python编程基础[函数和面向对象](三)

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  6. python语法基础-函数-内置函数和匿名函数-长期维护

    ##################     内置函数        #######################  """ 一共是 68个内置函数: 反射相关的内置函 ...

  7. python语法基础-函数-进阶-长期维护

    ###############    函数的命名空间和作用域    ############## """ # 函数进阶 命名空间和作用域 命名空间 全局命名空间——我们自 ...

  8. JS中函数的本质,定义、调用,以及函数的参数和返回值

    要用面向对象的方式去编程,而不要用面向过程的方式去编程 对象是各种类型的数据的集合,可以是数字.字符串.数组.函数.对象…… 对象中的内容以键值对方式进行存储 对象要赋值给一个变量 var cat={ ...

  9. java基础:方法的定义和调用详细介绍,方法同时获取数组最大值和最小值,比较两个数组,数组交换最大最小值,附练习案列

    1. 方法概述 1.1 方法的概念 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 注意: 方法必须先创建才可以使用,该过程成为方法定义 方法创建后并不是直接可 ...

  10. Python函数基础学习(定义、函数参数、递归函数)

    1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: ut ...

随机推荐

  1. Android SDK Download

    { https://www.androiddevtools.cn/ }

  2. 【SPOJ DQUERY】区间数字统计

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 因为区间的端点移动一个单位的话,只会涉及到一个元素的增多或减少. 因此可以用莫队算法来解决. 只需要开一个数组(大小1百万),用下标来快速检索 ...

  3. PDF文档转PNG图片 c++(转载)

    PDF文档转PNG图片 c++,例子是转载的,忘记出处了.被我收集起来了. 链接:https://pan.baidu.com/s/1iuxDHibQnvx0UYJ5m25NAg 密码:5o0c

  4. 5.RabbitMQ 客户端控制消息

    1.生产者发送消息,消费者结束消息并回执 2.通过channel.basicConsume向服务器发送回执,删除服务上的消息 3.//不向服务器发送回执,服务器的消息一直存在 4.//消费者拒绝接受消 ...

  5. css样式高级技巧-选择器

    用<div>元素为网页 在编写样式表时,我们经常要用div元素来包装内容: <div> <p>Here are two paragraphs of content& ...

  6. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination

    启动docker容器时报错: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT ...

  7. RocketMQ核心技术精讲与高并发抗压实战

    1:特点 比较吃内存 内存至少1g 默认8g 1:支持集群模型,强调集群无单点,负载均衡以及水平扩展能力2:亿级别的消息堆积能力3:采用零拷贝原理Consumer 消费消息过程,使用了零拷贝 顺序写盘 ...

  8. 流计算与Hadoop

  9. python open函数关于w+ r+ 读写操作的理解(转)

    r 只能读 (带r的文件必须先存在)r+ 可读可写 不会创建不存在的文件.如果直接写文件,则从顶部开始写,覆盖之前此位置的内容,如果先读后写,则会在文件最后追加内容.w+ 可读可写 如果文件存在 则覆 ...

  10. drop database出现1010

    > drop database glc; ERROR (HY000): Error dropping database (can't rmdir './glc/', errno: 17) Fri ...