python中的基础函数

本文详细介绍了Python中的函数使用,包括内置函数如abs(), max()等,以及如何定义和调用自己的函数。讨论了位置参数、默认参数、可变参数和关键字参数的使用规则,强调了默认参数必须指向不可变对象的原因,并给出了实例说明。此外,还提到了命名关键字参数和参数组合的使用方法,展示了Python函数的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、python内置了很多有用的函数,我们可以直接调用。

要调用一个函数最重要的是要知道函数的名称和参数。需要根据函数的定义,传入正确的参数。

常用函数,比如:

绝对值的函数:abs()

调用abs()函数:

>>>abs(20)

20

max函数可以接收任意多个参数,并返回最大的那个。

>>>max(1,2)

2

数据类型转换函数:

>>>int('123')

123

>>>str(12.67)

'12.67'

>>>bool(1)

True

函数名其实就是指向一个对象的引用,可以将函数名赋给一个变量,相当于给这个函数起了一个别名

#变量a指向,max函数

>>>a=max

数据类型检查可以用内置函数isinstance()实现

def my_abs(x):

  if not isinstance(x,(int,float)):

     raise TypeError('bad operand type')

   if x>=0:

      return x

   else:

      return -x

小结:

定义函数时,需要确定函数名和参数个数;

有必要可以先对参数的数据类型做检查;

函数内部可以用return随时返回函数结果;

函数执行完毕后也没有return语句时,自动return None;

函数可以同时返回多个值,但其实是一个tuple;

 

python的函数定义非常的简单,但灵活度非常的大;除了正常定义的必选参数外,还可以使用默认参数、可变参数、关键字参数,使得函数定义的接口不但能处理复杂参数,还可以简化调用者的代码。

位置参数:

def power(x,n):

 s = 1

while n>0:

n=n-1;

s=s*x

return s

x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋值给x和n

默认参数:

设置默认参数时,有几点需要注意:

1)必选参数在前,默认参数在后,否则python解析器会报错

2)当函数有多个参数时,把变化大的参数放在前面,变化小的参数放在后面。变化小的参数可以作为默认参数。

3)默认参数必须指向不可变对象;为什么一定要是不可变对象呢,分析如下:

def add_end(L=[]):

     L.append('end')

     return L

当你使用默认参数时,一开始结果是对的:

>>>add_end()

['END']

但是再次调用add_end()时,结果就不对了:

>>>add_end()

['END','END']

>>>add_end()

['END','END','END']

默认参数是[],但是函数每次都记住了,上次添加了'END'后的list

原因如下:

python函数在定义的时候,默认参数L是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是定义的[]了。故默认参数必须指向不可变对象。

修改上面的例子,我们可以用None这个不变对象来实现

def add_end(L=None):

   if L is None:

     L = None

     L.append('END')

    return L

现在无论调用多少次都不会有问题

>>>add_end()

['END']

>>>add_end()

['END']

可变参数:

在python中,可以定义可变参数,顾名思义,可变参数就是传入的参数个数是可变的,可以是1个,2个,不可以是0个。

我们将函数改为可变参数:仅在参数前面加了一个*。

def calc(*numbers):

   sum =0

for n in numbers:

   sum = sum+ n*n

return sum

但是在调用该函数时,可以传入任意个参数并且自动组装成一个tuple

>>>calc(1,2)

5

>>>nums =[1,2,3]

>>>calc(*nums)

14

*nums表示把num这个list的所有元素作为可变参数传进去

关键字参数:

关键字参数允许你传入0个或者任意个含参数名的参数,而这些关键字参数在函数内部自动装成一个dict

在调用该函数时,可以只传入必选参数

def person(name,age,**kw):

   print('name',name,'age',age,'other',kw)

>>>person('张三',27)

name:张三 age:27 other:{}

>>>person('张三',27,city='深圳')

name:张三 age:27 other:{'city':'深圳'}

组装一个dict,然后将dict转换为关键字参数传进去:

>>>extra = {'city':'深圳','job':'Enginer'}

>>>person('张三',27,**extra)

name:张三 age:27 other:{'city':'深圳'}

命名关键字参数:

如果要限制关键字参数的名字,就可以用命名关键字参数。

比如:只接受city和job作为关键字参数,这种方式定义的函数如下:

def person(name,age,*,city,job):

     print(name,age,city,job)

命名关键字参数需要一个特殊的分割符*,*后面的参数被视为命令关键字参数

调用方式如下:

>>>person('Jcak',24,city='深圳',job='教师')

Jack 24 深圳 教师

注意:命名关键字参数必须传入参数名,若没传入,调用则会报错。

参数组合:

在python中定义函数,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数,除了可变参数无法和命令关键字参数混合,其他都可以组合。

所以,对于任何函数,都可以通过类似的func(*args,**kw)的形式调用它,无论参数是如何定义的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值