python入门15 函数

Posted dinghanhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python入门15 函数相关的知识,希望对你有一定的参考价值。

 函数

1 python内置函数

2 匿名函数lambda

3 自定义函数 def functionname(arg):...

 

#coding:utf-8
#/usr/bin/python
"""
2018-11-11
dinghanhua
函数
"""

‘‘‘内置函数‘‘‘
print(round(2.345,2)) #四舍五入,保留2位小数;绝对值
print(abs(-23.333)) #绝对值


‘‘‘匿名函数 lambda‘‘‘
lambda x: x**2 #匿名函数
print(list(map(lambda x:x**3,(1,2,3))))  #x的3次方
print(list(filter(lambda x:x%2==0 , [1,2,33,44]))) #取偶数

 

‘‘‘自定义函数‘‘‘

‘‘‘函数定义‘‘‘
def funcname(arg,sign):
    ‘‘‘函数说明‘‘‘
    print(arg=%s,sign=%s%(arg,sign))
    return

‘‘‘带缺省值的函数‘‘‘
def funcname2(name,nation = china): #第二个参数带缺省值,缺省参数放到最后
    print(name is %s,nation is %s%(name,nation))
    return name,nation

‘‘‘函数调用‘‘‘
#不带参数名,按顺序赋值
res = funcname(wegjoweg,no sign)
print(没有返回值,返回:,res)
#指定参数名,顺序可打乱
funcname(sign = 2,arg = ok)

#缺省参数未传参
res = funcname2(小明)
print(res)
#缺省参数传参
res = funcname2(peter,Americia)
print(返回多个值,返回的是一个tuple:,res)

 

‘‘‘缺省参数=list 出现的异常‘‘‘
def func(val,list=[]):
    list.append(val)
    return list
list1 = func(10)
list2 = func(abc,[])
list3 = func(2)
print(list1,list2,list3) #[10, ‘2‘] [‘abc‘] [10, ‘2‘]  list1和list3同一个地址,均指向缺省参数的内存地址

#规避以上问题,list=None
def func(val,list=None):
    if list is None:
        list = [] #每次创建一个
    list.append(val)
    return list
list1 = func(10)
list2 = func(abc,[])
list3 = func(2)
print(list1,list2,list3) #[10] [‘abc‘] [‘2‘]

 

‘‘‘可变参数*arg,取出来是元组‘‘‘
def func(name,*other):
    print(name=%s,other=%s%(name,other))

func(john,18,一年级)
func(peter,20)


‘‘‘可变参数**arg,取出来是字典‘‘‘
def func(name,**other):
    print(name=%s,other=%s%(name,other))

func(john,age=18,grade=一年级)
other = {age:18,grade:grade 1}
func(peter,**other)

 

the end!

以上是关于python入门15 函数的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数声明和调用

15种Python片段去优化你的数据科学管道

Python函数式编程,范围和变量。我哪里错了?

python入门基础-三元表达式命名空间作用域函数名本质闭包

Python编程从入门到实践

VSCode自定义代码片段15——git命令操作一个完整流程