python之函数
2021-06-20 14:03
标签:函数名 一个 use user print 中国 字典 必须 == 概念:函数也叫方法,实现特定功能的代码段。要用的时候,只需要调用下函数名即可。 使用函数的好处: 函数的定义: 在函数中,return中两个作用: 注意:无return时,默认返回值为None 定义函数时的参数为形参,调用函数时实际传入的值为实参。 形参只有在函数调用时才分配内存空间,调用结束后,立即释放内存空间,所以形参只在函数体内存在。 实参可以是常量,变量,表达式,函数,函数调用时,必须传入的是具体值,把具体的数值传给形参。 顾名思义,根据位置来传参,有几个参数,调用时相应地传几个参数,多或少了都会报错。上述程序中,name和sex是位置参数,调用时必填。 就是定义函数时给某个参数给个默认值,调用时,若给默认参数传了值,就用你传入的值;不传就用默认值,不会报错。 可变参数用于参数比较多且不确定的情况下,定义函数时,直接写参数组*args,可以不填。 不限制参数的个数,通常用**args表示 注意:如果四种参数一起使用,顺序是位置参数>默认参数>可变参数>关键字参数 全局变量:在变量所有范围都能使用;局部变量:在一定区域内才能使用。 所有函数都能使用全局变量,只能在函数内部使用局部变量 函数内部可调用函数,如果一个函数在内部调用自己,那就是递归函数。递归函数可起到循环的作用 一个参数是函数的函数称为:高阶函数 python之函数 标签:函数名 一个 use user print 中国 字典 必须 == 原文地址:https://www.cnblogs.com/balllyh/p/9624088.html一、认识函数
#函数调用时才会被执行,调用时用函数名()
def 函数名(参数列表):
函数体
def my(name,sex):#my是函数名,name和sex是位置参数,也叫形参
#位置参数,必填
print("姓名:%s"%name)
print("性别:%s"%sex)
#默认值参数
#函数体
my("liuyihan","女")#liiyihan,女这是调用时实际传入的参数,即实参
1.1 return的作用
def add(a,b):
c=a+b
return c
def add2(a,b):
c=a+b
print(c)
print(add(2,3))#打印调用函数的返回值,add中有返回值
print(add2(1,2))#打印调用函数的返回值,add2中没有return时,默认返回None
运行结果:
5
3
None
二、函数的参数类型
2.1 位置参数(必填参数)
ef my(name,sex):#my是函数名,name和sex是位置参数,也叫形参
print("姓名:%s"%name)
print("性别:%s"%sex)
my("liuyihan","女")#liiyihan,女这是调用时实际传入的参数,即实参
运行结果:
姓名:liuyihan
性别:女
2.2 默认参数(非必填)
def db_connect(ip,port=3306):#port=3306就是kebian默认参数
print(ip,port)
db_connect(‘118.24.3.40‘,3307)#指定默认参数的值为3307
db_connect(‘118.24.3.40‘)#没有指定默认参数的值
2.3 可变参数(非必填)
def users(name,userid,*args):
print("姓名:%s,学号:%s"%(name,userid))
print("其他个人信息:%s",args)
users("liuyihan",‘2011212968‘,‘深圳‘,‘18‘,‘160‘)
#args是参数组
#可变参数都是放在一个元组里的
#不限制参数的个数
上述代码,运行结果:
姓名:liuyihan,学号:2011212968
其他个人信息:%s (‘深圳‘, ‘18‘, ‘160‘)
2.4 关键字参数(非必填)
def users(**kwargs):
#1、不是必传的
#2、不限制参数个数
#3、传入的参数放到key-value字典里
print(kwargs)
users()
users(name=‘liuyihan‘,sex=‘nv‘)
users(addr=‘北京‘,country=‘中国‘,c=‘abc‘,f=‘kkk‘)
运行结果:
{}
{‘sex‘: ‘nv‘, ‘name‘: ‘liuyihan‘}
{‘addr‘: ‘北京‘, ‘c‘: ‘abc‘, ‘country‘: ‘中国‘, ‘f‘: ‘kkk‘}
三、变量作用域
#第一种情况,函数内部有name变量,取值时取函数内部name值
name = ‘wangcan‘#全局变量
def get_name():
name=‘hailong‘
print(name)
get_name()
运行结果:
hailong
#第二种情况,函数内部无name变量,取值时先在函数内部找,找不到,在函数外部找,找到打印出来
name = ‘wangcan‘#全局变量
def get_name():
print(name)
get_name()
运行结果:
wangcan
#第一种情况
name = ‘wangcan‘#全局变量
def get_name():
name=‘hailong‘
print("函数内部的变量:",name)
get_name()
print("函数外部的变量:",name)
运行结果:
函数内部的变量: hailong
函数外部的变量: wangcan
#第二种情况,函数内部的值可见于函数外
name = ‘wangcan‘#全局变量
def get_name():
global name#声明全局变量,在函数内部的变量值可用于全局变量
name=‘hailong‘
print("函数内部的变量:",name)
get_name()
print("函数外部的变量:",name)
运行结果:
函数内部的变量: hailong
函数外部的变量: hailong
四、递归函数
def test():
num=int(input("请输入一个数字"))
if num%2==0:
return True#如果是偶数,就返回True,结束函数,遇到return就立即结束函数
print("如果不是偶数,请重新输入!:")
return test()
print(test())
五、高阶函数
def srint(n):#将n转换成int类型
return int(n)
def add(x,y,z):#三个参数,z是函数
return(z(x)+z(y))#z函数的返回值相加
print(add(9.2,4.5,srint))#注意函数作为参数时,不需要带括号
上一篇:WPF 语言格式化文本控件