从0开始学Python——函数

函数

函数,即是将一段代码封装起来,用来实现特定的功能。

1. 函数定义

除了Python内建的函数,用户也可以使用def语句自定义的函数。定义格式如下:

def <函数名> (<参数1, 参数2, ……>) :
    <函数体>
      ...
      ...
      ...

示例:

>>> def my_print(): 
...  print("hello world!") 
... 
>>>

2. 函数调用

函数定义完成后,使用函数名来调用函数,从而使用其功能。

示例:

>>> def my_abs(x): #求x的绝对值 
>>>  if x >= 0: 
>>>   return x 
>>>  else: 
>>>   return -x 
...   
...   
... 
>>> a = my_abs(-5) 
>>> print(a) 
5

3. 函数参数

函数可以接收输入的值,并利用这些值做一些事。
多个参数传递需要用逗号隔开。

示例:

>>> def print_max(a, b): 
...  if a > b: 
...   return a 
...  else: 
...   return b 
...   
...   
... 
>>> a = print_max(4, 6) 
>>> print(a) 
6

4. 默认值参数

在定义函数的过程中如果指定了参数,那么调用函数时一定要给所有的参数传递值,否则会出错。

但是在一些情况下,可能又希望它的参数是可选的,即不要求调用函数时一定要给所有参数都传递值,那么可以通过默认值参数来完成。

示例:

>>> def say_message(message, times=2): 
...  print(message*times) 
... 
>>> say_message("hello", 3) 
hellohellohello 
>>> say_message("look") 
looklook

5. 关键参数

在调用函数时,还可以使用另外一种方式给函数传递值,即使用参数的名字(关键字)而不是位置,这被称为关键参数。

使用关键参数的优势:不需要担心参数顺序,使函数调用更简单。

示例:

>>> def print_abc(a, b, c): 
...  print(a, b, c) 
... 
>>> print_abc(1,2,4) 
1 2 4 
>>> print_abc(c=4, b=2, a=1) #使用关键参数 
1 2 4

6. return语句

return用来退出一个函数,也可以使用return从函数返回一个值,并且这个值可以赋给其他变量。

如果return语句没有返回值,等价于return None,表示无返回值。如果函数中没有明确指定return语句,都在结尾暗含有return None语句。

示例:

>>> def print_max(x, y): 
>>>  if x > y: 
>>>   return x 
>>>  elif x < y: 
>>>   return y 
>>>  else: 
...   return 
...   
...   
... 
>>> print_max(5, 3) 
5 
>>> print_max(5, 5) 
>>> a = print_max(5, 5) 
>>> print(a) 
None

7. lambda表达式

lambda 表达式可以返回一个函数,使用lambda表达式可明显减少函数数量。定义格式如下:

lambda <参数1, 参数2, ……> : <表达式>

示例:

>>> def make_incrementor(n): 
...  return lambda x : x+n 
... 
>>> f = make_incrementor(32) 
>>> print(f(3)) 
35 
>>> sum = lambda x,y : x+y 
>>> print(sum(32, 3)) 
35

8. 全局变量、局部变量

变量有局部变量和全局变量。

全局变量

定义在整个文件中但在函数外部,作用域为全局范围的变量称为全局变量。

如果需要在函数内使用全局变量,同时又为全局变量赋值,则使用global关键字来实现。

示例:

>>> x = 0    #声明全局变量x 
>>> def print_x(): 
...  global x #使用变量x 
...  x = 5 
...  print(x) 
... 
>>> print_x() 
5 
>>> print(x) 
5

局部变量

在函数定义内声明的变量,只在当前函数内有效,即使函数外有同名变量存在,它们也没有任何关系,这样的变量称为局部变量。

示例:

>>> x = 10   #全局变量 
>>> def print_x(): 
...  x = 6  #局部变量 
...  print(x) 
... 
>>> print_x() 
6 
>>> print(x) 
10

关键字nonlocal的作用与关键字global类似,使用nonlocal关键字可以在一个嵌套的函数中修改嵌套作用域中的变量。

示例:

>>> def fun(): 
...  num = 3 
...  def fun2(): 
...   nonlocal num 
...   num *= 2 
...   print(num) 
...  return fun2() 
... 
>>> fun() 
6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicky__3021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值