首页 > 其他分享 >打好函数基础,让代码不在无限月读

打好函数基础,让代码不在无限月读

时间:2024-07-17 20:28:50浏览次数:11  
标签:函数 代码 定义 无限 参数 print 可以 name


前言

函数是一段有名字的代码块,用于执行特定的任务。函数可以接受输入参数,执行操作,并返回输出结果。函数可以重复使用,并且可以提高代码的可读性和维护性。

函数的目的是为了封装特定的功能或任务,以便在需要时可以重复调用。

函数的声明是指在函数体之前的函数名称、参数列表和返回类型的描述。

实参是在函数调用过程中传递给函数的实际值。在函数定义时,形参用来指定函数可以接受的参数类型和个数,而在函数调用时,实参就是具体传递给函数的值。

指定参数类型都有助于确保函数在调用时接收正确类型的参数,以提高程序的健壮性和可靠性。

匿名函数的运用可以使代码更加简洁、灵活,并且减少定义不必要的函数名称,提高代码的可读性和维护性。


一、函数的目的和定义

1.函数的目的

函数的目的是为了封装特定的功能或任务,以便在需要时可以重复调用。函数可以接受输入参数,并根据这些参数执行特定的操作,并返回一个输出结果。通过使用函数,我们可以将复杂的问题划分为更小的模块,使代码更加模块化、可维护和可重用。函数可以提高代码的可读性,避免重复的代码,并使程序更简洁和高效。

2.函数的定义

定义一个函数通常需要使用以下格式:

def 函数名(参数1, 参数2, ...):
    函数体
    return 返回值
# 函数名可以自行定义,但最好是有一定意义的函数名

其中,def关键字用来定义函数,紧接着是函数名,然后是一对圆括号,括号内可以包含多个参数,多个参数之间用逗号分隔。函数体是函数的具体实现代码,可以包含多条语句,需要使用缩进来表示代码块。函数体中可以使用return关键字来返回函数的结果,也可以没有return语句。

二、函数的声明和调用

1.函数的声明

函数的声明是指在函数体之前的函数名称、参数列表和返回类型的描述。函数声明主要用于告诉编译器函数的存在和函数的类型,以便在需要调用函数时能够正确使用和链接函数。函数声明的语法通常包括函数的返回类型、函数名称和参数列表。例如,下面是一个函数声明的示例:

int add(int a, int b);

在这个例子中,函数的返回类型是int,函数的名称是add,函数的参数列表是两个int类型的参数a和b。函数声明一般放在函数的定义之前进行,这样在其他代码中调用函数时就可以通过函数声明来引用函数。


2.函数的调用

函数的调用是指使用函数的名称来执行函数的代码。调用函数时,需要在函数名称后面加上一对括号,括号中可以传递给函数的参数。

 def():

 def hello():
     '''
     在此写注释 来说明函数的用法
     :return:
     '''
     for i in range(10):
         print(f'你好')


# 调用该函数
hello()

# 函数名可以自行定义

三,函数的形参和实参

1.形参

形参是指在函数定义中声明的参数,用于接收调用函数时传递的实参。形参用于在函数内部进行操作和计算,并可以在函数内部修改其值。形参的名称在函数定义中可以任意起名,但调用函数时必须传递相应的实参进行匹配。形参的个数和类型可以根据函数定义的需要而定。形参的作用是允许函数在被调用时接收和处理外部传递的数据。

 def hello(name, num):# 括号内的就是形参,在后续运算中可以用它
     '''
     打印你好
     :return:
     '''
     # name = '你好'
     for i in range(num):
         print(f'{name},起床上课啦')


 # 使用该声明的函数
 hello('你好', 5)

2.实参

实参是在函数调用过程中传递给函数的实际值。在函数定义时,形参用来指定函数可以接受的参数类型和个数,而在函数调用时,实参就是具体传递给函数的值。实参可以是常量、变量、表达式或函数等。当函数被调用时,实参的值会被赋给对应的形参,然后函数就可以使用这些值进行操作。实参的数量和类型必须与形参的数量和类型相匹配,否则会导致编译错误或运行时错误。

 def hello(name, num):
     '''
     打印你好
     :return:
     '''
     # name = '你好'
     for i in range(num):
         print(f'{name},起床上课啦')


 # 使用该声明的函数
 hello('你好', 5)# 实参,标明把'你好'赋值给name,5赋值给num

四,函数的参数类型

(1)位置参数

位置参数是指在定义函数时,参数的顺序必须与调用函数时传递的参数的顺序一致。当调用函数时,必须按照定义函数时参数的顺序进行传递,否则会发生错误。位置参数是函数定义中最普通的参数类型

例:以下函数定义了两个位置参数x和y:

在调用这个函数时,必须按照参数的位置传递数值

在这个例子中,3和5分别传递给了函数的第一个和第二个位置参数x和y,函数会返回8。

def add(x, y):
    return x + y
add(10,20)
 # 把10,20分别赋予x,y

(2)默认参数

默认参数是在定义函数时给参数一个默认值,当调用函数时,如果没有传递该参数的值,函数会使用默认值进行处理。默认参数可以简化函数的调用,避免频繁传递相同的参数值。

def wake_up(name, n=1, info='起床锻炼'):
    # 默认形参变量只能放在不默认的后面
    
        for i in range(n):
        
            print(f'{name},wake up,{info}')
    

wake_up('小王', 5, '元神启动')

在上面的例子中,wake_up 函数定义了三个参数,name,n和info,其中n有一个默认值1。当调用wake_up 函数时,如果不传递n参数,将使用默认值1;如果传递了n参数,将使用传递的值。这里传递了n=5。

(3)关键字参数

关键字参数是一种在调用函数时指定参数的方式,通过关键字进行参数的匹配,而不是按照位置进行参数的传递。使用关键字参数可以避免参数位置的混淆,提高代码的可读性。

在函数定义时,可以使用关键字参数来指定默认值。

在函数调用时,可以使用关键字参数来明确指定参数的值,而不必按照参数的顺序来传递。

例如,定义一个计算矩形面积的函数:

def calculate_area(length, width):
    return length * width

使用关键字参数调用函数:

calculate_area(length=10, width=5)

关键字参数可以不按照函数定义的顺序进行传递,并且可以只传递部分参数,未指定的参数将使用默认值。

例如,定义一个打印个人信息的函数:

def print_info(name, age, city="Beijing"):
    print("Name:", name)
    print("Age:", age)
    print("City:", city)

使用关键字参数调用函数:

print_info(age=20, name="Alice")

这样可以清晰地表达出函数参数的含义,提高代码的可读性和可维护性。

(4)*args 可变元组参数

*args是一个特殊的语法,可以在函数定义中接收任意数量的位置参数。它会将传入的参数打包成一个元组,供函数内部使用。

下面是一个简单的示例:

def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)

输出:

1
2
3

在这个例子中,*args可以接受任意数量的位置参数,并将它们打包成一个元组(1, 2, 3)。函数内部使用for循环遍历这个元组并打印每个元素。

(5)**kwargs 字典参数

**kwargs参数是Python函数中的一种特殊参数,它允许函数接受任意数量的关键字参数。在函数内部,**kwargs参数会将这些关键字参数转换为一个字典形式的变量,可以通过字典的键值对来访问和操作这些参数。

使用**kwargs参数的语法如下:

def func_name(**kwargs):
    # function body

在调用函数时,可以通过键值对的形式传递关键字参数。这些关键字参数会被转换为字典形式的变量,传递给函数中的**kwargs参数。在函数内部,可以通过字典的键值对来访问和操作这些参数。

func_name(arg1=value1, arg2=value2, ...)

以下是一个示例,演示了如何使用**kwargs参数:

def print_values(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

print_values(name='Alice', age=25, city='New York')

输出结果:

name Alice
age 25
city New York

(6)函数返回值

函数的返回值是函数执行完毕后所返回的结果。在函数内部使用return语句可以将一个值返回给函数的调用者。调用函数时可以将返回值保存在一个变量中,或者直接使用返回值进行其他操作。返回值可以是任意数据类型,包括数字、字符串、列表、字典等。如果函数没有使用return语句返回值,则默认返回None。

注意!!!!!函数中出现return不仅会打断循环,也会把函数中断

五,匿名函数

匿名函数是一种没有名称的函数,它可以在需要函数的地方被直接使用,而不必定义一个具体的函数名称。匿名函数通常用于简单的逻辑操作或者作为参数传递给其他函数。

匿名函数的运用包括:

  1. 作为参数传递给其他函数:匿名函数可以作为参数传递给其他函数,用于在函数内部执行一些逻辑操作。这样可以避免定义一个具体的函数名称,使代码更加简洁。

  2. 使用lambda表达式创建匿名函数:在Python中,可以使用lambda关键字来创建匿名函数。lambda表达式的语法为:lambda 参数: 表达式。通过lambda表达式可以快速创建简单的匿名函数。

  3. 函数式编程中的高阶函数:匿名函数在函数式编程中非常常见,它可以使函数更加灵活。通过将匿名函数作为参数传递给高阶函数,可以实现更加复杂的逻辑操作,如map、reduce和filter等。

总之,匿名函数的运用可以使代码更加简洁、灵活,并且减少定义不必要的函数名称,提高代码的可读性和维护性。

总结

函数的作用主要是封装可重复使用的代码,提高代码的复用性和可维护性。通过定义函数,可以将一段代码逻辑封装起来,然后在需要的时候调用函数来执行这段代码,避免了重复编写相同的代码。函数可以接收输入参数,并返回输出结果,可以通过参数来控制函数的行为,通过返回值来获取函数的结果。函数的作用还包括:

正确熟练的利用函数,可以提高编程效率,提供程序的复用!

标签:函数,代码,定义,无限,参数,print,可以,name
From: https://blog.csdn.net/2401_86120670/article/details/140476349

相关文章

  • Python函数基础编写定义
    目录1、函数目的2、函数定义3、函数声明4、函数调用5、函数形参6、函数实参7、函数返回值8、函数的参数类型9、匿名函数1、函数目的函数又叫方法,能减少重复代码的编写,提升代码的复用。函数封装了一定的功能,方便不断使用,可以达到简化代码、重复调用的效果,比如系......
  • 常见的SQL数值型数据处理函数
    在数据驱动的时代,SQL已成为数据分析和管理中不可或缺的工具。无论是处理简单的查询还是复杂的数据分析,SQL都能帮助我们高效地完成任务。然而,在处理数值型数据时,你是否感到过困惑,不知道如何运用SQL中的各种函数来实现数据处理? 究竟有哪些常见的SQL数值型数据处理函数,它......
  • 传知代码-揭秘AI如何揪出图片中的“李鬼”(论文复现)
    代码以及视频讲解本文所涉及所有资源均在传知代码平台可获取文字篡改图像的“照妖镜”:揭秘AI如何揪出图片中的“李鬼”在数字化时代,我们时常被各种图像信息所包围。然而,这些图像中有时隐藏着不为人知的秘密——被篡改的文字或图像。这些被篡改的内容可能误导我们的判断,......
  • 【汇总】EMQX 函数API、安装与使用说明
    前言全局说明EMQX函数说明一、说明二、Client的基本使用流程创建客户端实例使用connect*()函数之一连接到代理调用loop*()函数之一来维护与代理的网络流量使用subscribe()订阅主题并接收消息使用publish()将消息发布到代理使用disconnect()断开与代理的......
  • Task2:从baseline代码详解入门深度学习
    Task2:从baseline代码详解入门深度学习准备工作数据集数据集被划分为三种,分别是:训练集,开发集测试集。训练集数量最多,用于训练模型,开发集用于在训练中不断调整模型的参数,架构,测试集用于测试模型模型基于seq2seq模型主要由encoderdecoder两部分构成使用GRU模型大致可以理......
  • 好用的源代码加密软件有哪些?5款源代码防泄密软件推荐
    源代码作为软件产品的核心组成部分,其安全性直接关系到整个软件系统的安全。源代码的泄露可能导致企业的技术秘密暴露,商业竞争力下降,甚至可能引发经济损失和法律责任问题。因此,对源代码进行加密保护,已经成为企业不可忽视的一环。安秉源代码加密软件安秉源代码加密软件是一款......
  • 源代码加密软件怎么选?5款源代码防泄密软件推荐
    在信息化时代,源代码作为软件产品的核心组成部分,其安全性直接影响到整个软件系统的安全和企业的竞争力。源代码泄露可能导致技术秘密暴露、商业竞争力下降,甚至引发经济损失和法律责任问题。因此,对源代码进行加密保护已经成为企业不可忽视的重要环节。安秉源代码加密软件安秉......
  • C语言中常见库函数(1)——字符函数和字符串函数
    文章目录前言1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现4.strcpy的使用和模拟实现5.strcat的使用和模拟实现6.strncmp的使用和模拟实现7.strncpy函数的使用8.strncat函数的使用9.strncmp函数的使用10.strstr的使用和模拟实现11.strtok函数的使用12.strerror......
  • Clarke-Wright节约算法详解与Python代码示例
    Clarke-Wright节约算法详解与Python代码示例一、算法详解Clarke-Wright节约算法(简称C-W算法),也称为节约里程法或节约算法,是由Clarke和Wright于1964年提出的一种启发式算法。该算法主要用于解决车辆路径问题(VehicleRoutingProblem,VRP),特别是在运输车辆数目不确定的情况下......
  • 【Linux网络】Linux网络协议栈常用代码片段
    1.读取网卡mac地址可以通过ioctl(sock,SIOCGIFHHWADDR,&ifr)读取mac地址,对任意类型的socket都适用,只需指定第三参数structifreqifr的ifr.ifr_name,这个ifr_name就是网络设备的名字,如eth0,eth1,lo等,在/proc/net/dev可找到,ioctl通过ifr_name获取设备信息。structifreqifr;strn......