Python学习笔记-函数

Python中函数以def关键词开头,后接函数标识符名称,圆括号括起来的参数列表,冒号。函数体内的return如果不带表达式或者没有return相当于返回None。函数体最前面可以使用字符串描述函数功能。

def add(n1,n2):
    "这是一个加法函数"
    return n1+n2
def add(n1,n2):
    """
    这是一个加法函数
    :param n1: 
    :param n2: 
    :return: 
    """
    return n1+n2

Python中函数参数是引用传递,对于不可变类型,因为不能修改只能新建,所以不会影响到变量自身,而对于可变类型,则会影响到变量自身。

def testFunc1(str):
    print(id(str))
    str+="123"
    print(id(str))


value="test"
print(id(value))
testFunc1(value)
print(id(value))
print(value)  # test


value=['t','e','s','t']
print(id(value))
testFunc1(value)
print(id(value))
print(value)  # ['t', 'e', 's', 't', '1', '2', '3']

结果:

1464254630688
1464254630688
1464254630800  # 新建了一个字符串
1464254630688
test
1464254096008
1464254096008
1464254096008
1464254096008
['t', 'e', 's', 't', '1', '2', '3']

使用关键字参数允许函数调用时参数的顺序与声明时不一致,在函数调用中,关键字参数必须跟随在位置参数的后面。

def testFunc(value1,value2):
    print(str(value1)+" "+str(value2))

testFunc(value2=10,value1=100)  # 100 10
testFunc(100,value2=10)  # 100 10
testFunc(value2=10,100)  # 错误

使用独立星号限制后面的参数必须使用关键字参数传递。

def testFunc(value1,*,value2):
    print(str(value1)+" "+str(value2))

testFunc(value1=100,value2=10)  # 100 10
testFunc(100,value2=10)  # 100 10
testFunc(10,100)  # 错误,testFunc() takes 1 positional argument but 2 were given

调用函数时,如果没有传递参数则会使用默认参数。

def testFunc(value1,value2=200):
    print(str(value1)+" "+str(value2))

testFunc(10)  # 10 200

如果参数数量不是固定的,可以在参数前面加上星号,传递的参数将被看作是元组,如果参数前面有两个星号,则传递的参数被看作是字典。

def testFunc(*arguments, **keywords):
    print(arguments)
    print(keywords)

testFunc(1,2,3,"abc",red="红色",green="绿色")

结果:

(1, 2, 3, 'abc')
{'red': '红色', 'green': '绿色'}

Python使用lambda关键字创建匿名函数,格式如下,lambda的主体是一个表达式,只能写一行。

lambda [arg1 [,arg2,.....argn]]:expression
addFunc=lambda n1,n2:n1+n2
print(addFunc(1,2))
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值