首页 > 编程语言 >Python学习—函数篇 面面俱到,细致讲解

Python学习—函数篇 面面俱到,细致讲解

时间:2024-07-22 19:25:39浏览次数:10  
标签:面面俱到 函数 Python name 参数 result 讲解 print numbers

目录

1.函数目的

2.函数定义

3.函数的调用

4.函数的形参,实参

5.函数的返回值

1.返回一个值

2.返回多个值

3.没有返回值

4.返回None

6.函数的参数类型

1. 必需参数

2. 关键字参数

3. 默认参数

4. 可变参数

5. 关键字可变参数

7.匿名函数

基本语法

示例


1.函数目的

在编程中,定义函数的目的是为了将一段可重复使用的代码逻辑封装起来,使其能够通过一个函数名和参数列表进行调用。函数定义的主要目的包括:

1.  模块化代码:将复杂的程序分解为较小的功能块,每个功能块对应一个函数,使得代码更易于理解和维护。

2.  提高代码复用性:定义函数可以使相同或类似功能在不同的上下文中多次调用,避免重复编写相同的代码片段。

3.  抽象和封装:函数将实现细节隐藏在函数体内部,只暴露给外部调用者函数的接口(即函数的名称和参数列表),这种封装提高了代码的可读性和可维护性。

4.  简化代码:函数可以将复杂的操作简化为一个函数调用,提高了代码的简洁性和可读性。

5.  提高可测试性:函数使得代码更易于单元测试,因为可以独立地测试每个函数的输入和输出,确保其行为符合预期。

6.  减少错误和调试时间:通过函数封装,可以减少代码中的重复性错误,并且当需要调试时,可以更方便地定位和修复问题。

2.函数定义

函数定义是在编程中定义一个可重复使用的代码块或子程序的过程。

函数定义通常包括这关键部分:函数名,形参,实参,函数体,返回值,

def wake_up(name, num):    # wake_up 函数名  name,num  形参 
    """
    函数:封装叫醒功能
    """
    for i in range(num):    
        print(f"醒醒啦 {name}")


# 调用一个函数

wake_up("王思聪", 1)
print("-----")
wake_up("马云", 2)
print("-----")
wake_up("马化腾", 5)


3.函数的调用

# 定义函数,形参为两个数 a 和 b
def add_numbers(a, b):
    result = a + b
    return result

# 调用函数,并输出结果
x = 5
y = 3
sum_result = add_numbers(x, y)
print("Sum:", sum_result)

在这个示例中:

1.add_numbers 是函数的名称,它接受两个形参 a 和 b。
2.在主程序中,我们定义了变量 x 和 y,它们作为实参传递给函数 add_numbers。
3.函数 add_numbers 返回 x + y 的结果,这个结果被赋值给变量 sum_result。
4.最后,程序打印出 Sum: 后面跟着函数返回的结果。

4.函数的形参,实参

例一:

# 定义一个函数,计算两个数的和
def add_numbers(a, b):
    return a + b

# 调用函数,传递具体的数值作为实参
result = add_numbers(3, 5)
print("Result:", result)  # 输出:Result: 8



# 分析add_numbers 函数有两个形参 a 和 b,用来接收两个数值。

# 函数调用 add_numbers(3, 5) 中,3 和 5 是实参,它们被传递给函数来执行加法操作。

例二:

# 定义一个函数,将两个字符串连接起来
def concatenate(str1, str2):
    return str1 + " " + str2

# 调用函数,传递两个字符串作为实参
result = concatenate("Hello", "World!")
print("Result:", result)  # 输出:Result: Hello World!


# concatenate 函数有两个形参 str1 和 str2,分别表示要连接的两个字符串。
# 函数调用 concatenate("Hello", "World!") 中,"Hello" 和 "World!" 是实参,它们被传递给 
# 函数来执行字符串连接操作。

5.函数的返回值

在Python中,使用 return 语句返回函数值

1.返回一个值

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

result = add(3, 5)
print(result)  # 输出:8

返回值为a + b 的值

2.返回多个值

Python 中的函数可以返回多个值,实际上是返回一个元组(tuple)。

def divide(a, b):
    quot = a // b
    rema = a % b
    return quot, rema

result = divide(10, 3)
print(result)  # 输出:(3, 1)

divide 函数返回了两个值:商 quot 和余数 rema,作为一个元组 (quot, rema) 返回给调用者。

3.没有返回值

有些函数并不需要返回值,或者只用于执行操作而不返回具体结果。这时可以使用 return 语句不带任何表达式,或者直接省略 return 语句:

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

4.返回None

如果一个函数执行完毕后没有显式地使用 return 语句返回任何值,Python 默认会返回 None

def do_nothing():
    pass

result = do_nothing()
print(result)  # 输出:None

do_nothing 函数没有具体的返回值,因此 result 的值是 None

6.函数的参数类型

1. 必需参数

必需参数是指函数定义时声明的参数,在调用函数时必须按顺序传入对应的实参。例如:

def greet(name, greeting):
    return f"{greeting}, {name}!"

# 使用关键字参数传递参数,可以不按顺序
result = greet(greeting="Hi", name="Bob")
print(result)  # 输出:Hi, Bob!

namegreeting 都是必需参数

2. 关键字参数

关键字参数是指在调用函数时使用 key=value 形式传递的参数,可以不按照定义时的顺序传递。例如:

def greet(name, greeting):
    return f"{greeting}, {name}!"

# 使用关键字参数传递参数,可以不按顺序
result = greet(greeting="Hi", name="Bob")
print(result)  # 输出:Hi, Bob!

greeting="Hi", name="Bob",关键字参数

3. 默认参数

默认参数在函数定义时给定默认值,在调用函数时如果没有传入这些参数,则使用默认值。例如:

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

# 可以传递任意数量的实参
result1 = sum_numbers(1, 2, 3)
print(result1)  # 输出:6

result2 = sum_numbers(10, 20, 30, 40)
print(result2)  # 输出:100

greeting 参数有一个默认值 "Hello",如果调用时没有提供这个参数,就会使用默认值。

4. 可变参数

可变参数允许传递不定数量的实参给函数。在函数定义中,可以使用 *args 来表示可变参数。例如:

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

# 可以传递任意数量的实参
result1 = sum_numbers(1, 2, 3)
print(result1)  # 输出:6

result2 = sum_numbers(10, 20, 30, 40)
print(result2)  # 输出:100

5. 关键字可变参数

关键字可变参数允许传递不定数量的关键字参数给函数。在函数定义中,可以使用 **kwargs 来表示关键字可变参数。例如:

def value_s( **kwargs):
    print(sid)
    print(name)
    print(*args)
    print(info)
    print(kwargs)


value_s(more1="小羊们别跑", s=10)

value_s 函数可以接受任意数量的关键字参数,并打印它们的键值对。

7.匿名函数

基本语法

匿名函数的基本语法如下:

lambda arguments: expression
  • lambda 是关键字,表示创建一个匿名函数。
  • arguments 是函数的参数,类似于正常函数中的参数列表,可以是任意数量的参数。
  • expression 是一个表达式,函数执行时返回这个表达式的结果。

示例

1.计算平方

square = lambda x: x ** 2
print(square(5))  # 输出:25

lambda x: x ** 2 创建了一个接受参数 x 并返回 x ** 2 的匿名函数。通过 square(5) 调用这个匿名函数,并输出结果 25

2.加法

add = lambda a, b: a + b
print(add(3, 4))  # 输出:7

这里的 lambda a, b: a + b 定义了一个接受两个参数 ab,并返回它们的和的匿名函数。

标签:面面俱到,函数,Python,name,参数,result,讲解,print,numbers
From: https://blog.csdn.net/qq_62757859/article/details/140531264

相关文章

  • Python—装饰器
    Python装饰器(decorators)是一种强大且灵活的特性,它允许在不修改原有函数代码的情况下,为函数增加新的功能。装饰器本质上是一个函数,它可以接收一个函数作为参数,并返回一个新的函数。这个新函数是对原函数的一种包装或增强。一、示例详解importrandomimporttimedata=[ra......
  • 哔哩哔哩_B站_Bilibili视频弹幕爬取与数据分析python
    ​B站弹幕爬取与数据分析一、项目背景在互联网时代,用户生成内容(UGC)成为了研究社交行为和文化趋势的重要数据来源。B站(哔哩哔哩)作为一个主要的弹幕视频分享平台,聚集了大量的用户评论和互动数据。弹幕作为一种实时的用户反馈形式,具有即时性和高互动性的特点,为数据分析提供了丰富......
  • [oeasy]python0026_调试程序_pdb3_帮助_help_求助_文档
    调试程序_debug_next_下一步_list_pdb3......
  • (三)人工智能之Python入门
    目录(一)环境准备1.1、安装Python1.2、pycharm安装(二)python基础知识2.1、变量和数据类型2.2、列表2.3、字典2.4、元组2.5、循环和条件语句2.6、函数(三)python入门实例 3.1、线性回归任务3.2、线性回归的基本概念1、自变量和因变量:2、线性关系:3、目标4、线性回......
  • python 风云4号云顶温度处理
    根据网上的一些关于风云4号卫星的数据处理方法与本人自己的修改风云4号卫星云顶温度出图代码如下:对于色斑的选择下一步还需要继续修改和精进#!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Suyue@file:CTT_map.py@time:2024/06/26@desc:"""importnumpyas......
  • 在 Jupyter Notebook 中使用Python虚拟环境
    在JupyterNotebook和Python中使用虚拟环境目录使用Virtualenv/venv创建虚拟环境使用Anaconda创建虚拟环境将虚拟环境添加到JupyterNotebook从JupyterNotebook中删除虚拟环境 在我们开始之前,什么是虚拟环境?为什么需要它?虚拟环境是Python的一个独立工作......
  • python面向对象三大特性(继承、多态、封装)之继承
    来吧,下面来具体说一下面向对象的三大特性:所谓封装、多态和继承。我们先来说一下继承。所谓继承,顾名思义,子类继承父类的属性,包括数据属性和函数属性。写个简单的例子吧:1.简单的继承classAnimal:need_substance='water'def__init__(self):print('这是一......
  • 7月22号python 每日一题
    7月22号python每日一题LCR121.寻找目标值-二维数组难度:中等m*n的二维数组plants记录了园林景观的植物排布情况,具有以下特性:每行中,每棵植物的右侧相邻植物不矮于该植物;每列中,每棵植物的下侧相邻植物不矮于该植物。请判断plants中是否存在目标高度值target。示......
  • Python文件夹与文件逐级移动
    importosimportshutildefmove_items(src_path,dest_path):  #列出源路径下的所有项  items=os.listdir(src_path)  foritem_nameinitems:    src_item=os.path.join(src_path,item_name)    #构造目标路径    dest_i......
  • 电商比价平台的功能讲解及数据采集分析
    引言随着电子商务的快速发展,电商比价平台作为连接消费者与供应商的重要桥梁,其重要性日益凸显。这类平台通过自动化的比价功能,不仅帮助消费者快速找到性价比最高的商品,还为企业提供了高效的采购工具,实现了采购成本的降低和效率的提升。本文将详细讲解电商比价平台的功能,并探讨......