python基础之函数(下)

本文针对已经学习过Python但长时间未使用的读者,介绍了Python函数的基础类型,如无参数函数、带参数函数、有返回值函数和匿名函数(Lambda)。同时讲解了局部变量、全局变量的概念、使用方法以及可变与不可变对象的区别。
摘要由CSDN通过智能技术生成

接触python也有好几年了,一直处于学学忘忘的状态,没有形成具体框架,都是哪里不会问度娘,总这样学觉得不太踏实,还是打好基础心里稳一点。

但是也不是从最基本的安装环境,变量开始写,那种也没有什么技术含量,百度看看就好了。

所以本文合适学过python,但好久没用过的人看。

在Python中,函数是一种用于封装可重用代码块的机制。通过定义函数,可以将一段代码逻辑封装起来,并在需要的时候进行调用。函数可以带有参数和返回值,可以接受输入并产生输出。

1.函数的基本类型

(1)无参数函数

这种函数在定义时不需要传递任何参数,也不返回任何值。它们执行特定的操作或完成特定的任务。例如:

def say_hello():
    print("Hello!")

# 调用函数
say_hello()

(2)带参数函数

这种函数在定义时可以接受一个或多个参数,并且可以根据传递的参数执行相应的操作。例如:

def greet(name):
    print("Hello, " + name + "!")

# 调用函数并传递参数
greet("Alice")

(3)有返回值函数

这种函数在执行完特定的操作后,可以返回一个值给调用者。调用者可以使用函数的返回值进行进一步的处理或操作。例如:

def add_numbers(a, b):
    return a + b

# 调用函数并接收返回值
result = add_numbers(2, 3)
print(result)  # 输出:5

(4)匿名函数(Lambda函数)

喜剧之王里周星驰演的尹天仇是个“死”跑龙套的,所谓跑龙套的,就是指那些群众演员,戏份非常少,衬托主演,演员表里都找不到名字,也不需要名字,他们需要名字吗?不需要,因为他们仅仅只是临时出镜,下次可能就用不着了,所以犯不着费心思给他们每个人编个号取个名字,毕竟取个优雅的名字是很费劲的事情。
Python中也有类似这种群众演员的函数:Lambda

这是一种特殊类型的函数,通常用于简单的操作或表达式。它们是一行代码的函数,没有函数名,可以直接调用。例如:

# 定义一个匿名函数,计算两个数的和
add = lambda a, b: a + b

# 调用匿名函数
result = add(2, 3)
print(result)  # 输出:5

2.局部变量

(1)基本概念

局部变量是在函数内部定义的变量,其作用范围仅限于函数内部。这意味着局部变量只能在其所在的函数内部访问和使用,而在函数外部是不可见的。

(2)使用方法和注意事项

1.定义局部变量

在函数内部通过赋值语句来定义局部变量。例如:

def my_function():
    my_var = 10  # 定义局部变量

    # 在函数内部使用局部变量
    print(my_var)

# 调用函数
my_function()
2.局部变量的作用范围

局部变量只在其所在的函数内部有效,超出函数范围后将无法访问。例如:

def my_function():
    my_var = 10  # 定义局部变量

    # 在函数内部使用局部变量
    print(my_var)

# 调用函数
my_function()

# 尝试在函数外部访问局部变量(会引发错误)
print(my_var)  # NameError: name 'my_var' is not defined
3.避免命名冲突

局部变量的作用范围仅限于函数内部,因此可以在不同的函数中使用相同的变量名而不会产生冲突。每个函数都有自己的作用域,其中的变量不会与其他函数中的同名变量产生干扰。

4.函数参数作为局部变量

函数的参数也属于局部变量,其作用范围限于函数内部。函数参数可以像局部变量一样在函数内部使用。

def multiply(a, b):
    result = a * b  # 定义局部变量result

    # 在函数内部使用局部变量
    print(result)

# 调用函数
multiply(2, 3)

局部变量在函数内部起到临时存储和处理数据的作用,它们的生命周期仅限于函数的执行过程中。一旦函数执行结束,局部变量的值将被销毁,无法再进行访问。

3.全局变量

(1)基本概念

全局变量是在整个程序中定义的变量,其作用范围覆盖整个程序,包括函数内部和函数之间。全局变量可以在程序的任何地方访问和使用。

(2)使用方法和注意事项

1.定义全局变量

在函数外部或模块的顶层定义变量,即可创建全局变量。例如:

# 定义全局变量
global_var = 10

def my_function():
    # 在函数内部访问全局变量
    print(global_var)

# 调用函数
my_function()

# 在程序其他地方访问全局变量
print(global_var)
2.全部变量的作用范围

局部变量只在其所在的函数内部有效,超出函数范围后将无法访问。例如:

global_var = 10

def my_function():
    global global_var  # 声明要修改全局变量的值
    global_var = 20

    # 在函数内部访问全局变量
    print(global_var)

# 调用函数
my_function()

# 在程序其他地方访问全局变量
print(global_var)
3.避免命名冲突

全局变量的作用范围覆盖整个程序,因此需要避免与局部变量或其他全局变量之间产生命名冲突。为了避免冲突,建议使用有意义的变量名,避免重复使用变量名。

4.函数参数作为局部变量

在模块中定义的变量也可以被视为全局变量,因为它们在整个模块中可见。模块级全局变量可以在模块内部的任何函数中访问和使用。只要导入该模块,就可以访问模块级全局变量。

# module.py

module_var = 10  # 模块级全局变量

def my_function():
    # 在函数内部访问模块级全局变量
    print(module_var)
# main.py

import module

# 在其他模块中访问模块级全局变量
print(module.module_var)

# 调用函数
module.my_function()

4.引用

(1)基本介绍

引用是指对内存中对象的标识和访问。在Python中,变量实际上是对对象的引用,而不是对象本身。

当我们创建一个对象并将其赋值给一个变量时,该变量实际上是一个对该对象的引用。多个变量可以引用同一个对象,这意味着它们指向同一块内存地址。
函数可以接受参数,以便在函数内部使用。参数可以是必需参数或可选参数。例如

(2)使用方法和注意事项

1.变量引用对象

在Python中,变量是对对象的引用。当我们将一个对象赋值给一个变量时,变量就成为了对该对象的引用。例如:

dmy_list = [1, 2, 3]  # 创建一个列表对象,并将其赋值给my_list变量
2.多个引用

多个变量可以引用同一个对象。这意味着它们指向同一块内存地址,对一个引用的修改会影响到其他引用。例如:

my_list = [1, 2, 3]  # 创建一个列表对象,并将其赋值给my_list变量
another_list = my_list  # 将another_list变量设置为对同一列表对象的引用

print(my_list)  # 输出:[1, 2, 3]
print(another_list)  # 输出:[1, 2, 3]

my_list.append(4)  # 修改my_list引用的列表对象

print(my_list)  # 输出:[1, 2, 3, 4]
print(another_list)  # 输出:[1, 2, 3, 4],another_list也被修改了

在上面的示例中,name参数设置了默认值为"World",如果调用greet函数时没有提供参数,将使用默认值。

3.可变对象和不可变对象

在Python中,对象可以是可变的或不可变的。可变对象的值可以修改,而不可变对象的值不能修改。例如,列表是可变对象,而字符串是不可变对象。对可变对象的修改实际上是在原始对象上进行的,因此所有引用都会反映这些修改。

4.函数参数传递

在函数调用过程中,参数传递是通过引用来实现的。当我们将一个对象作为参数传递给函数时,实际上是将该对象的引用传递给了函数。函数内部对参数的修改可能会影响到原始对象。

def modify_list(some_list):
    some_list.append(4)  # 修改传入的列表对象

my_list = [1, 2, 3]
modify_list(my_list)

print(my_list)  # 输出:[1, 2, 3, 4],my_list被修改了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值