Python.函数基础

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。我们已经知道Python提供了许多内建函数,我们还可以自定义函数。

语法 def 函数名 ([参数列表]) :

注意:

  • 1. def行后必须有:,
  • 2圆括号内是形式参数列表,有多个参数则使用逗号隔开,
  • 3. 无参数,也必须保留空的圆括号,
  • 4. 实参列表必须与形参列表一一对应,
  • 5. 函数体中包含 return 语句,才有返回值。

下面是两个简单的例子。

In [1]: def func(x):
   ...:     if x > 10:
   ...:         print('more than 10')
   ...:     else:
   ...:         print('less than 10')
   
In [2]: func(7)
less than 10

In [3]: func(12)
more than 10
In [1]: def add(x,y):
   ...:     print(x+y)

In [2]: add(2,4)
6

In [3]: a=add(2,6)
8

In [4]: a

In [5]: def add(x,y):
    ...:     return(x+y)
  
In [6]: add(3,4)
Out[6]: 7

In [7]: a=add(3,4)

In [8]: a
Out[8]: 7

含其他参数

In [1]: def ar(x,y,method):
    ...:     if method=="+":
    ...:         return(x+y)
    ...:     if method=="-":
    ...:         return(x-y)
    ...:     if method=="*":
    ...:         return(x*y)
    ...:     if method=="/":
    ...:         return(x/y)
    ...:     else:
    ...:         print("error")

In [2]: ar(3,8,'/')
Out[2]: 0.375

如果def ar(x,y,method)换成def ar(x,y,method='+'),则为默认,参数省略时,表示加法。

In [1]: def ar(x,y,method='+'):
    ...:     if method=="+":
    ...:         return(x+y)
    ...:     if method=="-":
    ...:         return(x-y)
    ...:     if method=="*":
    ...:         return(x*y)
    ...:     if method=="/":
    ...:         return(x/y)
    ...:     else:
    ...:         print("error")

In [2]: ar(3,8)
Out[2]: 11

常见函数

1.排序:L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*   Type:  method_descriptor 。

In [1]: def de(list):
   ...:     size=len(list)
   ...:     avg=sum(list)/size
   ...:     # 计算中位数
   ...:     list.sort()
   ...:     if size%2==0:
   ...:         mid=(list[size//2-1]+list[size//2+1])/2
   ...:     else:
   ...:         mid=list[size//2]
   ...:     print("max is",max(list))
   ...:     print("nin is",min(list))
   ...:     print("ave is",avg)
   ...:     print("mid is",mid)

In [2]: list=[1,3,5,7,9,5]

In [3]: de(list)
max is 9
nin is 1
ave is 5.0
mid is 6.0

In [4]: de([i for i in range (1,100,5)])
max is 96
nin is 1
ave is 48.5
mid is 51.0

2. map(func, *iterables) --> map object

In [1]: def fun(x):
   ...:     return x*x

In [2]: list(map(fun,[1,2,3,4,5]))
Out[2]: [1, 4, 9, 16, 25]

In [3]:  list(map(str,[1,2,3,4,5]))
Out[3]: ['1', '2', '3', '4', '5']

In [4]: [fun(i) for i in range (1,6)]
Out[4]: [1, 4, 9, 16, 25]

In [5]: a=[1,2,3,4,5]

In [6]: list(map(fun,a))
Out[6]: [1, 4, 9, 16, 25]

In [7]: list(map(str,list(map(fun,a))))
Out[7]: ['1', '4', '9', '16', '25']

3. 匿名函数(不用再定义):lambda

In [1]: list(map(lambda x:x+10,[1,2,3,4,5]))
Out[1]: [11, 12, 13, 14, 15]

4. dict() -> new empty dictionary

按照列表元素出现次数,将其转化为字典

#方法一
In [1]: a=[1,2,3,4,2,3,5]

In [2]: d={}

In [3]: for i in a:
   ...:     if i in d.keys():
   ...:         d[i]=d[i]+1
   ...:     else:
   ...:         d[i]=1
 
In [4]: d
Out[4]: {1: 1, 2: 2, 3: 2, 4: 1, 5: 1}

#方法二
In [1]: import collections

In [2]: a=[1,2,3,4,2,3,5]

In [3]: collections.Counter(a)
Out[3]: Counter({1: 1, 2: 2, 3: 2, 4: 1, 5: 1})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值