Python基础——函数(200504)

Posted fl-blogs

tags:

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

Python——函数

函数

1.函数概述:

  函数:用于完成特定功能的一段代码块,可用于重复使用。函数能够提高应用的模块性,和代码的利用率;函数包含内置函数和用户自定义的函数两种。

2.为什么使用函数:

  • 代码可以重复使用,提高代码的利用率

  • 保持代码一致性,易维护

  • 可扩展性

 

定义函数

1.定义一个函数

  1)可以定义一个特定功能的函数,规则如下:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明
  • 函数内容以冒号起始,并且缩进
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

  2)语法:

 1 def function(x):
 2   ‘‘‘函数说明文档‘‘‘
 3     x += 1
 4     return expression
 5 function(2)
 6 
 7 # def:定义函数的关键字
 8 # function:函数名
 9 # ():括号内可以设置参数,形参
10 # x += 1:泛指代码块或程序处理逻辑
11 # return expression:定义返回值
12 # function(2):传入实参

  3)举例:定义一个打印 hello + name 的函数

1 def greet(name):
2     ‘‘‘打招呼函数‘‘‘
3     mes = hello %s !%name
4     return mes
5 res = greet(alex)
6 print(res)
7 # =>hello alex !

2.函数返回值

  1)函数和过程

  • 过程:没有return返回值的函数
  • 函数:有return返回值

  2)返回值

  return [expression] 语句:退出函数,函数运行到return语句就是直接退出函数,不会再继续运行函数体内return下面的语句。return返回值。

  <1>  默认返回值

  默认返回值:在函数体内部若无return返回值,则默认返回None,return是函数结束的标志。

1 def greet(name):
2     print(hello %s !%name)
3 print(greet(张三))
4 # =>hello 张三 !
5 # =>None

  <2> 1个返回值

  有1个返回值:指定了返回值

1 def greet(name):
2     print(hello %s !%name)
3     return 你真棒!
4 print(greet(张三))
5 # =>hello 张三 !
6 # =>你真棒!

  <3> 多个返回值

  多个返回值:指定了多个返回值,当有多个返回值时,以元组形式返回,内含多个值

1 def greet(name):
2     print(hello %s !%name)
3     return 你真棒!,Are you OK!,666
4 print(greet(张三))
5 # =>hello 张三 !
6 # =>(‘你真棒!‘, ‘Are you OK!‘, ‘666‘)

3.函数参数

  1)形参和实参

  • 形参:形参在函数被调用时使用,只在函数体内部有效
  • 实参:可以是常量、变量、表达式、函数等,函数调用时将值传递给形参
1 def calc(x,y):  # x,y :形参
2     result = x+y
3     return result
4 c = calc(1,2) # 1,2:实参(具体数值)
5 print(c)
6 # =>3

  2)位置参数

  位置参数:传递的实参个数与形参必须一一对应,少一个和多一个都不行,不对应会报错

 1 # 一一对应
 2 def position(x,y,z):
 3     print(x)
 4     print(y)
 5     print(z)
 6 position(1,2,3)
 7 # =>1
 8 # =>2
 9 # =>3
10 
11 # 不对应
12 def position(x,y,z):
13     print(x)
14     print(y)
15     print(z)
16 position(1,2,3,4)
17 # =>报错

  3)关键字参数

  关键字参数:对形参无需对应,但必须进行一一指定 ,少一个和多一个都不行,否则会报错

1 def key(x,y,z):
2     print(x)
3     print(y)
4     print(z)
5 key(x=1,y=2,z=3)
6 # =>1
7 # =>2
8 # =>3

  4)位置和关键字参数混合使用

  位置和关键字参数混合使用:位置参数必须在左边也就是前边,关键字参数在后面,一一对应 关系,多个值会报错

 1 def position_key(x,y,z):
 2     print(x)
 3     print(y)
 4     print(z)
 5 position_key(1,2,z=3)
 6 # =>1
 7 # =>2
 8 # =>3
 9 
10 position(1,y=2,3) 
11 # =>报错

  5)默认参数

  默认参数:定义了默认形参,实参就可以不用传递,若传递会覆盖默认参数

1 def default(x,type=King):   # type=‘King‘:为默认参数
2     print(x)
3     print(type)
4 default(hello)   # 不对默认参数进行传递
5 # =>hello
6 # =>King
7 default(hello,lisi)   # 对默认参数进行传递,会覆盖原有参数
8 # =>hello
9 # =>lisi

  6)参数组

  参数组:(**字典;*列表)传递可变长参数

 1 def test(x,*args):  # *:作为列表存储
 2     print(x)
 3     print(args)   # 作为元组输出
 4 test(1,2,3,4,5)
 5 # =>1
 6 # =>(2, 3, 4, 5)
 7 
 8 def test(x,**kwargs):  # **:作为字典存储
 9     print(x)
10     print(kwargs)   # 作为字典输出
11 test(1,y=2,z=3)
12 # =>1
13 # =>{‘y‘: 2, ‘z‘: 3}
14 
15 def test(x,*args,**kwargs):  # 可以接受多个值
16     print(x)
17     print(args)  # 作为元组输出
18     print(kwargs)   # 作为字典输出
19 test(1,2,3,4,5,6,7,y=2,z=3)
20 # =>1
21 # =>(2, 3, 4, 5, 6, 7)
22 # =>{‘y‘: 2, ‘z‘: 3}
23 test(1,*[1,2,3],**{y:2,z:3})
24 # =>1
25 # =>(1, 2, 3)
26 # =>{‘y‘: 2, ‘z‘: 3}

  7)参数集合实例

 

 

 

 

  

  

以上是关于Python基础——函数(200504)的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数声明和调用

Python小白到老司机,快跟我上车!基础篇(十三)

201555332盛照宗—网络对抗实验1—逆向与bof基础

13 个非常有用的 Python 代码片段

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

逆向及Bof基础实践