【Python基础学习笔记】Day·4


 

目录

1、函数的基本使用:

1·1、函数简介与功能:

1·2、函数的定义:

1·3、函数的使用:

2、函数的参数传递:

2.1、可选参数传递:

2.2、参数名称传递:

2.3、函数的返回值:

3、变量作用域:

3.1、局部变量:

3.2、局部变量:

4、代码复用: 



1、函数的基本使用:


1·1、函数简介与功能:

  • 函数是一段具有特定功能的、可重复使用的语句组,通过函数名来表示和调用。
  • 函数包括两部分:函数的定义 函数的使用
  • 使用函数有两个目的:降低编程难度增加代码复用。
  • 函数可以在一个程序中多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次。

1·2、函数的定义:

  • Python语言通过保留字 def 定义函数,语法形式如下:
def <函数名>(<参数列表>):
    <函数体>
    return <返回值列表>
  • 函数名可以是任意有效的Python标识符。
  • 参数列表是调用该函数时传递给它的值,可以是0个、1个或多个。当传递多个参数时,各参数由逗号隔开。当没有参数时,也要保留圆括号。
  • 参数列表中的参数时是形式参数,简称“形参”,相当于实际参数的一种符号表示或符号占位符。
  • 函数体是程序每次被调用时执行的代码。
  • 如果需要返回值没使用保留字return和返回值列表。
  • 当函数没有return语句时,仅表示执行函数体中的代码功能。
  • 例:定义一个队整数n求阶乘的函数:
def Factorial(n):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s

1·3、函数的使用:

  • 函数的定义也叫函数的“声明”,定义后的函数不能直接使用,需要经过“调用”才能得到运行。调用基本方式如下:
<函数名>(<实际赋值参数列表>)
  • 例:使用函数的调用计算并打印10的阶乘:
def Factorial(n):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s
msg = Factorial(10)
print("10的阶乘是:",msg)


2、函数的参数传递:


2.1、可选参数传递:

  • 函数的参数在定义时可以指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代,函数定义时的语法如下:
def <函数名>(<非可选参数列表>,<可选参数> = <默认值>):
    <函数体>
    return <返回值列表>
  • 需要注意,可选参数一般放在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数以及对应的默认值。
  • 例:
def Multiply(x,y = 10):
    print(x*y)
Multiply(99)
>>>990
Multiply(99,2)
>>>198

2.2、参数名称传递:

  • Python语言中支持函数按照参数名称方式传递参数,语法形式如下:
<函数名>(<参数名> = <实际值>)
def Multiply(x,y = 10):
    print(x*y)
Multiply(y = 2,x = 99)
>>>198
  • 采用参数名称传递方式不需要保持参数传递的顺序,参数之间的顺序可以任意调整,只需要对每个必要参数赋值即可。 

2.3、函数的返回值:

  • return语句用来结束函数并将程序返回到函数被调用的位置继续执行。
  • return语句可以出现在函数中的任何部分。
  • return语句可以同时将0个、1个或多个函数运行的结果返回到函数被调用的地方。
  • 函数可以没有return,此时函数并不返回值。
  • 当return返回多个值时,这些值形成一个元组。例:
def Multiply(x,y):
    return x*y,x+y
print(Multiply(x=99,y=2))
>>>(198, 101)
  • 当函数存在多个结束条件时,将使用多个return语句,例:
def ManYret(x):
    try:
        if x>0:
            return x+1
        else:
            return x-1
    except:
        return 0
print(ManYret(x=2))
>>>3


3、变量作用域:


  • 根据程序中变量所在的位置和作用范围,变量分为 局部变量全局变量
  • 局部变量仅在函数内部,且作用域也在函数内部。
  • 全局变量的作用域跨越多个函数。

3.1、局部变量:

  • 局部变量是指在函数内部定义的变量,仅在函数内部有效,当函数退出时变量将不再存在。
def Multiply(x,y):
    z = x*y
    return z
print(Multiply(x=99,y=2))
>>>198
  • 如上代码,变量z是函数Multiply()内部使用的变量,当函数调用后,变量z将不存在。 

3.2、局部变量:

  • 全局变量指在函数之外定义的变量,在程序执行全过程有效。
  • 全局变量在函数内部使用时需要提前使用保留字 global 声明,语法形式如下:
global <全局变量>
n = 2 #n是全局变量
def Multiply(x,y):
    global n
    return x*y*n   #使用全局变量n
print(Multiply(99,2))
>>>396  
  • 使用global对全局变量进行声明时,该变量要与外部全局变量同名。
  • 如果未使用global声明,即使名称相同,也不是全局变量。


4、代码复用: 

  • 函数封装的直接好处是代码复用,任何其他代码只要输入参数即可调用函数。
  • 代码复用有另一个好处,当更新函数功能时,所有被调用处的功能都被更新。
  • 使用函数对程序合理分化为功能模板,并基于模块设计程序是一种常用方法,被称为"模块化设计"。
  • 模块化设计指通过函数的封装功能将程序划分为 主程序、子程序 和 子程序间关系 的表达。
  • 紧耦合:尽可能合理划分功能块,功能块内部耦合紧密。指模块或系统间关系紧密,存在较多或者复杂的相互调用。缺点在于更新一个模块可能导致其他模块变化,复用困难。
  • 松耦合:模块间关系尽可能简单,功能块之间耦合度低。一般基于消息或协议实现,系统间交互简单。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值