这篇文章主要讲解了“python中怎么自定义函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中怎么自定义函数”吧!
python中支持自定义函数
以def开头,后接标识符名称及圆括号(),圆括号内部包含参数
圆括号后以冒号起始,下一行缩进
以return[表达式]结束
# 自定义函数
def printme(str):
print(str)
return
# 调用函数1
printme("我调用我自己")
printme作为自定义函数,str为参数,自定义函数内部的print(str)执行将参数打印的操作,最后以return结尾。
def中的参数分不可变类型与可变类型
strings/tuples/numbers是不可变类型
list/dict等是可变类型
# 不可变类型
def ChangeInt(a):
a = 10
b = 2
ChangeInt(b)
print(b) # 结果是 2
可以看到b作为一个numbers,在b传入参数传入后不发生改变。
# 可变类型1
def changec(c):
c[2] = 1
return
cc = [3, 3, 3]
changec(cc)
print(cc)
可以看到cc作为一个list,在传入c后发生了改变,结果为3,3,1。这里做了一个实验当内部函数c[2]=1改为c=[1, 1,
1]时,函数不发生改变,小伙伴们感兴趣可以解释下为什么。
# 可变类型2
def changeme(mylist):
"修改传入的列表"
mylist.append([1, 2, 3, 4])
mylist[2] = 55
print("函数内取值: ", mylist)
return
# 调用changeme函数
mylist = [10, 20, 30]
changeme(mylist)
print("函数外取值: ", mylist)
这里append的作用是在矩阵的右边增加[1, 2, 3, 4]矩阵,这里也是同样道理,最终输出结果为
函数内取值: [10, 20, 55, [1, 2, 3, 4]]
函数外取值: [10, 20, 55, [1, 2, 3, 4]]
def中的参数可自动匹配
# 参数名匹配参数值
def printme(str):
"打印任何传入的字符串"
print(str)
return
# 调用printme函数
printme(str="My string")
这里是参数名匹配参数值的原则,设定参数为str后,可打印str=“XXX”,python会自动识别。
# 参数顺序不重要郑州做人流哪家医院好 http://mobile.sptdnk.com/
def printinfo(name, age):
"打印任何传入的字符串"
print("Name: ", name)
print("Age ", age)
return
# 调用printinfo函数
printinfo(age=25, name="wly")
参数的顺序对于传递不重要,这里颠倒顺序后python自动纠正。
def中的参数可赋初值
# 默认参数在有初始值幅值的情况下可缺省
def printinfo1(name, age=25):
"打印任何传入的字符串"
print("Name: ", name)
print("Age ", age)
return
# 调用printinfo函数
printinfo1(name="wqr")
当有初始值赋值时,可缺省参数,若均有初始值赋值,可传递空。
def中的不定长参数
# 不定长参数
def printinfo(arg1, *vartuple):
"打印任何传入的参数"
print("输出: ")
print(arg1)
for var in vartuple:
print(var)
return
# 调用printinfo 函数
printinfo(10)
printinfo(70, 60, 50, 40)
不定长参数用*XXX来表示,此时调用函数时可大于参数个数的任意数。for的作用是在vartuple的元素个数内循环打印,结果是
输出:
10
输出:
70
60
50
40
# 匿名函数只能包含一个语句lambda [arg1 [,arg2,…..argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print("相加后的值为 : ", sum(10, 20))
print("相加后的值为 : ", sum(20, 20))
lambda是匿名函数定义如下
lambda [arg1 [,arg2,…..argn]]:expression
感谢各位的阅读,以上就是“python中怎么自定义函数”的内容了,经过本文的学习后,相信大家对python中怎么自定义函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/208917.html