Day 9 :初识函数

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

       2、函数能提高应用的模块性,和代码的重复利用率。

Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义函数:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。(定义时使用的参数,是形参)
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。

例:

1 def quadratic_func(length,breadth ):
2     '''
3     这是一个计算面积的函数
4     :param length: 长度
5     :param breadth: 宽度
6     :return: 面积
7     '''
8     ret = length * breadth
9     return ret

函数的调用:

义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

如下实例调用了quadratic_func()函数:

return :返回值的关键字是return

return的作用:

  1、结束整个函数

  2、能够返回相应的值

如果不写return ,默认返回None!

return也可以返回多个值,(以元组的方式返回,逗号隔开)

1、练一练:写函数,检查获取传入列表或者元组对象的所有奇数位索引对应的元素,并将其新的列表返回给调用者

 1 #方法1:
 2 def odd_num(lis):
 3     new_lis = []
 4     for i in range(len(lis)):
 5         if i % 2 == 1:
 6             new_lis.append(lis[i])
 7     return new_lis
 8 print(odd_num([0,1,2,3,4,5,6,7]))
 9 #方法2:切片
10 def odd_num(lis):
11     new_lis = lis[1::2]
12     return new_lis
13 print(odd_num([0,1,2,3,4,5,6,7]))
View Code

2、写函数,计算字符串中【数字】、【字母】、【空格】以及其他的个数

 1 #isdigit:检测字符串是否为数字。
 2 #isalpha:检测字符串是否为字母。
 3 #isspace:检测字符串是否为空格
 4 def examine_str(str_type):
 5     digeit_num = 0
 6     alpha_num = 0
 7     space_num = 0
 8     other_num = 0
 9     for i in str_type:
10         if i.isalpha():
11             alpha_num += 1
12         elif i.isdigit():
13             digeit_num += 1
14         elif i.isspace():
15             space_num += 1
16         else:
17             other_num += 1
18     return {'digeit_num':digeit_num,
19             'alpha_num':alpha_num,
20             'space_num':space_num,
21             'other_num':other_num
22             }
23 ret = examine_str('23414   16as  dfjk$*((*$$')
24 print(ret)
View Code

备注:解耦在写一个函数时候,把 一个大功能尽量分成多个小功能,并且功能与功能之间影响减到最小,不宜把一个很复杂的功能写一个函数里

 函数的参数

默认参数:1、如果函数调用时,没有传递默认参数,则使用函数调用时默认的值,如果传参,则使用传递的参数

 位置参数:位置参数必须在前。

动态参数:*args,**kwargs.

[*] 是动态参数的标识符,args,相当于一个变量,也可以写别的,但是推荐使用args,kwargs

参数不固定时,就用动态参数

*args:代表一个数组,在python中显示为元组

**kwargs:相当于关键字参数,在Python中显示为字典模式,也可以传入字典

如果在定义函数时同时使用*args,**kwargs,作为参数,则可以接受所有参数

 1 def my_test(*args,**kwargs):
 2     print(args)
 3     print(kwargs)
 4 my_test(1,2,3,*[5,3,2],a =1 ,b =2)
 5 my_test(1,2,3,5,3,2,a =1 ,b =2)
 6 #2个的输出结果相同
 7 '''
 8 (1, 2, 3, 5, 3, 2)
 9 {'a': 1, 'b': 2}
10 (1, 2, 3, 5, 3, 2)
11 {'a': 1, 'b': 2}
12 '''

猜你喜欢

转载自www.cnblogs.com/sunjinchao/p/10888123.html