原标题:python自学篇九[ 函数(一):参数+对象]
原文来自:CSDN 原文链接:https://blog.csdn.net/Web_Student/article/details/103792677
函数概述
组织好的、可重复使用的、用户实现单一或者关联功能的代码段。函数能够提高应用的模块性和代码的重复利用率。Python提供了很多内置的函数,比如len等等,另外也可以根据自己的业务需求进行用户自定义函数的创建。
def 函数名([参数列表]): #参数列表可选项
函数体
函数名([参数列表])
students=[2,3,4,3,23,43]
a=len #变量a指向len函数
num=a(students) #可以通过a调用到len函数
print("studnets列表元素的个数为:",num)
函数参数
形参和实参
形参:定义函数里面的是形参
实参:调用函数时传递的是实参
必备参数
def getInfo(name,address):
print('大家好我叫%s,我来自%s'%(name,address))
getInfo('刘德华','香港') #第一个实参对应了第一个形参,第二实参对应了第二个形参。
#参数的个数不能少,不能多。 参数的位置要一一对应
关键字参数
def getInfo(name,address):
print('大家好我叫%s,我来自%s'%(name,address))
getInfo(name='刘德华',address='香港') #给实参加上关键字 。关键字对应我们的形参
默认参数
def getInfo(name,address = '香港'): #默认值参数,就是在声明函数的时候给形参赋值
print('大家好我叫%s,我来自%s'%(name,address))
getInfo('刘德华') #有默认值的形参,可以不用传递
getInfo('刘德华','九龙') #如果传递参数,会覆盖原来的默认值
不定长参数
def getInfo(name,address,*args,**agrs2):
print('大家好我叫%s,我来自%s'%(name,address))
print(args) #args 是一个元组类型
print(agrs2) #字典数据类型
getInfo('刘德华','九龙','a','b','c','d',age = 18)
结果:
大家好我叫刘德华,我来自九龙
('a', 'b', 'c', 'd')
{'age': 18}
可变对象与不可变对象的传递
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict,set等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了
区别
def fun(args):
args = 'hello' #重新赋值
print(args) #输出hello
str1 = 'baby' #声明一个字符串的变量 不可变数据类型
fun(str1) #将该字符串传递到函数中
print(str1) #还是baby 并没有被改变
def fun(args):
args[0] = 'hello' #重新赋值
print(args) #输出
list01 = ['baby','come on'] #声明一个字符串的变量 不可变数据类型
fun(list01) #将该字符串传递到函数中
print(list01) #传递的是对象本身,函数里面被修改了值,原对象也会跟着修改
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com