函数

一、介绍

  把具有独立功能的代码块组织为一个小模块,在需要的时候调用

  作用:对具备相同逻辑的代码进行封装,提高代码编写效率,实现对代码的利用

  好处:减少代码冗余,提高代码运行效率

  函数必须先定义,后调用

 

二、函数的文档注释

  作用:对函数的作用和使用方法进行说明,比如有哪些参数、返回值等

  书写位置:在def 下方,使用三对引号来书写

  查看:1在函数名上,使用快捷键ctrl + q 查看。2、在函数名上,使用 Ctrl + B 跳转到函数定义的地方查看。 3、直接在函数上按 ctrl 键查看

 

三、定义带参数的函数

  1、例子

def sun_num(a,b):
    c = a + b
    print(c)
sun_num(10,20)

 

四、函数的嵌套调用

  1、在一个函数里面去调用另一个函数

def func():
    print("我是函数一")

def func1():
    print("我先执行")
    print("我是函数二")
    func()
func1()

 

五、函数的返回值

  1、函数执行的结果

    在一个函数中,想要返回一个数据(想要有返回值),需要使用 return 关键字

    在函数中可能通过各种代码,得到的数据结果,想要在函数外部使用,就需要使用其返回值。执行到返回值就会停止

#设计一个函数,获取里面较大的数
def func(a,b):
   if a > b :
       return a
   else:
       return b
print(func(10,20))

 

六、模块和包

  1、模块

    每一个以 “.py ” 结尾的python代码文件都是一个模块

    在模块中,别人书写好的功能,我们可以拿过来直接使用

  2、导入

    1、import 模块名

    2、from 模块名 import 功能名      (导入指定功能)

#方式一
import random
s = random.randint(1,10)
print(s)

#方式二
from random import randint
s1 = randint(1,5)
print(s1)

  3、导入模块时,会执行模块中的代码

    如果在导入模块的时候,模块中的部分代码不行被执行,可以使用 __name__ 来解决,此变量是Python解释器里内置的变量

    在模块中,右键直接运行代码文件, __name__ 变量的值是 __main__

    如果是被导入运行代码文件, __name__变量的值 是 模块名(文件名)

    如果不想执行导入模块的代码;就可把代码写在:if __name__ == "__main__":下面。

def num(a,b):
    c = a + b
    return c
print(num(10,20),__name__)
结果为:30 __main__

 

  4、包:将多个模块放在一个目录中集中管理,并在这个包中创建一个__init__.py文件(可以什么都不写),就是一个包

    导入

      1、import 包名 . 模块名     (使用:包名 . 模块名 . 工具名)

      2、from 包名 import 模块名    (使用:模块名 . 工具名)

      3、import 包名 . 模块名 import 工具名  (工具名)

 

七、变量的类型

  1、引用

    定义变量的时候,变量和数据 都会在内存开辟空间

    变量所对用的内存空间中存储的是 数据所在的内存地址 

    变量中保存数据地址,就称为地址,Python中所有数据的传递,传递都是引用(即地址)

    赋值运算符(=),会改变变量的引用。即只有等号修改变量的引用

    可以使用 id 查看变量的引用

a = 1  #本质,是将数据1 的地址保存到变量a 中,
b = a  #本质,将变量a 中的引用保存到 b 中,
#此时a,b的 id 是一样的
a = 2  #将数据2的地址保存到变量a中,只改变a的引用,即改变a的值,并不改变b的引用
print(a)   2
print(b)   1

 

  2、可变类型与不可变类型

    根据内存中的数据是否允许修改,将数据类型分为可变类型和不可变类型(简单理解:不使用等号修改数据类型)

    可变:列表、字典、集合

    不可变:字符串、数字(int,float,bool)、元组

  3、局部变量和全局变量

    局部变量:在函数内部定义的变量

         只能在当前函数内部使用,且可以在不同函数定义名字相同的局部变量,

         生命周期:在函数执行的时候才被创建,函数执行结束就会被删除

         想要在函数外部使用:则需要使用return值

    全局变量:在函数外部定义的变量

         可以在任意函数内访问

         想要在函数内部修改全局变量的引用,需要使用 global 关键字声明

         如果在函数内部出现和全局变量一样的变量名,在函数内部使用的是局部变量

         生命周期:代码执行的时候创建,执行结束销毁

g_num = 10
def func1():
    print(g_num)    #使用全局变量

def func2():
    g_num = 20    #定义局部变量
    print(g_num)

def func3():
    global g_num      #声明为全局变量 ,只要执行了这个函数,那么就会将全局变量改为30
    g_num = 30
    print(g_num)
if __name__ == "__main__":
    print(g_num)    #10
    func1()     #10
    func2()     #20
    func3()     #30
    func1()     #30

 

posted @ 2023-04-01 16:06  新入世界的小白  阅读(99)  评论(0编辑  收藏  举报