揭秘python函数:编程艺术的核心力量

简介: 揭秘python函数:编程艺术的核心力量


前言


当我们深入研究 Python 的内心深处,我们将会发现,函数是其内核的核心力量。这并不仅仅是因为函数具有处理任务的能力,但更重要的是,函数是实现程序代码重用的关键因素之一,它帮助我们以一种结构化和有组织的方式来表达我们的思想。


所谓的 “编程艺术”(The Art of Programming)不仅仅是指编写的代码能够成功运行,关键在于是否可以使代码看起来更加简洁,重用性更强,更容易进行维护和扩展。函数正好可以做到这一点。它们封装了代码中的预定义任务,使得代码看起来更加具有逻辑性,更加易于理解。


在这篇文章中,我们将揭秘 Python 函数的魅力,详解其内在的原理,函数的定义、调用,以及如何利用其强大的功能像艺术家一样去书写你的 Python 代码。无论你是 Python 的初学者还是有经验的开发者,我相信这个主题都能给你带来一些有益的启示和新的理解。希望你在这趟探索之旅中能感受到 Python 函数的强大力量,也能体会到编程的艺术魅力。让我们一起打开 Python 函数的神秘之门,探索其中深邃又广阔的世界吧!🚗🚗🚗

什么是 python 函数


在生活中,我们使用计算器程序的时候,首先我们需要选择我们需要进行哪种计算,是加法、减法、乘法还是除法,并且可能每次进行的计算都不相同,所以,每次都需要选择进行哪种计算。当我们写计算器小程序的时候,我们要实现这么多次的菜单是不是也要将菜单代码写这么多次呢?可以是可以,但是我们不难发现,这样的代码会显得十分冗余,我们并不推荐,那么怎样才能解决这种代码冗余的问题问题呢?那就是函数。


函数可以:


代码复用:当需要在多个地方重复相同的操作时,可以把这些操作封装在一个函数中。这样,只需要调用函数即可完成这些操作,无需重复书写相同的代码。


模块化设计:函数使得代码结构更加清晰、更具有可读性。通过函数,可以将复杂的问题拆分成一系列相对独立,功能单一的模块,使得代码更加容易理解和维护。隐藏实现细节:函数将代码的具体实现和使用

接口分离,提供了一种抽象机制。这意味着函数的使用者不需要了解函数内部的实现细节,只需要了解函数的输入(参数)和输出(返回值)即可。


提高代码的可测试性:每一个函数都是一个相对狮郑络的代码段,可以独立于其他代码进行测试,大大提高了代码测试的可行性和有效性。


提高代码的可调试性:当出现问题时,可以针对单个函数进行调试,而不需要查看整个代码。


便于代码的迭代和重构:通过调整或重写特定的函数,可以在不影响整体代码结构的情况下更新或优化部分功能。


函数的使用步骤

1)定义函数

def 函数名(参数):
  代码块
  ...


2)调用函数

函数名(参数)

注意:在 python 中,函数必须先定义再使用。并且参数可以根据情况,可以有也可以没有。

# 定义函数
def menu():
    print('-----------欢迎使用计算器-----------')
    print('-----------0.退出计算器------------')
    print('--------------1.加法--------------')
    print('--------------2.减法--------------')
    print('--------------3.乘法--------------')
    print('--------------4.除法--------------')
    print('---------------------------------')
# 调用函数
menu()
option = int(input('请输入你要进行的操作:'))
while option != 0:
    if option == 1:
        print('加法操作')
    elif option == 2:
        print('减法操作')
    elif option == 3:
        print('乘法操作')
    else:
        print('除法操作')
    # 调用函数
    menu()
    option = int(input('请输入你要进行的操作:'))

只有函数被调用的时候,才会执行函数里面的代码,如果函数没有被调用,那么函数里面的代码就不会被执行。


带有参数的函数

上面的菜单操作,比较单调,而函数有了参数之后就会变得更加有意思,代码也变得更加灵活。

def say_hello(name):  # 形式参数
    print(f'Hello,{name}.welcome to the world of Python')
name = input('请输入你的名字:')
say_hello(name)  # 实际参数

当我们调用函数的时候传入的参数叫做实际参数,而定义函数的时候的参数叫做形式参数。

形式参数(也称为形参)是定义在函数或方法声明中的参数。形式参数只有在函数或方法被调用时才会具体化为实际的数据值,也就是实际参数。


函数的返回值

我们可以使用函数来返回我们需要的数据。return 数据 return 的作用是,结束当前函数并且将 return 后面的数据带回到调用函数的地方。

def add_num(a,b):
    return a + b
num1 = int(input('请输入操作数1:'))
num2 = int(input('请输入操作数2:'))
sum = add_num(num1,num2)
print(sum)

当函数 return 之后,函数体 return 之后的代码不会执行。

def add_num(a,b):
    return a + b
    print('代码块')
num1 = int(input('请输入操作数1:'))
num2 = int(input('请输入操作数2:'))
sum = add_num(num1,num2)
print(sum)


函数的说明文档

在Python中,函数的说明文档也被称为文档字符串,或者简称为"docstring"。它是一种在函数、模块、类或方法定义后立即插入的特殊语句,用来对该部分代码进行说明或者解释。这种解释对于理解代码运行机制很有帮助。


在 python 中,我们可以使用 help(函数名) 来查看函数的说明文档。

help(input)


在我们自己写的函数中,你可以使用三引号(‘’'或"“”)来定义一个docstring。docstring 不单单显示函数的基本功能,还应该显示它的参数类型、返回类型及其他相关的信息。这就使得其他人可以理解并且使用这个函数。

def 函数名(参数):
  ''' 说明文档的位置 '''
  代码块
  ...
def add_num(a,b):
    '''
    求和函数
    :param a:操作数1
    :param b:操作数2
    :return:操作数1与操作数2的和
    '''
    return a + b
    print('代码块')
help(add_num)

函数的嵌套调用

我们在一个函数中可以调用另外一个函数。

def test_B():
    print('-----test_B start-----')
    print('test_B 代码块')
    print('------test_B end------')
def test_A():
    print('-----test_A start-----')
    test_B()
    print('------test_A end------')
test_A()

我们可以注意两个代码的执行顺序是怎样的,当在test_A函数中调用test_B函数时,会先执行完test_B函数的代码,然后继续执行test_A的剩下代码。


实现简易的计算器

因为这个代码比较简单,所以我们就不添加说明文档了,如果大家有兴趣的话,也可以自己下去试试哦。

def menu():
    print('-----------欢迎使用计算器-----------')
    print('-----------0.退出计算器------------')
    print('--------------1.加法--------------')
    print('--------------2.减法--------------')
    print('--------------3.乘法--------------')
    print('--------------4.除法--------------')
    print('---------------------------------')
# 加法
def add_num(a,b):
    return a + b
# 减法
def sub_num(a,b):
    return a - b
# 乘法
def mul_num(a,b):
    return a * b
# 除法
def div_num(a,b):
    return a / b
menu()
option = int(input('请输入你要进行的操作:'))
while option != 0:
    num1 = int(input('请输入操作数1:'))
    num2 = int(input('请输入操作数2:'))
    if option == 1:
        ret = add_num(num1,num2)
    elif option == 2:
        ret = sub_num(num1,num2)
    elif option == 3:
        ret = mul_num(num1,num2)
    else:
        ret = div_num(num1,num2)
    print(ret)
    # 调用函数
    menu()
    option = int(input('请输入你要进行的操作:'))

相关文章
|
1月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
169 1
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
259 1
|
1月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
155 0
|
2月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
269 101
|
2月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
210 99
|
2月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
186 98
|
2月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
286 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
310 104
|
1月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
179 3

推荐镜像

更多